Gibt es eine vollständige Liste der Online-Vorgänge für jede SQL Server-Version?

20

Da wir im Begriff sind, einige der großen Tabellen in unserer 5-TB-Datenbank zu ändern, benötigte ich eine Liste der Vorgänge, die online ausgeführt werden können und für die vollständige Sperren erforderlich sind, während sie ausgeführt werden. Im Idealfall enthält diese Liste auch Informationen darüber, für welche Anweisungen die SCH-M-Sperre am Ende festgeschrieben werden muss.

Obwohl ich die meisten von ihnen aus meiner Zeit bei Microsoft kenne, war ich überrascht, dass ich keine öffentlich verfügbare Liste von Online-Vorgängen finden konnte, da sie von SQL Server 2005 bis 2014 CTP weiterentwickelt wurden.

Hat jemand eine solche Liste zur Verfügung? Wenn nicht, kann ich beschließen, es zu erstellen.

Thomas Kejser
quelle
4
Ich denke, Sie betrachten dies möglicherweise von der falschen Seite des Spektrums. Anstatt zu interpolieren, was Sie online tun können, sollten Sie sich überlegen, was Sie tun müssen , und herausfinden, was online getan werden kann. "online" ist ein sehr allgemeiner Begriff und hängt, wie Sie angeben, von der Nebenläufigkeit ab. Meine Folgefrage wäre: "Was genau versuchst du zu tun?"
Thomas Stringer
2
Ich stimme @ThomasStringer nicht zu - die Auswahl, die Sie in einem großen System treffen, hängt davon ab, was Sie tun können und nicht, was Sie tun möchten. Ich möchte, dass alles online ist - aber ich weiß, dass dies nicht möglich ist -, also versuche ich, den Designraum abzubilden.
Thomas Kejser
"Wir werden einige der großen Tische ändern" ... Was ändern Sie? Darauf versuche ich zu kommen. Ich bezweifle, dass Ihr Zeitplan es Ihnen erlaubt, zufällige Dinge in einer großen Tabelle in einer großen Datenbank zu tun. Wenn Sie nach Operationen suchen, die Schemastabilität erfordern, oder Sperren ändern, ist das etwas völlig anderes. Wieder ... "online" liegt im Auge des Betrachters / Anforderers.
Thomas Stringer
2
Wenn keine maßgebliche Quelle gefunden wird, wäre es für zukünftige Leser hilfreich, aufzulisten, was Sie als Online-Vorgang aus Ihrer Zeit bei MS kennen.
Billinkc
8
Wie läuft die Liste? :)
nmad

Antworten:

5

Klingt nach einem Unterfangen. Online-Indexvorgänge sind nicht in jeder Edition von Microsoft SQL Server verfügbar. Hoffentlich können Sie damit beginnen (in Tabellenform):

SQL Server 2012: http://msdn.microsoft.com/en-us/library/ms190981.aspx

SQL Server 2008R2: http://msdn.microsoft.com/en-us/library/ms190981(v=sql.105).aspx

SQL Server 2008: http://msdn.microsoft.com/en-us/library/ms190981(v=sql.100).aspx

SQL Server 2005: http://msdn.microsoft.com/en-us/library/ms190981(v=sql.90).aspx

Java Riser
quelle
5

SQL Server 2014 führt per se keine neuen Online-Vorgänge ein, verbessert jedoch eine Reihe von Vorgängen, um die Verfügbarkeit zu erhöhen. Aus dem Abschnitt "Was ist neu?" :

Partitionswechsel und Indizierung

Die einzelnen Partitionen partitionierter Tabellen können jetzt neu erstellt werden. Weitere Informationen finden Sie unter ALTER INDEX (Transact-SQL).

und

Verwalten der Sperrpriorität von Online-Vorgängen

Die Option ONLINE = ON enthält jetzt eine WAIT_AT_LOW_PRIORITY-Option, mit der Sie angeben können, wie lange der Neuerstellungsprozess auf die erforderlichen Sperren warten soll. Mit der Option WAIT_AT_LOW_PRIORITY können Sie auch die Beendigung von Blockierungsprozessen konfigurieren, die sich auf diese Neuerstellungsanweisung beziehen. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL) und ALTER INDEX (Transact-SQL). Informationen zur Problembehandlung bei neuen Arten von Sperrzuständen finden Sie in sys.dm_tran_locks (Transact-SQL) und sys.dm_os_wait_stats (Transact-SQL).

Jos de Bruijn - MSFT
quelle