Gilt für
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Web SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Problembeschreibung

Wenn Sie eine Tabellenvariable mit vielen Zeilen füllen und dann mit anderen Tabellen verknüpfen, kann der Abfrageoptimierer einen ineffizienten Abfrageplan auswählen, der zu einer verlangsamten Abfrageleistung führen kann.

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:

Service Pack 2 für SQL Server 2012

Service Packs sind kumulativ. Jedes neue Service Pack enthält neben neuen Updates alle Updates früherer Service Packs. Wir empfehlen, das neueste Service Pack und das neueste kumulative Update für dieses Service Pack zu verwenden. Sie müssen also keine älteren Versionen eines Service Packs installieren, bevor Sie das neueste Service Pack installieren. Verwenden Sie Tabelle 1 im folgenden Artikel, um weitere Informationen zum neuesten Service Pack und dem neuesten kumulativen Update zu finden:

Ermitteln der Versions-, Editions-und Update Ebene von SQL Server und dessen Komponenten

Weitere Informationen

Wenn Sie eine Tabellenvariable in einem Batch oder einer Prozedur verwenden, wird die Abfrage kompiliert und für den anfänglichen leeren Zustand der Tabellenvariablen optimiert. Wenn diese Tabellenvariable zur Laufzeit mit vielen Zeilen gefüllt ist, ist der vorkompilierte Abfrageplan möglicherweise nicht mehr optimal. Beispielsweise kann die Abfrage einer Tabellenvariablen mit einer geschachtelten Schleife beitreten, da Sie für eine geringe Anzahl von Zeilen in der Regel effizienter ist. Dieser Abfrageplan kann ineffizient sein, wenn die Tabellenvariable Millionen von Zeilen enthält. Eine Hash-Verknüpfung ist unter solchen Bedingungen möglicherweise eine bessere Wahl. Um einen neuen Abfrageplan abzurufen, muss er erneut kompiliert werden. Im Gegensatz zu anderen Benutzer-oder temporären Tabellen löst die Änderung der Zeilenanzahl in einer Tabellenvariablen keine erneute Kompilierung einer Abfrage aus. In der Regel können Sie dies mit der Option (neu kompilieren) umgehen, die eigene Overhead-Kosten hat. Das Ablaufverfolgungsflag 2453 ermöglicht den Vorteil einer Abfragekompilierung ohne Option (neu kompilieren). Dieses Ablaufverfolgungsflag unterscheidet sich von Option (neu kompilieren) in zwei Hauptaspekten. (1) Es wird derselbe Schwellenwert für die Zeilenanzahl wie bei anderen Tabellen verwendet. Die Abfrage muss nicht für jede Ausführung im Gegensatz zur Option (neu kompilieren) kompiliert werden. Eine Neukompilierung wird nur ausgelöst, wenn die Änderung der Zeilenanzahl den vordefinierten Schwellenwert überschreitet. (2) die Option (neu kompilieren) zwingt die Abfrage dazu, Parameter einzusehen und die Abfrage für Sie zu optimieren. Mit diesem Ablaufverfolgungsflag wird das einspähen des Parameters nicht erzwungen.Hinweis dieses Ablaufverfolgungsflag muss zur Laufzeit aktiviert sein. Sie können dieses Ablaufverfolgungsflag nicht mit QUERYTRACEON verwenden. Dieses Ablaufverfolgungsflag muss mit Bedacht verwendet werden, da es die Anzahl der erneuten Abfragekompilierungen erhöhen kann, die mehr als Einsparungen durch eine bessere Abfrageoptimierung Kosten könnten.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.