Ajánlások a indexek a táblázatokban, optimalizált memória
Ha nincs index oszlop c1 SQL Server átvizsgálja az egész táblázatot t, majd karakterlánc szűrő, amely kielégíti c1 = 1. Azonban, ha t az index az oszlop c1, SQL Server közvetlenül keresni az 1 értéket, és kap a kívánt vonalat.
Keresni bejegyzések egy adott érték vagy értéktartomány egy vagy több oszlop SQL Server tábla használható az index, hogy ezeket az oszlopokat, amely felgyorsítja a keresést vonatkozó feljegyzések. Indexet használ javítja a teljesítményt asztalok, lemezen tárolt és asztalok vannak optimalizálva memóriát. Azonban van néhány különbség a szerkezet az index, hogy figyelembe kell venni, ha dolgozik, asztalok, optimalizált memória. (Indexek az asztalok vannak optimalizálva a memória, az úgynevezett index optimalizált memóriát.) Néhány főbb különbségek az alábbiak.
Optimalizált memória indexek kell létrehozni a CREATE TABLE utasítás (Transact-SQL). Disk indexek segítségével lehet létrehozni a CREATE TABLE és CREATE INDEX.
Indexek, optimalizált memória, már csak a memóriában. index szerkezete nem menti a lemezre, és a műveleteket a hálózat indexek nem kerülnek rögzítésre a tranzakciós napló. index struktúra létrehozása a pillanatban, amikor a tábla jön létre a memóriában, optimalizált memória, mint a teljesítménye a CREATE TABLE utasítás, és az adatbázis indul.
Indexek, optimalizált memória, univerzális jellegű. Ez azt jelenti, hogy az összes szereplő oszlopok az index, és az asztalok vannak optimalizálva tárolás, nem kell keresni a könyvjelzők. Ahelyett, hivatkozva egy elsődleges kulcs indexet, optimalizált memória, a memória tartalmaz mutatót a tényleges húr a táblázatban adatszerkezet.
A fogalmak töredezettség, valamint a kitöltési tényező alkalmazandó indexek, amely optimalizált a memóriát. Egy index lemezre mentett, töredezettség azt jelenti, hogy a B-fa lapok lemezre íródnak nélkül bármilyen sorrendben. Indexek, optimalizált memória, nem írt a lemezre, vagy olvasni a lemezt. A kitöltési tényező az indexekben a szerkezet kiegyensúlyozott fa lemezen tárolt, - a mértéke, hogy a szerkezet a fizikai oldal az adatok. indexszerkezetet optimalizált memória, nincs fix méretű oldalakat.
Kétféle indexek, optimalizált memória:
Nem fürtözött hash indexek jönnek létre az elemzéssel. További információ a hash indexek, lásd. Szakasz hash indexek. .
Nem fürtözött indexek jönnek létre a szkennelési tartomány, és elrendelte a vizsgálatot.
Ha egy hash index adatok eléréséhez egy hash tábla a memóriában. Hash indexek vannak olyan oldalai, és mindig van egy fix méretű. Azonban hash index tartalmazhat egy hash üres konténerek, ami jelentéktelen veszteség helyet. A visszaadott értékek a lekérdezést egy hash index nem válogatják szét. Hash indexek vannak optimalizálva keresési index predikátumok közötti egyenlőség és támogatja a teljes index vizsgál.
Nem fürtözött indexek (nem hash kódok) minden támogatást, amely támogatja a hash kódok, valamint a keresési művelet a predikátumai (többé-kevésbé), és a rendezés. Strings nyerhető meghatározott sorrendben létrehozásakor az index. Ha a sorrend az index egybeesik a sorrend, amire szükség van egy konkrét kérés, például, ha az index kulcs egybeesik egy javaslatot Rendezés, nincs szükség, hogy rendezni húrok részeként a lekérdezés. Optimalizált memória egyirányú nem fürtözött indexek. Nem támogatják az eltávolítása sort a sorrend, a visszatérés az index sorrend. Például, egy index meghatározása a (c1 ASC), lehetetlen, hogy átvizsgálja az index a fordított sorrendben, mint (c1 DESC).
Minden index használ memóriát. A hash kódok használata rögzített memória mérete, ami függ a konténerek számát. A nem fürtözött indexek Memóriafelhasználás függvénye a sorok számát és méretét az index kulcsoszlopok némi többletköltséget, a munka mennyiségétől függően. Memória index optimalizálva a memória, - egy további memória, amely elkülönül a használt memória tárolási sorainak táblázatok, optimalizálva a memória.
Ismétlődő kulcsok mindig ugyanazt a hash tartályba. Ha a hash-index tartalmazza sok ismétlődő kulcs érték, az így kapott hosszú láncú tördelő csökkenti a teljesítményt. Hash ütközések bármely hash index később csökkentheti a teljesítményt ebben az esetben. Emiatt, ha a számos egyedi kulcsfontosságú mutatószáma legalább 100-szor kisebb, mint a sorok számát, akkor csökkentheti a konfliktusok kockázatát hash, növelve a konténerek számát (legalább nyolcszor nagyobb, mint a számos egyedi index kulcs, lásd A helyes szám a hash konténerek indexek további információkat), vagy teljesen megszünteti a hash konfliktusok, a nem fürtözött index.
Minden optimalizált memória táblázat tartalmaznia kell legalább egy indexet. Felhívjuk figyelmét, hogy valamennyi elsődleges kulcs megszorítás hallgatólagosan létrehoz egy indexet. Ezért, ha a tábla egy elsődleges kulcsot, hogy van egy index. Az elsődleges kulcs kötelező megbízható táblázatkezelő optimalizált memória.
Amikor a rendszer kéri, optimalizált memória teljesítményét hash táblaindexek magasabb, ha az állítmány mondatban csak az egyenlőség predikátumok. Az állítmány tartalmaznia kell az összes oszlopot a kulcskivonat index. A hash index visszatér a szkennelés állítmány egyenlőtlenség.
Oszlop a táblázatban, amely optimalizált a memória része lehet egy hash index és a nem-fürtözött index.
Amikor a rendszer kéri az optimalizált memória asztal egyenlőtlenség predikátumok nem fürtözött indexek jobban teljesítenek, mint a nem fürtözött hash indexek.
Hash index kulcs van szükség (egy hash), hogy megtalálja az indexben. Ha az index kulcs van osztva két oszlopot, és hogy csak az első oszlop az SQL Server nem egy komplett kulcsot hash. Ez azt eredményezi, hogy indexkeresést lekérdezés tervét. Oszlopok kívánt index, meghatározva a gyakorlatban.
Ha egynél több sort az oszlop nem fürtözött index ugyanazt az értéket tartalmazza (a kulcs index oszlopokban sok ismétlődő értékeket) teljesítmény frissítés, beillesztése és törlése is csökkenthető. Az egyik módja, hogy javítsa teljesítményét ebben a helyzetben -, hogy egy újabb oszlop nem fürtözött index.
Index műveletek optimalizált memória tárolja a lemezen.
Fürtözött index hash-optimalizált memória
Nem fürtözött index, amely optimalizált memória