Megosztás a következőn keresztül:


Az index DDL-műveletei lemezterület-követelményei

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

A lemezterület fontos szempont az indexek létrehozása, újraépítése vagy elvetése során. A nem megfelelő lemezterület csökkentheti a teljesítményt, vagy akár az indexművelet meghiúsulását is okozhatja. Ez a cikk általános információkat tartalmaz, amelyek segítenek meghatározni az indexadat-definíciós nyelv (DDL) műveleteihez szükséges lemezterületet.

További lemezterületet nem igénylő indexelési műveletek

Az alábbi indexműveletek nem igényelnek további lemezterületet:

  • ALTER INDEX REORGANIZE; azonban naplóterületre van szükség.

  • DROP INDEX a nem klaszterezett index elvetésekor.

  • DROP INDEX ha offline állapotba helyez egy fürtözött indexet a MOVE TO záradék megadása nélkül, és nem léteznek nem fürtözött indexek.

  • CREATE TABLE (PRIMARY KEY vagy UNIQUE korlátozások)

További lemezterületet igénylő indexelési műveletek

Minden egyéb index DDL-művelethez további ideiglenes lemezterületre van szükség a művelet során, és állandó lemezterületre van szükség az új indexszerkezet vagy -struktúrák tárolásához.

Új indexstruktúra létrehozásakor a régi (forrás) és az új (cél)struktúrák lemezterülete szükséges a megfelelő fájlokban és fájlcsoportokban. A régi struktúra nem lesz felszabadítva, amíg az indexlétrehozás tranzakciója le nem véglegesít.

A következő index DDL-műveletek új indexstruktúrákat hoznak létre, és további lemezterületet igényelnek:

  • CREATE INDEX
  • CREATE INDEX WITH DROP_EXISTING
  • ALTER INDEX REBUILD
  • ALTER TABLE ADD CONSTRAINT (PRIMARY KEY vagy UNIQUE)
  • ALTER TABLE DROP CONSTRAINT (PRIMARY KEY vagy UNIQUE) ha a korlátozás fürtözött indexen alapul
  • DROP INDEX MOVE TO (Csak fürtözött indexekre vonatkozik.)

Ideiglenes lemezterület rendezés céljára használható

A forrás- és célstruktúrákhoz szükséges lemezterület mellett ideiglenes lemezterületre is szükség van a rendezéshez, kivéve, ha a lekérdezésoptimalizáló olyan végrehajtási tervet talál, amely nem igényel rendezést.

Ha rendezésre van szükség, a rendezés egyszerre egy új indexet jelent. Amikor például egy fürtözött indexet, és az azon belüli társított nem fürtözött indexeket újraépít egyetlen utasítással, az indexek sorban egymás után rendeződnek. Ezért a rendezéshez szükséges további ideiglenes lemezterületnek csak akkoranak kell lennie, mint a művelet legnagyobb indexe. Ez szinte mindig a klaszteres index.

Ha a SORT_IN_TEMPDB beállítás be van állítva ON, a legnagyobb indexnek bele kell férnie tempdb. Bár ez a beállítás növeli az index létrehozásához használt ideiglenes lemezterületet, csökkentheti az index létrehozásához szükséges időt, ha tempdb a felhasználói adatbázistól eltérő lemezen van.

Ha SORT_IN_TEMPDB az alapértelmezett értékre OFF van állítva, az egyes indexek , beleértve a particionált indexeket is, a céllemezterületen lesznek rendezve, és csak az új indexstruktúrák lemezterülete szükséges.

A lemezterület kiszámításához lásd az Index lemezterület példáját.

Ideiglenes lemezterület online indexelési műveletekhez

Amikor online végzi az indexműveleteket, további ideiglenes lemezterületre van szükség.

Fürtözött index online létrehozása, újraépítése vagy törlése esetén a rendszer egy ideiglenes, nem fürtözött indexet hoz létre a régi könyvjelzők új könyvjelzőkhöz való leképezésére. Ha a SORT_IN_TEMPDB beállítás ON értékre van állítva, ez az ideiglenes index a tempdb-ben jön létre. Ha SORT_IN_TEMPDB be van állítva OFF, a rendszer ugyanazt a fájlcsoportot vagy partíciós sémát használja, mint a célindexet. Az ideiglenes leképezési index a táblázat minden sorához egy rekordot tartalmaz, tartalma pedig a régi és az új könyvjelzőoszlopok egyesítése, beleértve az egyedi azonosítókat és a rekordazonosítókat, valamint a mindkét könyvjelzőben használt oszlopok egyetlen másolatát. Az online indexműveletekkel kapcsolatos további információkért lásd: Indexműveletek online végrehajtása.

Megjegyzés:

Az SORT_IN_TEMPDB beállítást nem lehet beállítani DROP INDEX utasításokhoz. Az ideiglenes leképezési index mindig ugyanabban a fájlcsoportban vagy partíciós sémában jön létre, mint a célindex.

Az online indexelési műveletek sorverzióval elkülönítik az indexműveletet a más tranzakciók által végrehajtott módosítások hatásaitól. Így nem szükséges megosztási zárolást kérni az olvasott sorokhoz. Az online indexműveletek során végzett egyidejű felhasználói frissítési és törlési műveletekhez hely szükséges a verziórekordok számára.tempdb További információ: Indexműveletek online végrehajtása .