Update: Wenn Sie eine Abfrage, die der Tabellenhinweis NOLOCK zum Abrufen von BLOB-Daten in SQL Server 2005 oder SQL Server 2008 verwendet ausführen, führt die Abfrage sehr langsam

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 961049 - Produkte anzeigen, auf die sich dieser Artikel bezieht
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.
Microsoft stellt Updates für Microsoft SQL Server 2008 als downloadbare Datei. Da die Updates kumulativ sind, enthält jede neue Version alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2008 enthalten waren.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Sie verfügen über eine Abfrage, die der NOLOCK-Tabellenhinweis in Microsoft SQL Server 2005 oder Microsoft SQL Server 2008 verwendet. Die Abfrage liest Daten eines der folgenden Datentypen binary large Object (BLOB) aus einer großen Tabelle:
  • Der Datentyp Text
  • Der Datentyp nText
  • Der Image-Datentyp
Wenn Sie die Abfrage ausführen, wird die Abfrage sehr langsam ausgeführt. Wenn Sie die Datenträgeraktivität, die die Abfrage erzeugt untersuchen, stellen Sie fest, dass die Anzahl der logischen Lesevorgänge sehr hoch ist.

Hinweis: Führen Sie die Datenträgeraktivitäten anzeigen möchten, die Abfrage mithilfe der SET STATISTICS IO-ON-Klausel.

Ursache

Wenn die Abfrage, die der NOLOCK-Tabellenhinweis verwendet, BLOB-Daten liest, überprüft SQL Server, dass jede Seite BLOB durch Untersuchen der entsprechenden Index-Zuordnungstabelle (IAM) reserviert ist. Die IAM ist eine verknüpfte Liste Zuweisung Seiten. Jede IAM-Seite kann etwa 4 GB Daten enthalten (Seitengröße von 8 KB * 8 Seiten * 64.000 Blöcke). Wenn das Objekt groß ist, kann die Überprüfung Operation zu übermäßigen logische Lesevorgänge führen.

Angenommen, Sie verfügen über ein großes Objekt zu einer Dateigruppe zugeordnet. Die Gesamtgröße der Dateien in der Dateigruppe ist 700 GB. In diesem Fall kann die IAM für dieses Objekt bis zu 175 Seiten enthalten. Wenn Sie einer Abfrage ausführen mithilfe der NOLOCK-Tabellenhinweis für dieses Objekt und die Abfrage greift auf 10.000 BLOB-Seiten, werden die Anzahl der logischen Lesevorgänge, die mit der IAM-Seiten zusammenhängen 175 * 10.000 = 1,750,000 im schlimmsten Fall. Wenn SQL Server die entsprechende IAM-Seite durch Durchlaufen der Hälfte der verknüpften Liste findet, werden die durchschnittliche Anzahl der logischen Lesevorgänge, die mit der IAM-Seiten zusammenhängen ca. 1,750,000 / 2 = 875,000. Dies ist zu hoch der Aufwand, fallen für eine Abfrage auf 10.000 BLOB-Seiten zugreifen.

Lösung

Kumulatives Update-Informationen für SQL Server 2005

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 3 für SQL Server 2005 Service Pack 3 veröffentlicht. Weitere Informationen, wie Sie dieses kumulative Updatepaket für SQL Server 2005 zu erhalten finden Sie im folgenden Artikel der Microsoft Knowledge Base:
967909Kumulatives Updatepaket 3 für SQL Server 2005 Service Pack 3
Hinweis: Da die Builds kumulativ sind, enthält jede neue Update-Version alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2005 enthalten waren. Wir empfehlen Sie die neueste Hotfix-Version, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
960598SQL Server 2005 erstellt, die nach SQL Server 2005 Service Pack 3 veröffentlicht wurde veröffentlicht wurden

Kumulatives Update-Informationen für SQL Server 2008

Die Fehlerbehebung für dieses Problem wurde zuerst im kumulativen Update 5 für SQL Server 2008 veröffentlicht. Weitere Informationen, wie Sie dieses kumulative Updatepaket für SQL Server 2008 erhalten finden Sie im folgenden Artikel der Microsoft Knowledge Base:
969531Kumulatives Updatepaket 5 für SQL Server 2008
Hinweis: Da die Builds kumulativ sind, enthält jede neue Update-Version alle Hotfixes und alle Sicherheitsupdates, die mit früheren SQL Server 2008 enthalten waren. Wir empfehlen Sie die neueste Hotfix-Version, die diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
956909SQL Server 2008 erstellt, die nach SQL Server 2008 veröffentlicht wurde veröffentlicht wurden

Status

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

Weitere Informationen

Die Fehlerbehebung für dieses Problem verwendet den IAM-Cache schnell feststellen, ob eine BLOB-Seite tatsächlich zugewiesen ist.

Weitere Informationen, welche Dateien geändert werden, sowie über alle Voraussetzungen für das kumulative Updatepaket anwenden, das den Hotfix enthält, der in diesem Knowledge Base-Artikel beschrieben wird, finden Sie die folgende KB-Artikelnummer:
967909Kumulatives Updatepaket 3 für SQL Server 2005 Service Pack 3
Weitere Informationen, welche Dateien geändert werden, sowie über alle Voraussetzungen für das kumulative Updatepaket anwenden, das den Hotfix enthält, der in diesem Knowledge Base-Artikel beschrieben wird, finden Sie die folgende KB-Artikelnummer:
969531Kumulatives Updatepaket 5 für SQL Server 2008

Informationsquellen

Weitere Informationen zur Liste der Builds, die nach SQL Server 2005 Service Pack 3 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
960598SQL Server 2005 erstellt, die nach SQL Server 2005 Service Pack 3 veröffentlicht wurde veröffentlicht wurden
Weitere Informationen zur Liste der Builds, die nach SQL Server 2008 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
956909SQL Server 2008 erstellt, die nach SQL Server 2008 veröffentlicht wurde veröffentlicht wurden
Weitere Informationen zu inkrementellen Dienstmodell für SQL Server finden Sie im folgenden Artikel der Microsoft Knowledge Base:
935897Ein inkrementelles Dienstmodell steht SQL Server-Team zum Übermitteln von Hotfixes für gemeldete Probleme
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: 961049 - Geändert am: Montag, 18. Mai 2009 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Keywords: 
kbmt kbsurveynew kbhotfixrollup kbfix kbqfe kbexpertiseadvanced KB961049 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: 961049
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