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


A főkönyv szempontjai és korlátozásai

A következőkre vonatkozik: Sql Server 2022 (16.x) és újabb verziók Azure SQL DatabaseFelügyelt Azure SQL-példány

A főkönyvtáblák használatakor figyelembe kell venni néhány szempontot és korlátozást a rendszer verziószámozásának és a nem módosítható adatok jellegének köszönhetően.

Általános szempontok és korlátozások

A főkönyv használatakor vegye figyelembe az alábbiakat.

A főkönyvtábla szempontjai és korlátozásai

  • A nem főkönyvtáblákból álló adatbázisok meglévő táblái nem konvertálhatók főkönyvtáblákká. További információ: Adatok áttelepítése normál táblákból főkönyvtáblákba.
  • Miután egy főkönyvtáblát létrehoztak, nem lehet visszaállítani olyan táblára, amely nem főkönyvtábla.
  • A régebbi adatok csak hozzáfűzhető főkönyvtáblákban vagy az frissíthető főkönyvtáblák előzménytáblájában való törlése nem támogatott.
  • TRUNCATE TABLE nem támogatott.
  • Egy frissíthető főkönyvtábla létrehozásakor négy GENERATED ALWAYS oszlopot ad hozzá a főkönyvtáblához. A csak hozzáfűzhető naplótábla két oszlopot ad hozzá a főkönyvtáblához. Ezek az új oszlopok hozzáadódnak az Azure SQL Database által maximálisan támogatott oszlopok számához (1,024).
  • A memóriában lévő táblák nem támogatottak.
  • Ritka oszlopkészletek nem támogatottak.
  • Az SWITCH IN/OUT partíció nem támogatott.
  • A DBCC CLONEDATABASE nem támogatott.
  • A főkönyvtáblák nem tartalmazhatnak teljes szöveges indexeket.
  • A főkönyvtáblák nem lehetnek gráftáblák.
  • A főkönyvtáblák nem lehetnek Fájltáblák.
  • A főkönyvtáblák nem tartalmazhatnak soros nem fürtözött indexet, ha fürtözött oszlopcentrikus indexük van.
  • A változáskövetés nem engedélyezett az előzménytáblában, de a főkönyvtáblákon engedélyezett.
  • Az adatváltozás-rögzítés nem engedélyezett az előzmény táblában, de a főkönyvi táblákon engedélyezett.
  • A tranzakciós replikáció nem támogatott a főkönyvtáblák esetében.
  • Az adatbázis-tükrözés nem támogatott.
  • Az Azure Synapse Link támogatott, de csak a főkönyvtáblához, az előzménytáblához nem.
  • Az adatbázis biztonsági mentésének natív visszaállítása után manuálisan módosítsa a kivonatoló elérési útját egy felügyelt Azure SQL-példányra.
  • Módosítsa manuálisan a kivonatoló elérési utat, miután létrejött egy felügyelt Azure SQL-példányra mutató hivatkozás.
  • Az SQL Data Sync nem támogatott a főkönyvtáblákban.

Nem támogatott adattípusok

  • XML
  • SqlVariant
  • Felhasználó által definiált adattípus
  • FILESTREAM
  • Vektor

Időbeli táblázat korlátozásai

Az frissíthető főkönyvtáblák az időbeli táblák technológiáján alapulnak, és a korlátozások többségét öröklik, de nem mindegyiket. Az alábbi lista az időbeli táblákból öröklődő korlátozásokat ismerteti.

  • Ha egy előzménytábla neve az előzménytábla létrehozásakor van megadva, meg kell adnia a sémát és a tábla nevét, valamint a főkönyv nézet nevét is.
  • Az előzménytáblázat alapértelmezés szerint PAGE tömörítést használ.
  • Ha az aktuális tábla particionált, az előzménytábla az alapértelmezett fájlcsoporton jön létre, mert a particionálási konfiguráció nem replikálódik automatikusan az aktuális táblából az előzménytáblába.
  • Az idő- és előzménytáblák nem lehetnek FILETABLE típusúak, és a FILESTREAMen kívül más támogatott adattípus oszlopait is tartalmazhatják. A FILETABLE és a FILESTREAM lehetővé teszi az SQL Serveren kívüli adatmanipulációt, így a rendszer verziószámozása nem garantálható.
  • A csomópont- vagy éltáblák nem hozhatók létre és nem módosíthatók időbeli táblázatként. A gráf nem támogatott a főkönyvben.
  • Bár a temporális táblák támogatják a blob adattípusokat, például (n)varchar(max), varbinary(max), (n)textés image, ezek jelentős tárolási költségekkel járnak, és a méretük miatt teljesítménybeli következményekkel járnak. Ezért a rendszer tervezésekor ügyelni kell ezekre az adattípusokra.
  • Az előzménytáblát ugyanabban az adatbázisban kell létrehozni, mint az aktuális táblát. A társított kiszolgálón keresztüli időbeli lekérdezés nem támogatott.
  • Az előzménytábla nem rendelkezhet korlátozásokkal (elsődleges kulcs, idegen kulcs, tábla vagy oszlopkorlátok).
  • Az online beállítás (WITH (ONLINE = ON) nem befolyásolja a rendszerverziózott temporális táblát ALTER TABLE ALTER COLUMN esetén. ALTER COLUMN nincs online állapotban, függetlenül attól, hogy melyik érték lett megadva a ONLINE beállításhoz.
  • INSERT és UPDATE az utasítások nem hivatkozhatnak a GENERATED ALWAYS oszlopokra. A program letiltja az értékek közvetlenül ezekbe az oszlopokba való beszúrására tett kísérleteket.
  • UPDATETEXT és WRITETEXT nem támogatottak.
  • Az előzménytáblában lévő eseményindítók nem engedélyezettek.
  • A replikációs technológiák használata korlátozott:
    • Always On: Teljes mértékben támogatott
    • Pillanatkép, egyesítés és tranzakciós replikáció: Időbeli táblák esetében nem támogatott
  • Az előzménytáblák nem konfigurálhatók aktuális táblaként az előzménytáblák láncában.
  • A rendszer nem replikálja az alábbi objektumokat vagy tulajdonságokat az aktuális táblából az előzménytáblába az előzménytábla létrehozásakor:
    • Időszak meghatározása
    • Identitásdefiníció
    • Indexek
    • statisztika
    • Korlátozások ellenőrzése
    • Kiváltó okok
    • Particionálási konfiguráció
    • Engedélyek
    • Sorszintű biztonsági predikátumok

Sémamódosítások figyelembevétele

Oszlopok hozzáadása

A null értékű oszlopok hozzáadása támogatott. A nem null értékű oszlopok hozzáadása nem támogatott. A Ledger úgy lett kialakítva, hogy figyelmen kívül hagyja a NULL értékeket egy sorverzió kivonatának kiszámításakor. Ennek alapján null értékű oszlop hozzáadásakor a főkönyv és az előzménytáblák sémáját úgy módosítja, hogy az tartalmazza az új oszlopot, ez azonban nem befolyásolja a meglévő sorok kivonatait. A naplótáblákhoz történő oszlopok hozzáadása a sys.ledger_column_history-ben van rögzítve.

Oszlopok és táblák törlése

Egy oszlop vagy tábla elvetése általában teljesen törli a mögöttes adatokat az adatbázisból, és alapvetően nem kompatibilis azokkal a főkönyv-funkciókkal, amelyekhez az adatok nem módosíthatók. Az adatok törlése helyett a főkönyv egyszerűen átnevezi az elvetett objektumokat, hogy azok logikailag el legyenek távolítva a felhasználói sémából, de fizikailag megmaradnak az adatbázisban. Az elvetett oszlopok a főkönyvtábla sémájában is rejtve maradnak, így nem láthatóak a felhasználói alkalmazás számára. Az ilyen elvetett objektumok adatai azonban továbbra is elérhetők maradnak a főkönyv-ellenőrzési folyamathoz, és lehetővé teszik a felhasználók számára az előzményadatok vizsgálatát a megfelelő főkönyvnézeteken keresztül. A főkönyvtáblákban lévő oszlopok elvetését a sys.ledger_column_history rögzíti. A főkönyvtábla elvetését a sys.ledger_table_history rögzíti. A főkönyvi táblák és függő objektumaik a rendszerkatalógus nézeteiben elvetettként vannak megjelölve és átnevezésre kerülnek.

  • Az elvetett főkönyvtáblák a is_dropped_ledger_table beállításával eldobottként vannak megjelölve, és a következő formátumot használják: MSSQL_DroppedLedgerTable_<dropped_ledger_table_name>_<GUID>.
  • A frissíthető főkönyvtáblák törölt előzménytáblái a következő formátum szerint lesznek átnevezve: MSSQL_DroppedLedgerHistory_<dropped_history_table_name>_<GUID>.
  • Az elvetett főkönyvnézetek a is_dropped_ledger_view beállítása által vannak elvetettként megjelölve , és átnevezhetők a következő formátum használatával: MSSQL_DroppedLedgerView_<dropped_ledger_view_name>_<GUID>.

Megjegyzés:

Az eldobott főkönyvtáblák, előzménytáblák és főkönyvi nézetek nevei csonkoltak lehetnek, ha az átnevezett tábla vagy nézet hossza meghaladja a 128 karaktert.

Oszlopok módosítása

A főkönyvtáblák alapjául szolgáló adatokat nem befolyásoló módosítások speciális kezelés nélkül támogatottak, mivel azok nem befolyásolják a főkönyvben rögzített kivonatokat. Ilyen változások a következők:

  • Nullability módosítása
  • Unicode-sztringek rendezése
  • A változó hosszúságú oszlopok hossza

A meglévő adatok formátumát esetleg befolyásoló műveletek, például az adattípus módosítása azonban nem támogatottak.