Update Wenn Sie einen paralllen Ausführungsplan in SQL Server 2005 ausführen, erhalten Sie möglicherweise eine Zugriffsverletzung Fehlermeldung

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 912885 - Produkte anzeigen, auf die sich dieser Artikel bezieht
# FEHLER: 420246 (SQLBUDT)
Microsoft stellt Updates für Microsoft SQL Server 2005 als downloadbare Datei. Da die Updates kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2005 enthalten waren.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt die folgenden zu dieser Hotfix-Version:
  • Durch das Hotfix-Paket behobene Probleme
  • Voraussetzungen für die Installation des Hotfix-Pakets
  • Gibt an, ob müssen Sie den Computer neu starten nach der Installation des Hotfix-Pakets
  • Gibt an, ob das Hotfix-Paket wird durch ein anderes Hotfixpaket ersetzt
  • Gibt an, ob Sie die Registrierungsänderungen vornehmen müssen
  • In diesem Hotfix-Paket enthaltene Dateien

Problembeschreibung

In Microsoft SQL Server 2005 erhalten Sie ein Fehlermeldung Zugriff Verstoß, wenn folgenden Bedingungen erfüllt sind:
  • Sie erstellen einen Index, der die Option IGNORE_DUP_KEY für eine Tabelle verwendet.
  • Sie Ausführen einer INSERT-Anweisung, die in diesem Index eine neue Zeile einfügt.
  • Der Plan für die INSERT-Anweisung ist parallel.
  • Mithilfe eines Parameters ist der Wert für eine der wichtigsten Spalten die Option IGNORE_DUP_KEY dient.
Darüber hinaus erhalten Sie eine Fehlermeldung, die der folgenden ähnelt:
Serverfehler für den aktuellen Befehl. Die Ergebnisse sollten ggf. verworfen werden.

Lösung

Hotfix-Informationen

Es ist ein unterstützter Hotfix von Microsoft erhältlich. Der Hotfix ist jedoch nur die Behebung des Problems die in diesem Artikel beschriebene vorgesehen. Installieren Sie diesen Hotfix nur auf Systemen, bei die dieses spezielle Problem auftritt. Dieser Hotfix kann einem späteren Zeitpunkt zusätzliche Tests unterzogen. Wenn durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfiehlt Microsoft daher, auf die nächste Softwareupdate zu warten, das diesen Hotfix enthält.

Wenn der Hotfix zum Download verfügbar ist, ist ein Abschnitt "Hotfix Download available (Hotfixdownload verfügbar" am oberen Rand dieser Knowledge Base-Artikel. Wenn in diesem Abschnitt nicht angezeigt wird, wenden Sie sich an technischen Kundendienst und Support, um den Hotfix zu erhalten.

Hinweis: Wenn weitere Probleme auftreten oder wenn eine Problembehandlung erforderlich ist, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die normalen Supportkosten gelten die für zusätzliche Supportfragen und Probleme, die für diesen speziellen Hotfix nicht qualifizieren. Eine vollständige Liste der technischen Kundendienst und Support-Telefonnummern oder eine separate Serviceanfrage erstellen die folgende Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support
Hinweis: Das Formular "Hotfix Download available (Hotfixdownload verfügbar" zeigt die Sprachen für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, ist es, da ein Hotfix nicht für diese Sprache zur Verfügung steht.

Voraussetzungen

Es gibt keine Voraussetzungen für diesen Hotfix.

Informationen zum Neustart

Sie müssen den Computer nach Installation dieses Hotfixes neu starten.

Informationen zur Registrierung

Sie müssen die Registrierung ändern.

Dateiinformationen

Dieser Hotfix enthält nur die Dateien, die um die Probleme zu beheben, die in diesem Artikel aufgelistet erforderlich sind. Dieser Hotfix enthält möglicherweise nicht alle Dateien, die Sie benötigen, um ein Produkt vollständig auf den neuesten Stand zu aktualisieren.

Die englische Version dieses Hotfixes weist die Dateiattribute (oder höher Dateiattribute), die in der folgenden Tabelle aufgelistet werden. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Verwenden Sie die Registerkarte Zeitzone im Element Datum und Uhrzeit in der Systemsteuerung, um die Differenz zwischen UTC und der Ortszeit zu ermitteln.
SQL Server 2005 für x 86-basierte Systeme
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Msvcp80.dll8.0.50727.42548,86414-Oct-200506: 26X 86
Msvcr80.dll8.0.50727.42626,68814-Oct-200506: 26X 86
Sqldiscoveryapi.dll2005.90.1518.0527,06421-Jan 200600: 11X 86
SQL Server 2005 x 64 edition
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Msvcp80.dll8.0.50727.421,097,72814-Oct-200518: 46X 64
Msvcr80.dll8.0.50727.42822,78414-Oct-200518: 46X 64
Sqldiscoveryapi.dll2005.90.1518.0745,68821-Jan 200604: 14X 64
SQL Server 2005 für Itanium-basierte Systeme
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Msvcp80.dll8.0.50727.421,385,47214-Oct-200518: 35IA-64
Msvcr80.dll8.0.50727.421,484,80014-Oct-200518: 35IA-64
Sqldiscoveryapi.dll2005.90.1518.01,924,31221-Jan 200603: 30IA-64

Abhilfe

Gehen Sie folgendermaßen vor um um dieses Problem zu beheben:
  1. Bestimmen Sie die problematische INSERT-Anweisung, die die Zugriffsverletzung verursacht.
  2. Erzwingen Sie den Abfrageoptimierer ein serielles Planes für die problematischen INSERT-Anweisung generieren. Daher kann die Anweisung in einem Thread ausgeführt werden.
Hinweis: Wenn Sie die problematische INSERT-Anweisung nicht können, die die Zugriffsverletzung verursacht ermitteln, können Sie die Methode, die in Methode 3, um dieses Problem zu umgehen beschrieben ist.

Gehen Sie folgendermaßen vor um die problematische INSERT-Anweisung zu ermitteln, die die Zugriffsverletzung verursacht:
  1. Suchen Sie in der SQL Server-Fehlerprotokolldatei der Zugriffsverletzung Fehlermeldung.
  2. Suchen Sie am oberen Rand der Zugriffsverletzung Fehlermeldung Informationen Eingabepuffer.
  3. Überprüfen Sie die Batch-Informationen, die die Informationen Eingabepuffer folgt.

    Hinweis: Der Stapel enthält die problematische INSERT-Anweisung, die die Zugriffsverletzung verursacht.
  4. Wenn der Stapel nur eine INSERT-Anweisung enthält, ist diese Anweisung genau die problematische INSERT-Anweisung. Wenn der Batch mehrere INSERT-Anweisungen enthält, führen Sie Operationen folgen die problematische INSERT-Anweisung fest:
    1. Erstellen Sie in SQL Server Profiler eine Ablaufverfolgung für die Instanz von SQL Server 2005.
    2. Wählen Sie in der Fehler und Warnungen -Ereigniskategorie der Attention -Ereignisklasse und die Exception -Ereignisklasse.

      Hinweis: Diese Ereignisklassen können Sie um die letzte Anweisung zu bestimmen, die ausgeführt werden, bevor Zugriffsverletzung tritt auf, beginnt.

      Wenn die Stapelverarbeitung nur Transact-SQL-Anweisungen enthält, wählen Sie die folgenden zusätzlichen Ereignisklassen unter der TSQL -Ereigniskategorie:
      • SQL: BatchStarting
      • SQL: BatchCompleted
      • SQL:StmtStarting
      • SQL:StmtCompleted
      Wenn der Stapel eine gespeicherte Prozedur in der die Zugriffsverletzung auftritt enthält, wählen Sie die folgenden zusätzlichen Ereignisklassen unter Gespeicherte Prozeduren -Ereigniskategorie:
      • SP: Starting
      • SP: Completed
      • SP: StmtStarting
      • SP: StmtCompleted
    3. Führen Sie den gleichen Stapel von der Clientanwendung.

      Befolgen Sie diese Schritt, die Zugriffsverletzung zu reproduzieren. Dann können Sie die problematische INSERT-Anweisung festlegen. Wenn Sie die Stapelverarbeitung ausführen, stellen Sie sicher, dass die Ablaufverfolgung ausgeführt wird.

      Wenn die Clientanwendung nicht SQL Server Management Studio ist, können Sie den gleichen Batch in SQL Server Management Studio auch manuell ausführen. Sie können jedoch nicht denselben Ausführungsplan als der ursprüngliche Ausführungsplan abrufen, die das Problem verursacht. Dieses Verhalten, wenn SQL Server 2005 die problematische INSERT-Anweisung im Batch mit einen anderen Ausführungsplan oder durch mit verschiedene Parametern neu kompiliert.
    4. Beenden Sie die Ablaufverfolgung, und alysieren Sie dann die Ablaufverfolgungsergebnisse problematische INSERT-Anweisung fest an. Um die problematische INSERT-Anweisung zu bestimmen, bestimmen Sie die SPID, die Zugriffsverletzung auftritt und, trennt die Verbindung der Clientanwendung. Beachten Sie dann die SPID Sie auf INSERT-Anweisung, die die folgenden Anforderungen erfüllt:
      • Die INSERT-Anweisung wird gestartet.
      • INSERT-Anweisung ist nicht abgeschlossen.
Verwenden Sie den Abfrageoptimierer zum Generieren eines seriellen Planes für die problematischen INSERT-Anweisung zu erzwingen, eine der folgenden Methoden.

Methode 1

Hinweis: Verwenden Sie diese Methode, wenn Sie die problematische INSERT-Anweisung zugreifen können.

Fügen Sie OPTION (MAXDOP 1) Ausdruck zur problematisch INSERT-Anweisung hinzu. Der folgende Code ist ein Beispiel der INSERT-Anweisung.
INSERT INTO MyTable (Col1, Col2)
SELECT Col1, Col2 FROM OtherTable
OPTION (MAXDOP 1) 
Weitere Informationen des Abfragehinweises finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website im Abschnitt "Using MAXDOP":
http://msdn2.microsoft.com/en-us/library/ms181714.aspx

Methode 2

Hinweis: Verwenden Sie diese Methode, wenn Sie die problematische INSERT-Anweisung nicht zugreifen können. Beispielsweise ist die problematische INSERT-Anweisung von einer Clientanwendung. Allerdings Sie können nicht neu konfigurieren, die Client-Anwendung, oder Sie können nicht die Clientanwendung den OPTION (MAXDOP 1) Ausdruck hinzufügen neu kompilieren. Oder die problematische INSERT-Anweisung in einer gespeicherten Prozedur ist. Allerdings wird die gespeicherte Prozedur verschlüsselt. Sie können die Anweisungen in der gespeicherten Prozedur nicht ändern.

Verwenden Sie die Sp_create_plan_guide gespeicherten Prozedur gegen die problematische INSERT-Anweisung. Dadurch zwingen Sie den Ausdruck OPTION (MAXDOP 1) auf der problematischen INSERT-Anweisung. Der folgende Code ist ein Beispiel der Verwendung die Sp_create_plan_guide gespeicherten Prozedur.
sp_create_plan_guide @name = N'planguide_for_MyFailingProc', -- Arbitrary name
@stmt = N'INSERT INTO MyOneFailingStatementTable VALUES (@a,@b,@c)', -- The problematic INSERT statement
@type = N'OBJECT', @module_or_batch = N'dbo.MyFailingProc', -- The name of the stored procedure that contains the problematic INSERT statement
@params = NULL, @hints = N'OPTION (MAXDOP 1)'-- Query hint to prevent parallelism
Weitere Informationen über die Sp_create_plan_guide gespeicherte Prozedur die folgenden MSDN-Website:
http://msdn2.microsoft.com/en-us/library/ms179880.aspx

Methode 3

Hinweis: Verwenden Sie diese Methode, wenn eine der folgenden Bedingungen erfüllt ist:
  • Die problematische INSERT-Anweisung wird dynamisch generiert.
  • Sie können nicht die INSERT-Anweisung feststellen, die die Zugriffsverletzung verursacht.
wichtig Mit dieser Methode können alle Abfragen für die Instanz von SQL Server 2005 auf einem Thread ausgeführt. Wir nicht empfehlen, dass Sie diese Methode verwenden. Diese Methode kann zu Leistungsproblemen auf andere Abfragen führen, die für die Instanz ausgeführt.

Führen Sie die folgenden Transact­SQL-Anweisungen aus.
sp_configure 'show advanced options', 1;
GO

RECONFIGURE WITH OVERRIDE;
GO

sp_configure 'max degree of parallelism', 1;
GO

RECONFIGURE WITH OVERRIDE;
GO
Weitere Informationen über die Option max Degree of Parallelism die folgenden MSDN-Website:
http://msdn2.microsoft.com/en-us/library/ms181007.aspx

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Weitere Informationen zum Benennungsschema für SQL Server-Updates finden Sie im folgenden Artikel der Microsoft Knowledge Base:
822499Neues Namensschema für Microsoft SQL Server-Softwareupdate-Paketen
Weitere Informationen zur Terminologie für Softwareupdates finden Sie im folgenden Artikel der Microsoft Knowledge Base:
824684Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Eigenschaften

Artikel-ID: 912885 - Geändert am: Dienstag, 20. November 2007 - Version: 3.5
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium-based Systems Community Technology Preview
Keywords: 
kbmt kbautohotfix kbsql2005engine kbsql2005presp1fix kbhotfixserver kbfix kbbug kbsqlserv2005fix kbqfe kbpubtypekc KB912885 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 912885
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com