Új adattárolási mód: VarDecimal

Az SQL Server 2005 Service Pack 2 egyik legfontosabb újdonsága a VarDecimal adattárolási mód bevezetése, amely használatával jelentősen csökkenthető az adattárház fizikai mérete.

A VarDecimal tehát egy adattárolási mód, nem pedig egy adattípus. Numeric és Decimal tipusú adatainkat is tárolhatjuk változó hosszon, ha bekapcsoljuk a VarDecimal adattárolási módot. Más adattípusokat nem.

Mennyivel csökken az adattárház mérete a VarDecimal tárolási mód használatával?

“It depends on” mondaná az angol. Jelentős méretcsökkenést akkor várhatunk el, ha ténytábláink Decimal, vagy Numeric oszlopaiban sok egész szám, nulla vagy Null értek szerepel.

Ha kíváncsi arra, hogy mennyivel csökkenne táblája mérete, ha változó hosszon tárolná a Decimal vagy Numeric típusú oszlopokat, akkor futtassa le az

EXEC sp_estimated_rowsize_reduction_for_vardecimal 'dbo.FactTáblaNeve'

Utasítást, ami visszaadja, hogy a VarDecimal tárolási mód választása esetén és anélkül átlagosan hány byte-on fog tárolódni egy sor. A tárolt eljárás által szolgáltatott eredmények tapasztalataim szerint jól közelítik a tényleges méretcsökkenés, annak ellenére, hogy többször egymás után lefuttatva ugyanarra a táblára, más és más eredményt adott.

Tettem egy próbát és egyik ténytáblámra lefutattam a tárolt eljárást, és az általa prognosztizált 23%-os méretcsökkenéssel szemben a valóságban 22%-os méretcsökkenést kaptam, ami nem rossz eredmény! (Egy tábla fizikai mérete lekérdezhető az

execsp_spaceused 'FactTáblaNeve'

 

utasítás segítségével)

A VarDecimal tárolási mód bekapcsolásának folyamata

Ahhoz, hogy változó hosszon tárolhassuk Decimal vagy Numeric típusú oszlopainkat,

  1. Első lépésként engedélyezni kell az adatbázisban a VarDecimal tárolási módot, amit megtehetünk a
    1. Management Studio-ból a VarDecimal Storage Format adatbázis opció igazra állításával, vagy az
    2. sp_db_vardecimal_storage_format tárolt eljárás segítségével
  2. Az adatbázisban való engedélyezés után táblánként is (egyenként) engedélyezni kell a VarDecimal tárolási módot az

execsp_tableoption 'FatcTáblaNeve', 'vardecimal storage format', @OptionValue = 'on'

 

SQL utasítás segítségével

Ahhoz, hogy egy táblán engedélyezzük a VarDecimal tárolási módot, lehetőséget kell biztosítanunk az SQL szerver számára, hogy zárolhassa az adott táblát. Tudnunk kell továbbá azt is, hogy ez a szolgáltatás, csak SP2-vel installált Enterpise és Developer SQL Serverek változatzok esetén használható.

Összefoglalva:

A VarDecimal tárolási móddal kb. 20%-kal sikerült csökkentenem az adatpiac mértetét, ami jelen esetben kb. egy évnyi új adat betöltéséhez lesz majd elegendő…

Felhasznált irodalom:

Kapcsolodó anyagok:

Kővári Attila - BI projekt

Új hozzászólás