Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

PartícionálásTömörítés Indexelt nézetek Adatváltozások észlelése, átvétele Konfigurálás, optimalizálás.

Hasonló előadás


Az előadások a következő témára: "PartícionálásTömörítés Indexelt nézetek Adatváltozások észlelése, átvétele Konfigurálás, optimalizálás."— Előadás másolata:

1

2 PartícionálásTömörítés Indexelt nézetek Adatváltozások észlelése, átvétele Konfigurálás, optimalizálás

3 Mikor?Hogyan? Több tábla, vagy egy, partícionált tábla Az optimalizáló viselkedése („partíció kizárás”) Csúszó időablak kezelés Több fájlcsoport – read-only adatok („adat öregítés”) Mentés, helyreállítás

4 Legalább 100 GB-os tábla, vagy Lassú a karbantartás AdatbetöltésIndexelésMentés Lassú lekérdezések Költséges tárolás

5 Kezelhetőség Gyors adatbetöltés és törlés Darabonkénti mentés/visszatöltés a „régi” adatokra Partíciónkénti index kezelés Nincs index töredezettség a régi adatokra Eltérő tárolási mód lehetséges a régi adatokra Jobb lekérdezési sebesség a nagy táblák esetén Hatékony join, ha az illeszkedő táblák azonosan partícionáltak Kisebb index fát és adatpartíciót kell bejárni

6 SQL Server 2005 előtt Több tábla, partícionált nézet; „manuális” (-) Akár több gépes tárolás, független indexelés (+) A nézet nem használható, ha egy tábla kiesik (-) Már nem igazán javasolt technológia (-) SQL Server 2005 „Valódi” partícionált tábla Az alkalmazások számára egyetlen tábla; a tároló motor osztja szét a partíciókat A partíciók egy adatbázison belül vannak (-) A tábla elérhető marad, ha egy partíció offline (+) Ez a további fejlesztések iránya (+)

7 create partition function az osztáspontok felsorolása create partition scheme a tárolás megadása: partíció  fájlcsoport create table … on create table … on create index… on create index… on Célszerű ugyanazt a sémát használni a táblára és indexeire, illetve több táblára

8 SELECT o.OrderID, o.OrderDate, o.VendorID, od.ProductID, od.OrderQty FROM dbo.Orders AS o INNER JOIN dbo.OrderDetails AS od ON o.OrderID = od.OrderID AND o.OrderDate = od.OrderDate WHERE o.OrderDate >= ' ' AND o.OrderDate <= ' :59:59.997'

9 SELECT o.OrderID, o.OrderDate, o.VendorID, od.ProductID, od.OrderQty FROM dbo.Orders AS o INNER JOIN dbo.OrderDetails AS od ON o.OrderID = od.OrderID AND o.OrderDate = od.OrderDate WHERE o.OrderDate >= ' ' AND o.OrderDate <= ' :59:59.997'

10 Partíció # & korábbi 2002 adatok 2003 adatok 2004 adatok 2005 & későbbi [üres] Előkészítő tábla létrehozása Split az utolsó partíción (alter partition func.) Bulk load és index az előkészítő táblán Switch (alter table … switch partition) [üres] adatok 2006 & későbbi Staging Table

11 Partíció # adatok 2004 adatok Üres tábla létrehozása az eltávolítandó adatok számára Switch (alter table …) Merge (alter partition function …) [üres] adatok 2006 & későbbi 2002 adatok & korábbi [üres] Unload Table [üres] & korábbi

12 File Header extent 0 extent 1 extent 2 AdatbázisFájlcsoportokFájlok Extent-ek Lapok … extent 3 Adatbázis File2 File3 Log Read write fájlcsoport File4 File5 File6 Read only fájlcsoportok Primary File1 Backup

13 A „régi” adatok partícióit tárolhatjuk „read- only” fájlcsoportokon RO fájlcsoport tömörített diszken/mappában is lehet A RO fájlcsoportot nem kell újra és újra menteni Gyorsabb adatbázis mentés A RO fájlcsoport bármikor helyreállítható – tranzakció napló mentés nélkül is A partícionált tábla on-line marad egy fájlcsoport elvesztése esetén is On-line visszatöltés lehetséges

14 Partitioned Tables and Indexes in SQL Server 2005 msdn2.microsoft.com/en-us/library/ms aspx Strategies for Partitioning Relational Data Warehouses in Microsoft SQL Server Project REAL: Data Lifecycle – Partitioning

15 RO fájlcsoportok kerülhetnek tömörített meghajtóra, ill. tömörített mappába Vardecimal adattípus (SP2) -- A várható megtakarítás becslése sp_estimated_rowsize_reduction_for_vardecimal 'table' -- Adatbázis szinten lekérdezés, engedélyezés, tiltás sp_db_vardecimal_storage_format 'SalesDB', 'ON' | 'OFF' -- Bekapcsolás tábla szinten sp_tableoption 'table', 'vardecimal storage format', 'true' -- Lekérdezés SELECT name, object_id, type_desc FROM sys.objects WHERE OBJECTPROPERTY(object_id, N'TableHasVarDecimalStorageFormat') = 1

16 Feltételek a nézetben szereplő táblákra SET opciók a session-re a nézet legyen determinisztikus create view... WITH SCHEMABINDING create unique clustered index on... view Használat (automatikus) Frissítés (automatikus) Database Engine Tuning Advisor

17 Outer join nem lehet a nézetben Partícionált tábla SWITCH előtt a SCHEMABINDING miatt a nézetet el kell dobni Az első index kötelezően UNIQUE, CLUSTERED Az első index kötelezően UNIQUE, CLUSTERED A használat nem mindig automatikus Például, ha egy lekérdezés nem hivatkozik a nézetben szereplő összes táblára Megoldás: NOEXPAND hint

18

19

20 Különbség képzés („except”) Az adatok átmozgatása a távoli kiszolgálóról - kis táblák esetén elfogadható Esetleg LogShipping, adatbázis tükrözés Időbélyeg a forrás sorokon A forrás adatbázis módosításával jár Trigger a forrás táblákon Lassíthatja a forrás adatbázis működését Tranzakcionális replikáció Testre szabott tárolt eljárásokkal: sp_MSins_, sp_MSupd_, sp_MSdel_ Testre szabott tárolt eljárásokkal: sp_MSins_, sp_MSupd_, sp_MSdel_ Minden változást rögzít – kérdés, kell-e?

21 CPU: X64, IA64 Diszk: SAN, sok „spindle” RAID10 (tempdb és adatbázis naplók) RAID5 – az adatok számára elfogadható

22 Max degree of parallelism A fizikai processzorszám / 2 MAXDOP opció a lekérdezésekben Több tempdb adatfájl Fizikai processzorszám, ill. max. 10 Azonnali fájl inicializálás „Perform volume maintenance tasks” jog az SQL Server fiókjának Read only adatbázis, vagy NOLOCK opció a lekérdezésekben 10-25% nyereség

23 Adatbázis opciók Tilos: autoclose, autoshrink Auto update statistics: aszinkron Recovery model: simple Ne deklaráljunk idegen kulcsokat A referenciális integritás a betöltő folyamat feladata Elsődleges kulcs, vagy egyedi index a dimenzió táblák mesterséges kulcsán A tény tábla indexei Mesterséges, identity oszlopra PK; nem fürtözött index a hivatkozásokra, vagy Összetett PK a hivatkozás oszlopokra sys.dm_db_index_usage_stats

24 Ha lehet, kerüljük Join előírás loop, hash, merge Tábla szintű előírások nolock, noexpand, index, … Lekérdezés opciók HASH GROUP, FORCE ORDER, MAXDOP OPTIMIZE FOR, KEEP PLAN, … USE PLAN N'xml_plan'

25 SQL Server Best Practices SQL Server 2005 Data Warehousing SQL Server 2005 – Operations

26


Letölteni ppt "PartícionálásTömörítés Indexelt nézetek Adatváltozások észlelése, átvétele Konfigurálás, optimalizálás."

Hasonló előadás


Google Hirdetések