SQL Server 2008: Wo wird die Änderungsverfolgungstabelle gespeichert?

8

Wir haben eine Datenbank auf einem freigegebenen Host über SQL Server 2008. Wir sind jetzt in der Lage, aufgrund von Leistungseinschränkungen die Datenbank zusammen mit einer Website zu verschieben. Wir verwenden die Änderungsverfolgung für die Datenbank, sodass Clients mithilfe des Synchronisierungsframeworks synchronisiert werden können.

Meine Frage ist: Ist die Change-Tracking-Tabelle in der Datenbank in einer Weise gespeichert, die bedeutet, dass sie beim Verschieben an Ort und Stelle bleibt?

Ich bin gerade dabei, SQL Server zu lernen, und die Feinheiten der Änderungsverfolgung sprechen mich immer noch an. Vom Konzept her verstehe ich nicht wirklich, wo die Change-Tracking-Tabelle ist.

    
Sergio 11.02.2010, 10:53
quelle

3 Antworten

4

Die Commit-Tabelle ist eine verborgene interne Tabelle mit dem Namen sys.syscommittab , auf die nur Administratoren direkt zugreifen können, und speichert für jede Transaktion eine Zeile für jede Änderung in einer Tabelle, die an Change Tracking beteiligt ist.

Die zugehörigen Daten werden in separaten Systemtabellen gespeichert, die erstellt werden, wenn die Änderungsverfolgung für eine Benutzertabelle aktiviert ist.

Die interne Tabelle, die durch Aktivieren der Änderungsverfolgung auf Tabellenebene erstellt wurde, heißt sys.change_tracking_[object id ], wobei [Objekt-ID] die Objekt-ID für die Zieltabelle ist.

    
Mitch Wheat 11.02.2010 10:58
quelle
1

Von hier sieht es aus, als wäre die Änderungsverfolgung eine allgemeine Tabelle im selben Datenbankkatalog als deine Tische. Jede Bewegung der Datenbank sollte die Änderungstabelle mitnehmen.

Ich würde zuerst das Schema der Datenbank untersuchen und die MSDN-Seiten verwenden.

    
Hassan Syed 11.02.2010 11:00
quelle
1

Ich habe darüber nachgedacht, ob ich dies als Antwort posten soll oder nicht, da ich nicht nur einen Link gebe, aber in diesem Fall wollte ich einige der Punkte zusammenfassen und würde es auch nicht tun Tue es gut als Kommentar!

Dieser Artikel ist eine Lektüre wert, die viel zu bieten hat von Details darüber, wie Änderungsverfolgung und (und Änderung der Datenerfassung) funktioniert.

Für die Änderungsverfolgung können Sie herausfinden, welche internen Tabellen zum Nachverfolgen von Änderungen verwendet werden:

%Vor%

Das wichtige Zitat ist:

  

Die Tabelle nennt sich ein   interne Tabelle, und es gibt keine   Kontrolle über seinen Namen oder wo es ist   gespeichert.

    
AdaTheDev 11.02.2010 11:16
quelle