Wie funktioniert der alter table switch arbeitet auf sql-server?
Ich bin mit Schalter-Tabelle irgendwann auf SQL Server 2008 zu übertragen Sie schnell Daten zwischen 2 Tabellen, aber ich weiß nicht, wie es funktioniert, und was ist der Unterschied zwischen diesem ein nur einer insert into T2 select * from T1
.
Kann mir jemand im detail erklären, wie es funktioniert und der Unterschied?
Außerdem merke ich, dass, wenn die beiden Tabellen sind nicht Klone, die Ihnen diese Datenschutzerklärung nicht arbeiten. Zum Beispiel, wenn ich einen index in einer Tabelle und nicht in dem anderen gelingt es nicht.
- Ich habe nicht geschaut bei der back-end-zu sagen, für bestimmte, aber ich verstehe
SWITCH
zu arbeiten, indem Sie einfach die Aktualisierung der partition verweisen, anstatt physisch verschieben von Daten um. In der Erwägung, dass in deinem Beispiel wäre es eine Kopie aller Daten in eine neue Tabelle. Zugehörige MSDN-Artikel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfügen von Daten mit der Anweisung
Lädt die Daten, die durch einfügen von Daten aus T1 in T2.
Wenn eine partition übertragen wird (eingeschaltet), werden die Daten nicht physikalisch verschoben werden; nur die Metadaten, die den Speicherort der Daten ändert.
Bevor Sie Partitionen wechseln können, einige Allgemeine Anforderungen erfüllt sein müssen:
Allgemeine Anforderungen für das Wechseln von Partitionen
Wenn eine partition übertragen wird, werden die Daten nicht physikalisch verschoben, nur die Metadaten, die den Speicherort der Daten ändert. Bevor Sie die Partitionen wechseln können, einige Allgemeine Anforderungen erfüllt sein müssen:
Beiden Tabellen vorhanden sein muss, bevor der SWITCH-Betrieb. Die Tabelle, aus der die partition verschoben wird (der Quell-Tabelle) und die Tabelle, die die partition erhält (die target-Tabelle) sind in der Datenbank vorhanden sind, bevor Sie den switch-Vorgang ausführen.
Den Erhalt partition muss vorhanden und leer sein. Ob Sie hinzufügen einer Tabelle als partition einer bereits vorhandenen partitionierten Tabelle oder verschieben einer partition von einer partitionierten Tabelle zu einer anderen, die partition, erhält die neue partition muss vorhanden sein und es muss eine leere partition.
Den Empfang nicht partitionierte Tabelle muss vorhanden und leer sein. Wenn Sie eine partition neu zuweisen, um eine nicht partitionierte Tabelle, die Tabelle, erhält die neue partition muss vorhanden sein, und es muss sich um eine leere, nicht partitionierte Tabelle.
Partitionen müssen in der gleichen Spalte. Wenn Sie wechseln eine partition von einer partitionierten Tabelle zu einer anderen, müssen beide Tabellen partitioniert werden in der gleichen Spalte.
Quell-und Ziel-Tabellen müssen die gleiche Dateigruppe. Die Quell-und die Zieltabelle der Anweisung ALTER TABLE...SWITCH-Anweisung muss sich in derselben Dateigruppe befinden, und Ihre großen-Wert-Spalten müssen in der gleichen Dateigruppe gespeichert. Alle zugehörigen Indizes, index-Partitionen, oder indizierten Sicht müssen die Partitionen auch sich in derselben Dateigruppe befinden. Aber die Dateigruppe kann anders sein als die entsprechenden Tabellen oder anderen entsprechenden Indizes.
Diese und viele weitere Informationen finden Sie hier:
https://technet.microsoft.com/en-us/library/ms191160(v=sql.105).aspx