Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Amikor időbeli táblákkal dolgozol, figyelj a rendszerverziók természetéből eredő szempontokra és korlátokra:
A rekordok aktuális tábla és előzménytábla közötti összerendeléséhez a temporális táblának rendelkeznie kell elsődleges kulccsal. Az előzménytáblában nem lehet elsődleges kulcs definiálva.
A
SYSTEM_TIMEésValidFromértékek rögzítéséhez használtValidTopontoszlopokat datetime2adattípussal kell meghatározni.A temporális szintaxis az adatbázisban helyileg tárolt táblákon vagy nézeteken működik. Távoli objektumokkal, mint például csatolt kiszolgálókon található táblákkal vagy külső táblákkal, nem használhatja közvetlenül a lekérdezésben a
FORzáradékot vagy a pontpredikátumokat.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.
Alapértelmezés szerint az előzménytábla
PAGEtömörítve.Ha a jelenlegi tábla partíciózva van, akkor a történettáblázatot az alapértelmezett fájlcsoportban hozza létre, mert a partíciós konfiguráció nem replikálódik automatikusan a jelenlegi táblából a történettáblázatba.
Az idő- és előzménytáblák nem használhatják a FileTable vagy a FILESTREAM elemet. 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.
Bár a temporális táblák támogatják a blob adattípusait, például (n)varchar(max), varbinary(max), (n)textés kép, 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. Amikor megtervezed a rendszeredet, légy óvatos, amikor ezeket az adattípusokat használod.
Az előzménytáblát ugyanabban az adatbázisban kell létrehozni, mint az aktuális táblát. A csatolt kiszolgálókon való időbeli lekérdezés nem támogatott.
Az előzménytáblában nem lehetnek korlátozások (elsődleges kulcs, idegen kulcs, tábla vagy oszlopkorlátok).
Az indexelt nézetek nem támogatottak az időalapú lekérdezések esetében (
FOR SYSTEM_TIMEzáradékot használó lekérdezéseken).Az online beállítás (
WITH (ONLINE = ON) nincs hatással aALTER TABLE ALTER COLUMN-re egy rendszer által verziózott időtáblában.ALTERoszlop nem online műveletként van végrehajtva, függetlenül attól, hogy melyik érték lett megadva aONLINEbeállításhoz.INSERTésUPDATEutasítások nem hivatkozhatnak aSYSTEM_TIMEperiódus oszlopokra. A program letiltja az értékek közvetlenül ezekbe az oszlopokba való beszúrására tett kísérleteket.Amíg a
TRUNCATE TABLESYSTEM_VERSIONING, addig aONnem támogatott.Az előzménytáblák adatainak közvetlen módosítása nem engedélyezett.
Az adatmanipulációs nyelv (DML) logika érvénytelenné válásának elkerülése érdekében a(z)
INSTEAD OFtrigger nem engedélyezett sem az aktuális, sem az előzménytáblán.AFTEReseményindítók csak az aktuális táblában engedélyezettek. Ezek az eseményindítók le vannak tiltva az előzménytáblában a DML-logika érvénytelenítésének elkerülése érdekében.A replikációs technológiák használata korlátozott:
Elérhetőségi csoportok: Teljes mértékben támogatott
Változásadat-rögzítés és változáskövetés: Csak az aktuális táblán támogatott
Pillanatkép- és tranzakcióreplikációs: Csak egyetlen közzétevő esetében támogatott időbeli engedélyezés nélkül, és egy előfizető, aki temporálisan engedélyezve van. A több előfizető használata nem támogatott a helyi rendszerórától való függőség miatt, ami inkonzisztens időbeli adatokhoz vezethet. Ebben az esetben a kiadót online tranzakciófeldolgozási (OLTP) munkaterheléshez használják, míg az előfizető a jelentéskészítési feladatok tehermentesítésére szolgál, beleértve a
AS OFlekérdezéseket is. Amikor a forgalmazó ügynök elindul, megnyit egy tranzakciót, amelyet addig tartanak nyitva, amíg az elosztó ügynök meg nem áll.ValidFromésValidToa forgalmazó ügynök által elindított első tranzakció kezdeti időpontjához vannak feltöltve. Célszerű lehet a terjesztési ügynököt ütemezés szerint futtatni, nem pedig a folyamatos futtatás alapértelmezett viselkedését, ha az alkalmazás vagy a szervezet számára fontos, hogyValidFromésValidTotöltse ki az aktuális rendszeridőhöz közeli időponttal. További információ: Temporális táblahasználati forgatókönyvek.Merge replikáció: Nem támogatott időbeli táblákhoz
A rendszeres lekérdezések csak az aktuális tábla adatait érintik. Az előzménytáblában lévő adatok lekérdezéséhez időbeli lekérdezéseket kell használnia. További információ: Rendszerverziójú temporális tábla adatainak lekérdezése.
Az optimális indexelési stratégia az aktuális táblán egy fürtözött oszloptárolós indexet vagy egy B-fa alapú sortárolós indexet, az előzménytáblán pedig egy fürtözött oszloptárolós indexet foglal magában az optimális tárhelyigény és teljesítmény biztosítása érdekében. Ha saját történettáblázatot hozol létre vagy használsz, hozz létre ilyen típusú indexet, amely az időszak végi oszlopával kezdődik. Ez az index felgyorsítja az időbeli lekérdezést és azokat a lekérdezéseket, amelyek az adatok konzisztenciájának ellenőrzéséhez tartoznak. Az alapértelmezett történettábla klaszterezett sortároló indexet hoz létre az időszakoszlopok (vég, kezdet) alapján. Legalább használj nem klaszterelt sortároló indexet.
Az előzménytábla létrehozásakor a rendszer nem replikálja az alábbi objektumokat/tulajdonságokat az aktuálisból az előzménytáblába:
- Időszak definíció
- Identitásdefiníció
- Indexes
- statisztika
- Korlátozások ellenőrzése
- Triggers
- Particionálási konfiguráció
- Permissions
- Sorszintű biztonsági predikátumok
Nem lehet egy történettáblázatot beállítani jelenlegi táblaként egy történettáblák láncában.
Note
A dokumentáció általában a B-fa kifejezést használja az indexekre hivatkozva. A sorkataszterekben az adatbázismotor egy B+ fát implementál. Ez nem vonatkozik az oszlopcentrikus indexekre vagy a memóriaoptimalizált táblák indexére. További információ: SQL Server és Azure SQL index architektúrája és tervezési útmutatója.
Kapcsolódó tartalom
- Historikus táblák
- Kezdje el használni a rendszerverziójú temporális táblákat
- Temporális táblarendszer konzisztenciájának ellenőrzése
- partíció temporális táblákkal
- Temporális tábla biztonság
- Az előzményadatok megőrzésének kezelése rendszerverziójú időbeli táblákban
- rendszerverziójú időtáblák memóriaoptimalizált táblákkal
- Időbeli tábla metaadatnézetei és függvényei