SQL szerver - Mi a különbség a fürtözött és nem fürtözött indexek

Nem fürtözött index

  • Ezt fel lehet használni többször az asztalnál
  • Gyorsabb beszúrni és frissítési műveletek, mint a fürtözött index

Mindkét mutató, mint a jobb teljesítményt, amikor adatokat mezők használja az indexet, de lelassítja a műveletet frissítések és betétekkel.







A lassú betét és frissítés fürtözött indexek kell telepíteni a területen, amely jellemzően egyedi, azaz a Id vagy időbélyeg.

SQL Server tipikusan az az index, ha annak szelektivitás 95% feletti.

Válaszol Martynnw május 22 '17 at 09:17

Nem kell aggódnia, hogy mi van x. Minden, amit tudnia kell -, hogy az alkalmazások több millió felhasználó x lesz jelentős - Pacerier május 22 '17 at 09:17

Vannak még megfontolások tárolásra. Behelyezésekor sorokat egy táblázatot nélkül fürtözött sorindex tárolt egy oldalon szorosan, és frissítés vonalak vezethet az elmozdulás a karakterlánc végén a táblázat, hagyva egy üres tér és fragmentáló asztal és indexek. - Jeremiah Peschka május 22 '17 at 09:17

@StephaniePage: Kíváncsi vagyok, ezt hogyan fogják mérni „szelektivitás”? A mutató, amely egyetlen érték a 999 900 bejegyzés és egy érték 100, nagyon hasznos lehet, ha valaha is arra használja, hogy keressen 100. - Supercat május 22 '17 at 09:17

Az ötlet, hogy 95% a rekordok egyedinek kell lennie - félrevezető. Tegyük fel, hogy van egy asztal 1.000.000 sorok, és akkor index oszlopon 500.000 kulcsokat. 0% egyedi, de minden gomb 2 visszatér millió sort. Ez az index teljesen hasznos, függetlenül attól, hogy a 0% az iratok egyedülálló. - Stephanie Oldal május 22 '17 at 09:17







Például, ha valaki elkezdett egy üres, nem fürtözött adatbázis és 10 000 rekordot véletlenszerű sorrendben ír ki, amelyek feltehetően a végén abban a sorrendben, ahogy azokat hozzá. olvassa el az adatbázist annak érdekében, az index lenne szükség 10.000 egyetlen mérés. Azonban ha egy fürtözött adatbázis, a rendszer ellenőrzi, hogy minden bejegyzés hozzá, amikor a korábbi rekordot tartotta magától; Ha megállapítást nyer, hogy így van, hogy tud írni ezt a bejegyzést az új végén az adatbázisban. Aztán látta, hogy a fizikai rekord előtt a rések, ahol bejegyzés kényszerült, és látni, hogy a tárolt rekord követett, maga. Ha megállapítást nyer, hogy úgy, ahogy van, akkor mozgassa a bejegyzés ezen a helyen. Egy ilyen megközelítés vezetne, hogy sok bejegyzések csoportosíthatók párban, hogy a potenciálisan szinte megduplázódott szekvenciális olvasási sebesség.

Válaszol Supercat május 22 '17 at 09:17

Fürtözött indexek jól működik zenekarok (pl select * from my_table, ahol my_key között @min és @max)

Egyes esetekben az adatbázisokat nem kell rendezni, ha használja a orderby nyilatkozatot.

Fürtözött indexek lassíthatják betétek, mert a fizikai elrendezés rekordok meg kell változtatni, mint a bemeneti rekordokat, amikor az új kulcsok nem sorrendben.

Válaszol Giovanni Galbo május 22 '17 at 09:17

A fürtözött index lényegében egy másolatot az adatok rendezve indexált oszlopok.

A fő előnye a fürtözött index az, hogy ha a lekérdezés (keresés) az adatokat az index, akkor a kivonat az adatokat nem kell további input-output.

Írásvetítő, hogy támogassa a fürtözött index, főleg a gyakran frissített táblázat vezethet gyenge teljesítmény, és ez okból előnyös lehet létrehozni egy nem fürtözött index.

Válaszol Ed Guiness május 22 '17 at 09:17

Fürtözött index valóban leírja, hogy milyen sorrendben rekordok fizikailag a lemezen tárolt, így csak az egyik.

Nem fürtözött index határozza meg a logikus, hogy nem egyezik a fizikai érdekében a lemezen.

Válaszol Josh május 22 '17 at 09:17