Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie führen eine Prozedur in Microsoft SQL Server 2014 oder SQL Server 2012 aus.
-
Die Prozedur enthält eine Abfrage hat die folgenden Bedingungen:
-
Sie verknüpft eine Tabelle, die sehr häufig aktualisiert wird.
-
Sie hat eine WHERE-Klausel, die Parameter enthält.
-
Die Option (neu kompilieren) wird verwendet.
-
-
Diese Vorgehensweise wird für mehrere gleichzeitige Verbindungen mit unterschiedlichen Sätzen von Parameterwerten ausgeführt.
-
Ihr Server ist stark ausgelastet, was dazu führt, dass jedes dieser Verfahren mehr Zeit als üblich beansprucht.
In diesem Szenario erhalten Sie möglicherweise falsche Ergebnisse aus dem Verfahren, das für Ihre Verbindung ausgeführt wird, wenn die folgenden zusätzlichen Bedingungen während des Zeitintervalls erfüllt sind, das zwischen dem Ende der Abfragekompilierung und dem Anfang der Abfrageausführung für Ihre Verbindung auftritt:
-
Bedingung 1: eine andere gleichzeitige Verbindung führt zu Aktualisierungen der verknüpften Tabelle, die groß genug sind, um eine erneute Kompilierung der Abfrage für Ihre Verbindung auszulösen.
-
Bedingung 2: dieselbe Abfrage wurde aus einer anderen Verbindung neu kompiliert und dann in den Cache gesetzt.
Wichtig Dieses Problem mit der Zeitmessung ist extrem selten.
Ursache
Dieses Problem tritt auf, weil die Parameterwerte für die Abfrage in falsche Werte geändert werden, nachdem Sie die Abfrage für Ihre Verbindung ausgeführt haben. Dies tritt auf, weil ein extrem seltenes Timing-Problem zwischen gleichzeitigen Kompilierungen vorliegt.
Fehlerbehebung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 4 für SQL Server 2014 /en-us/help/2999197
Kumulatives Update 2 für SQL Server 2012 SP2 /en-us/help/2983175
Kumulatives Update 11 für SQL Server 2012 SP1 /en-us/help/2975396
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:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.