Update: System Leistung kann langsam sein, wenn eine Anwendung viele Abfragen für eine SQL Server 2005-Datenbank sendet, die einfache Parametrisierung verwendet

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 920206 - 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.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt die folgenden zu dieser Hotfix-Version:
  • Durch dieses 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

Stellen Sie sich Folgendes Szenario: eine Anwendung sendet viele Abfragen für eine Microsoft SQL Server 2005-Datenbank. Die Abfragen haben identische Abfragetext und die gleichen Parameter deklarieren. Die Abfragen haben jedoch auch verschiedene Kombinationen von Genauigkeit und Dezimalstellenanzahl für die Werte des Datentyps numeric in der Parameterzeichenfolge Deklaration. Die SQL Server 2005-Datenbank verwendet simple Parametrisierung. In diesem Szenario kann die SQL Server 2005 Systemleistung langsam werden. Darüber hinaus können hohen CPU-Auslastung auftreten.

Dieses Problem tritt häufiger auf, wenn die SQL Server 2005-Datenbank groß ist und in einem Szenario mit hoher Belastung ist.

Hinweis: Das Standardverhalten von SQL Server 2005-Datenbank ist die Verwendung einfacher Parametrisierung.

Ursache

Dieses Problem rührt von SQL Server überprüfen muss viele Abfragen, um eine Abfrage zu ermitteln, die den Text der Abfrage, die Parameter und die Parameterzeichenfolge Deklaration entspricht.

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

Um diesen Hotfix installieren, müssen Sie SQL 2005 Service Pack 1 (SP1) auf dem Computer installiert zu können.
Weitere Informationen, wie Sie SQL Server 2005 Service Pack 1 erhalten können finden Sie im folgenden Artikel der Microsoft Knowledge Base:
913089Beziehen der neuesten Service Packs für SQL Server 2005

Informationen zum Neustart

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

Informationen zur Registrierung

Sie müssen die Registrierung ändern.

Ersetzte Hotfixes

Dieser Hotfix ersetzt keine anderen Hotfixes.

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-Hotfix, 32-bit
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.075,55214-Jun-200620: 29X 86
Microsoft.SqlServer.SqlEnum.dll9.0.2164.0908,06414-Jun-200620: 32X 86
Msgprox.dll2005.90.2164.0197,92014-Jun-200620: 29X 86
Msmdlocal.dll9.0.2164.015,661,85614-Jun-200620: 33X 86
Mssqlsystemresource.ldfNicht zutreffend524,28814-Jun-200614: 23Nicht zutreffend
Mssqlsystemresource.mdfNicht zutreffend39,911,42414-Jun-200614: 23Nicht zutreffend
Replprov.dll2005.90.2164.0547,61614-Jun-200620: 31X 86
Replrec.dll2005.90.2164.0782,11214-Jun-200620: 32X 86
Sqlaccess.dll2005.90.2164.0347,93614-Jun-200620: 31X 86
Sqlservr.exe2005.90.2164.028,950,87214-Jun-200620: 33X 86
SQL Server 2005-Hotfix, 64-bit
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.075,55214-Jun-200620: 29X 86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.091,42414-Jun-200621: 10X 64
Microsoft.SqlServer.SqlEnum.dll9.0.2164.0875,29614-Jun-200621: 12X 86
Msgprox.dll2005.90.2164.0259,36014-Jun-200621: 10X 64
Msmdlocal.dll9.0.2164.015,661,85614-Jun-200620: 33X 86
Mssqlsystemresource.ldfNicht zutreffend524,28814-Jun-200614: 23Nicht zutreffend
Mssqlsystemresource.mdfNicht zutreffend39,911,42414-Jun-200614: 23Nicht zutreffend
Replprov.dll2005.90.2164.0745,24814-Jun-200621: 12X 64
Replrec.dll2005.90.2164.01,008,41614-Jun-200621: 12X 64
Sqlaccess.dll2005.90.2164.0355,10414-Jun-200621: 11X 86
Sqlservr.exe2005.90.2164.039,251,23214-Jun-200621: 13X 64
SQL Server 2005-Hotfix, 64-Bit für Itanium-Prozessoren
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.0163,10414-Jun-200620: 29IA-64
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.075,55214-Jun-200620: 29X 86
Microsoft.SqlServer.SqlEnum.dll9.0.2164.0875,29614-Jun-200620: 29X 86
Msgprox.dll2005.90.2164.0542,49614-Jun-200620: 28IA-64
Msmdlocal.dll9.0.2164.048,733,98414-Jun-200620: 30IA-64
Mssqlsystemresource.ldfNicht zutreffend524,28814-Jun-200614: 23Nicht zutreffend
Mssqlsystemresource.mdfNicht zutreffend39,911,42414-Jun-200614: 23Nicht zutreffend
Replprov.dll2005.90.2164.01,617,18414-Jun-200620: 29IA-64
Replrec.dll2005.90.2164.02,141,47214-Jun-200620: 29IA-64
Sqlaccess.dll2005.90.2164.0349,47214-Jun-200620: 28X 86
Sqlservr.exe2005.90.2164.072,208,67214-Jun-200620: 30IA-64

Status

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

Abhilfe

Um dieses Problem zu umgehen, verwenden Sie explizite Parametrisierung in der Clientanwendung. Wenn Sie explizite Parametrisierung in der Clientanwendung verwenden, wird nur ein Ausführungsplan erstellt und in dem Prozedur-Cache gespeichert. In dieser Problemumgehung führt SQL Server 2005-Systemleistung wie erwartet.

Weitere Informationen über explizite Parametrisierung und Ausführungsplan wiederverwenden, von der folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.microsoft.com/en-us/library/ms175580.aspx

Weitere Informationen

Wenn eine Anwendung viele Abfragen für eine SQL Server 2005-Datenbank sendet, muss der Ausführungsplan für jede Abfrage vorhanden sein im Prozedurcache, bevor die Abfrage ausgeführt werden kann.

Hinweis: Wenn der Ausführungsplan für eine bestimmte Abfrage nicht in dem Prozedur-Cache vorhanden ist, wird SQL Server kompiliert die Abfrage, schreibt den Ausführungsplan für die Abfrage in dem Prozedur-Cache und führt dann die Abfrage.

Wenn SQL Server 2005 einen zwischengespeicherten Ausführungsplan für eine bestimmte Abfrage aus dem Prozedurcache abgerufen, gibt SQL Server den entsprechenden Ausführungsplan mit einen Hashschlüssel, der abgeleitet wurde, wenn die Abfrage kompiliert wurde. Die ursprüngliche Version Version von SQL Server 2005 wird von den Abfragetext Hashschlüssel abgeleitet und überspringt die Parameterzeichenfolge Deklaration. Wenn SQL Server 2005 den Abfragetext Hashschlüssel abgeleitet, fügt SQL Server 2005 die Hashschlüssel für alle Abfragen, die identische Abfragetext und denselben Parametern in der gleichen Hashbucket verfügen. Dieses Verhalten auch wenn jede Abfrage eine andere Kombination von Genauigkeit und Dezimalstellenanzahl für die numerischen Werte in der Parameterzeichenfolge Deklaration hat. Wenn SQL Server 2005 versucht, einen zwischengespeicherten Abfrageausführungsplan aus dem Prozedur-Cache für eine bestimmte Abfrage abzurufen, müssen SQL Server alle der Abfrage-Ausführungspläne in das entsprechende Hashbucket, der eine Abfrage-Ausführungsplan zu finden, den Text der Abfrage, die Parameter und die Parameterzeichenfolge Deklaration entspricht, untersuchen.

Nachdem Sie diesen Hotfix angewendet haben, wird SQL Server 2005 Hashschlüssel von der Abfragetext und die Parameterzeichenfolge Deklaration abgeleitet. Wenn eine neue Abfrage eine Kombination aus Genauigkeit und Dezimalstellenanzahl für die numerischen Werte in der Parameterzeichenfolge Deklaration, die nicht mit einer anderen vorhandenen Abfrage übereinstimmt verfügt, fügt SQL Server 2005 den Hashschlüssel für die neue Abfrage in eine neue Hashbucket. SQL Server 2005 versetzt den Hashschlüssel für die neue Abfrage in eine neue Hashbucket, selbst wenn die neue Abfrage identisch Abfragetext und dieselben Parameter wie eine vorhandene Abfrage verfügt. Wenn SQL Server 2005 versucht, zwischengespeicherte Ausführungspläne aus dem Prozedur-Cache für die neue Abfrage abrufen enthält entsprechende Hashbucket daher nur eine Abfrage für SQL Server, zu untersuchen.

In diesem Szenario Hotfix Auflösung hat SQL Server 2005 noch viele Ausführungspläne. Dies geschieht, weil ein separater Ausführungsplan für jede Abfrage erstellt wird, eine neue Kombination aus Genauigkeit und Dezimalstellenanzahl für die numerischen Werte in der Parameterzeichenfolge Deklaration. Jede Ausführungsplan erfordert SQL Server 2005 Systemressourcen, um den Ausführungsplan zu erstellen. Jede Ausführungsplan erfordert SQL Server 2005 Systemressourcen, um den Ausführungsplan in dem Prozedur-Cache zu speichern. Da das Hotfix Auflösung Szenario eine Vielzahl von Systemressourcen für SQL Server 2005 erfordert, kann die SQL Server 2005 Systemleistung noch langsamer als erwartet werden.
Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
824684Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Eigenschaften

Artikel-ID: 920206 - Geändert am: Dienstag, 20. November 2007 - Version: 1.8
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • 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
Keywords: 
kbmt kbautohotfix kbbug kbfix kbtshoot kbhotfixserver kbqfe kbpubtypekc KB920206 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: 920206
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