Es scheint ziemlich schwierig zu sein, Vergleiche zwischen zeitversetzten Tabellen mit Systemversion und den älteren Optionen wie DB-Triggern und CDC zu finden. Ich habe derzeit keine Zeit, einen erweiterten Test für SQL Server 2016 zu schreiben, daher dachte ich, ich würde hier danach fragen.
Grundsätzlich besteht der typische Vorteil von Triggern darin, dass sie in eigenständigen und Clustered / AlwaysOn-Umgebungen einfacher zu verwalten sind, in Echtzeit synchronisiert werden können und Zugriff auf Sitzungsdaten wie die Benutzer-ID haben.
CDC hingegen erfordert zwar etwas mehr Verwaltung und ist asynchron, ist jedoch viel leichter und bietet daher eine weitaus bessere Leistung. Wenn also überhaupt Zweifel bestehen, dass das durch Auslöser verursachte Flaschenhals zu einem Problem werden könnte, ist CDC im Grunde die überlegene Lösung. In Bezug auf die Hardwareanforderungen stellt CDC einen vernachlässigbaren zusätzlichen Speicherplatzbedarf dar, da Protokolle und CDC-Prüftabellen zur Verfolgung der Änderungen verwendet werden.
Die Frage: Wie vergleichen sich Zeittabellen mit den beiden oben genannten? In Bezug auf Geschwindigkeit, Leistung und Speicherplatznutzung. WANN sollte ich Zeittabellen anstelle von Triggern oder CDC verwenden? Wann soll ich nicht
Ich verstehe alles, was so komplex sein kann wie die Geschäftsanforderungen und technischen Einschränkungen, die hinter der DB-Prüfung stehen, nicht einfach zu beantworten, da dies weitgehend von den Anforderungen und dem Umfang des Projekts abhängt. Aber alles, was mehr Licht auf die obigen Fragen werfen könnte, wäre willkommen. Vielen Dank!
NVARCHAR(MAX)
oderVARBINARY(MAX)
(oder die ältereTEXT
/NTEXT
/IMAGE
) kann machen zeitliche Tabellen verbrauchen große Mengen an Speicherplatz.