12.07.2015 Views

CES 2004 - Vitajte na stránkach www.einsty.hostujem.sk

CES 2004 - Vitajte na stránkach www.einsty.hostujem.sk

CES 2004 - Vitajte na stránkach www.einsty.hostujem.sk

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

I N F O W A R Eobr. 2obr. 3obr. 4 obr. 5úrovni stromovej štruktúry indexu a tou sú samotnédátové stránky (obr. 2).Pre dopyty obsahujúce za klauzulou WHERE rozsahydát sú klastrované indexy <strong>na</strong>jefektívnejšímprístupom k dátam. Èasto sú vytvárané <strong>na</strong>d ståpcamis identifikátorom (spolu s primárnym k¾úèom).Keïe klastrovaný index definuje fyzické poradiedát, môe by <strong>na</strong>d jednou tabu¾kou vytvorenýmaximálne jeden takýto index.Iná situácia je pri neklastrovaných indexoch. Dátovéstránky zostávajú nezmenené. Je to v prípadeHEAP a aj vtedy, ak je vytvorený klastrovaný index.Pri vytvorení indexu sa vytvoria indexové stránky(sú to vlastne dátové stránky, <strong>na</strong> ktorých sa ne<strong>na</strong>chádzajúvšetky údaje z tabu¾ky, ale len dáta obsiahnutév indexovanom poli). Kadý záz<strong>na</strong>m obsahuje<strong>na</strong>vyše aj pointer odkazujúci <strong>na</strong> konkrétny záz<strong>na</strong>mv dátovej stránke (obr. 3). Ak takúto štruktúru vytvoríme<strong>na</strong>d u vytvoreným klastrovaným indexom,spomí<strong>na</strong>ný pointer sa mení <strong>na</strong> dáta ståpca, <strong>na</strong>d ktorýmje klastrovaný index vytvorený. Index môemevytvára aj <strong>na</strong>d dvoma a viacerými po¾ami. V takomtoprípade ide o zloený index. Jeho èastým vyuitímje optimalizácia dopytov. Ak si zvolíme ako èlenovindexu kombináciu polí, ktoré sa <strong>na</strong>chádzajú v príkazeSELECT, za klauzulou JOIN aj WHERE, ohlas <strong>na</strong>dopyt môe by z<strong>na</strong>ène kratší ako pri inom benomdopyte. Polia, ktoré urèíme pre zloený index, bynemali by prive¾ké, aby nedochádzalo k prílišnémuzväèšovaniu dátových súborov. Keby sme teda vytvorilineklastrovaný zloený index, potom by <strong>na</strong>stalstav, keï by sa všetky potrebné dáta <strong>na</strong>chádzali <strong>na</strong>indexových stránkach. SQL potom zniuje poèetvstupných a výstupných operácií (I/O) pri prístupe<strong>na</strong> di<strong>sk</strong>ový subsystém, lebo nie je nútený vyh¾adáva<strong>na</strong> dátových stránkach, ale všetky potrebné dáta máu <strong>na</strong> indexových stránkach.PRÍSTUP K DÁTAMSkúsme si teraz prirov<strong>na</strong> vyh¾adávanie konkrétnychzáz<strong>na</strong>mov v tabu¾ke SQL k vyh¾adávaniu konkrétnehomiesta vo ve¾kom meste. Hneï prvýmspôsobom vyh¾adávania bude blúdenie s mapouv ruke èie vyh¾adávanie bez indexov – heap. Ak siprimyslíme vyh¾adávanie adresy v nejakej priemyselnejštvrti, dojem bude doko<strong>na</strong>lý. V meste existujeve¾a rôznych výkopov, kanálov, ulice bývajú èastodlhé a oz<strong>na</strong>èované len <strong>na</strong> koncoch. Podobne SQLpri vyh¾adávaní jedného záz<strong>na</strong>mu musí prejs všetkydátové stránky. Napríklad chceme vyh¾ada zamest<strong>na</strong>ncas interným èíslom 1587. Kadá jed<strong>na</strong>pouívate¾<strong>sk</strong>á tabu¾ka má záz<strong>na</strong>m v tabu¾ke sysindexesa prvým krokom SQL bude vyh¾adanie jejzáz<strong>na</strong>mu. Zistí, e záz<strong>na</strong>m obsahuje v poli indidhodnotu 0. Na základe tejto informácie si pozrieúdaj v ståpci FirstIAM, ktorý povie SQL, kde sa <strong>na</strong>chádzaprvá stránka mapy alokácie indexu (FirstIndex Allocation Map). Táto mapa je jediným spájajúcimèlánkom stránok vytvárajúcich tabu¾kuv heape.Rozviòme ïalej náš príklad blúdiaceho turistu:okrem mapy bude ma aj presnú adresu h¾adanéhomiesta. Na obr. 4 je zobrazený postup pri prístupek dátam. Tak ako pri vyh¾adávaní adresy pomocoumapy aj SQL Server musí <strong>sk</strong>enova kadý jedenextent, aby zistil èo len jeden záz<strong>na</strong>m. Tento prístupk dátam je <strong>na</strong>jpomalší a <strong>na</strong>zýva sa table scan.Grafické znázornenie tohto prístupu po<strong>sk</strong>ytuje nástrojQuery A<strong>na</strong>lyzer. Exekuèný plán zobrazímepomocou klávesovej <strong>sk</strong>ratky Ctrl + K a vyko<strong>na</strong>nia<strong>na</strong>sledujúceho príkazu:USE NorthwindSELECT * FROM dbo.territoriesNa karte Execution Plan sa zobrazí grafické znázornenievyko<strong>na</strong>nia dopytu a dodatoèné informácie(ak kurzorom myši vyberiete ikonu tabu¾kového<strong>sk</strong>enu). Tabu¾kové <strong>sk</strong>eny sú rýchlejšie ako preh¾adávanieindexovaných stránok iba v prípade malýchtabuliek.Ïalší príklad je klastrovaný index a môeme hoprirov<strong>na</strong> k vyh¾adávaniu pomocou Global PositioningSystem (GPS). Podobne ako v aute, keï dostávavodiè inštrukcie typu „zaboè do¾ava a po desiatichminútach doprava“, zí<strong>sk</strong>ava informácie o vyh¾adávanomzáz<strong>na</strong>me aj SQL Server. Má ich však z indexovýchstránok, a nie zo satelitu. Na indexovýchstránkach sú uloené hodnoty indexovaného ståpca,ktoré slúia ako porovnávacie hodnoty. Ak sa<strong>na</strong>príklad vyh¾adáva záz<strong>na</strong>m zamest<strong>na</strong>nca s internýmèíslom 1587, SQL postupuje takto: Najprv<strong>sk</strong>ontroluje sysindexes tabu¾ku a zistí, e tam je záz<strong>na</strong>mv ståpci indid 1. To z<strong>na</strong>mená klastrovaný2/<strong>2004</strong> PC REVUE 129

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!