Update: Speichernutzung des Plans kompilierte Abfrage kann unerwartet in SQL Server 2005 erhöhen.

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 919636 - Produkte anzeigen, auf die sich dieser Artikel bezieht
# Fehler: 810 (SQL-Hotfix)
Hinweis
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
Dieser Artikel beschreibt die folgenden zu dieser Hotfix-Version:
  • Durch dieses Hotfix-Paket behobene Probleme
  • Voraussetzungen für die Installation des Hotfix-Pakets
  • Informationen, ob Sie die Neustarts nach der Installation des Hotfix-Pakets
  • Informationen zum Austausch des Hotfix-Pakets durch andere Hotfix-Paket
  • Informationen, ob Sie die Registrierungsänderungen vornehmen müssen
  • In diesem Hotfix-Paket enthaltene Dateien

Problembeschreibung

Wenn Sie den kompilierte Abfrageplan einer Abfrage untersuchen, können Sie feststellen, dass die Speicherverwendung des kompilierten Abfrageplan unerwartet in SQL Server 2005 im Vergleich zu Microsoft SQL Server 2000 erhöhen.

Dieses Problem kann auftreten, wenn eine der folgenden Bedingungen erfüllt ist:
  • 1: Die Abfrage verweist auf eine Tabelle, die berechnete Spalten verwendet.
  • Bedingung 2: Die Abfrage enthält Zeichenfolgenoperationen zwischen den Werten der Nvarchar -Spalten und ANSI-Zeichenfolgen. Beispielsweise vergleicht der String-Vorgang der Nvarchar -Spalten zu ANSI-Zeichenfolgen-Werte.
  • Bedingung 3: Die Abfrage enthält einen Verweis auf eine Tabelle, eine berechnete Spalte. Die berechnete Spalte basiert auf eine Nvarchar -Spalte. Allerdings verwendet die Spalte Computer ANSI-Zeichenfolgenkonstanten im Ausdruck.
Bedingungen 2 und 3 können eine erhebliche Verbesserung in der Speicherauslastung von kompilierte Abfrage-Plan führen.

Angenommen, Sie verfügen über eine Tabelle, die eine Nvarchar -Spalte aufweist. Der Name der Tabelle MyTable ist und der Namen der Spalte Nvarchar MyCol. Dann definieren Sie die Abfrage mithilfe der folgenden Syntax:
SELECT CASE MyCol
          WHEN 'Value1' THEN 'NewValue1'
          WHEN 'Value2' THEN 'NewValue2'
          ELSE MyCol
       END
FROM MyTable
in diesem Beispiel wird die Zeichenfolgen "Wert1", "Wert2", "NewValue1" und "NewValue2" ANSI-Zeichenfolgen sind. Die Werte der MyCol Nvarchar -Spalte werden zuerst mit der ANSI-Zeichenfolgen "Wert1" und "Wert2" verglichen. Dann den entsprechenden Wert der "NewValue1", "NewValue2" ANSI-Zeichenfolge oder den ursprünglichen Wert der MyCol-Spalte ausgewählt ist.

Untersuchen der Pagesused Spalte der sys.syscacheobjects-Systemtabelle oder die sys.dm_exec_cached_plans Verwaltung dynamischer Ansicht können Sie die kompilierten Plan Speichernutzung anzeigen.

Diese erhöhte Größe der kompilierten Abfrageplan kann auch zu einer Erhöhung der Zeit warten für den RESOURCE_SEMAPHORE_QUERY_COMPILE warten Typ führen.

Lösung

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

Sie müssen SQL 2005 Service Pack 1 (SP1) installiert haben, um diesen Hotfix anwenden 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. Jedoch, wenn Sie bereits von diesem Problem betroffen sind, müssen Sie die Schritte im Abschnitt "Workground" nach dieses Hotfixes, die Datenbankdateien in einen fehlerfreien Zustand wiederherzustellen.

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-32-Bit-version
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Microsoft.SqlServer.SqlEnum.dll9.0.2164.0908,06414-Jun-200612: 32X 86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.075,55214-Jun-200612: 29X 86
Msgprox.dll2005.90.2164.0197,92014-Jun-200612: 29X 86
Replprov.dll2005.90.2164.0547,61614-Jun-200612: 31X 86
Replrec.dll2005.90.2164.0782,11214-Jun-200612: 32X 86
Msmdlocal.dll9.0.2164.015,661,85614-Jun-200612: 33X 86
Sqlaccess.dll2005.90.2164.0347,93614-Jun-200612: 31X 86
Sqlservr.exe2005.90.2164.028,950,87214-Jun-200612: 33X 86
SQL Server 2005 x 64-basierte version
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Microsoft.SqlServer.SqlEnum.dll9.0.2164.0875,29614-Jun-200613: 12X 86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.091,42414-Jun-200612: 29X 64
Msgprox.dll2005.90.2164.0259,36014-Jun-200613: 10X 64
Replprov.dll2005.90.2164.0745,24814-Jun-200613: 12X 64
Replrec.dll2005.90.2164.01,008,41614-Jun-200613: 12X 64
Msmdlocal.dll9.0.2164.015,661,85614-Jun-200612: 33X 86
Sqlaccess.dll2005.90.2164.0355,10414-Jun-200613: 11X 86
Sqlservr.exe2005.90.2164.039,251,23214-Jun-200613: 13X 64
Version von SQL Server 2005 Itanium-Architektur
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
Microsoft.SqlServer.SqlEnum.dll9.0.2164.0875,29614-Jun-200612: 29X 86
Microsoft.SqlServer.mgdsqldumper.dll2005.90.2164.0163,10414-Jun-200612: 29IA-64
Msgprox.dll2005.90.2164.0542,49614-Jun-200612: 28IA-64
Msmdlocal.dll9.0.2164.048,733,98414-Jun-200612: 30IA-64
Replprov.dll2005.90.2164.01,617,18414-Jun-200612: 29IA-64
Replrec.dll2005.90.2164.02,141,47214-Jun-200612: 29IA-64
Sqlaccess.dll2005.90.2164.0349,47214-Jun-200612: 28X 86
Sqlservr.exe2005.90.2164.072,208,67214-Jun-200612: 30IA-64

Abhilfe

Um dieses Problem zu umgehen, Hinzufügen einer Großbuchstaben "N" vor der alle Zeichenfolgen, die im Kontext Problem. Können Sie das Beispiel, das im Abschnitt "Problembeschreibung" beschrieben wird, mithilfe der folgenden Syntax:

SELECT CASE MyCol WHEN N'Value1' THEN N'NewValue1' WHEN N'Value2' THEN N'NewValue2' ELSE MyCol END FROM MyTable

Status

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

Weitere Informationen

Untersuchen der Pagesused Spalte der sys.syscacheobjects-Systemtabelle oder die sys.dm_exec_cached_plans Verwaltung dynamischer Ansicht können Sie die kompilierten Plan Speichernutzung anzeigen.

Weitere Informationen zu der Systemtabelle sys.syscacheobjects die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.microsoft.com/en-us/library/ms187815.aspx
Weitere Informationen über die sys.dm_exec_cached_plans Verwaltung dynamischer Ansicht der folgenden MSDN-Website:
http://msdn.microsoft.com/en-us/library/ms187404.aspx
Weitere Informationen über das Namensschema für Microsoft 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: 919636 - Geändert am: Dienstag, 20. November 2007 - Version: 1.9
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard X64 Edition
Keywords: 
kbmt kbautohotfix kbsql2005engine kbhotfixserver kbexpertiseadvanced kbqfe kbfix kbpubtypekc KB919636 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: 919636
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