Update: SQLServer unterschätzt das Kardinalität eines Abfrage-Ausdrucks und einer Abfrageleistung kann, langsam sein

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 831302 - Produkte anzeigen, auf die sich dieser Artikel bezieht
# Fehler: 469592 (SQL Server 8.0)
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

unter bestimmten Bedingungen Microsoft SQL Server 2000 kann das Kardinalität eines Abfrage-Ausdrucks unterschätzen. Dieses Problem möglicherweise langsam Abfrageleistung. Um dieses Problem zu beheben, installieren Sie im Abschnitt "Lösung" beschriebenen Hotfix, und schalten Sie das Ablaufverfolgungsflag 9207.


Weitere Informationen über das neueste Servicepack für Microsoft SQL Server 2000 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
290211So erhalten Sie das neueste Service Pack für SQL Server 2000

Problembeschreibung

SQL Server kann das Kardinalität eines Abfrage-Ausdrucks unterschätzen, und die Abfrageleistung möglicherweise langsam. Dieses Problem tritt auf, wenn folgende Bedingungen zutreffen:
  • Das Prädikat besteht aus mindestens zwei Bedingungen auf anderen Spalten in der gleichen Tabelle, die zusammen mit der AND-Operator verwendet werden.
  • Einer der Prädikate umfasst eine Ungleichheitsoperator oder ein Bereichsausdruck.
  • SQL Server-Abfrageoptimierer kann eine mehrspaltige Dichte beziehen, aus dem Index oder von mehrspaltigen Statistik, die die Spalten in der Abfrage-Ausdrucks umfassen.
  • Existiert ein Histogramm, die die Selektivität der Bereichsausdruck schätzen verwendet werden können, und das Histogramm Selektivität ist kleiner oder gleich die durchschnittliche Selektivität einen beliebigen Konstanten Wert.
Unter diesen Bedingungen SQL Server effektiv die Selektivität der Bereichsausdruck zweimal mithilfe von ersten mehrspaltige Dichte für alle Spalten und Filtern basierend auf die Selektivität der einzelnen Bereichsausdruck gelten. Zum Beispiel des folgenden Abfrageausdrucks alle Bedingungen erfüllt:
SELECT a.col1, a.col2, a.col3, a.col4
WHERE a.col1 = ?x? AND a.col2 = ?y? AND a.col3 = ?z? 
AND a.col4 BETWEEN ?a? AND ?b?

Lösung

Informationen zu Service Packs

Installieren Sie das neueste Service Pack für Microsoft SQL Server 2000, um dieses Problem zu beheben. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
290211So erhalten Sie das neueste Service Pack für SQL Server 2000

Hotfix-Informationen


Die englische Version dieses Hotfixes weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Die Datums- und Uhrzeitangaben für diese Dateien werden in Coordinated Universal Time () angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln verwenden Sie die Registerkarte Zeitzone des Tools ? Datum und Uhrzeit in der Systemsteuerung.
   Date         Time   Version            Size    File name
   -----------------------------------------------------------------------
   31-May-2003  06:15  2000.80.818.0      78,400  Console.exe      
   02-Oct-2003  08:29  2000.80.867.0      33,340  Dbmslpcn.dll     
   24-Apr-2003  13:42                    786,432  Distmdl.ldf
   24-Apr-2003  13:42                  2,359,296  Distmdl.mdf
   29-Jan-2003  13:25                        180  Drop_repl_hotfix.sql
   11-Sep-2003  14:56  2000.80.859.0   1,905,216  Dtspkg.dll       
   26-Aug-2003  07:46  2000.80.854.0     528,960  Dtspump.dll      
   23-Jun-2003  10:10  2000.80.837.0   1,557,052  Dtsui.dll        
   23-Jun-2003  10:10  2000.80.837.0     639,552  Dtswiz.dll       
   23-Apr-2003  14:21                    747,927  Instdist.sql
   02-May-2003  13:26                      1,581  Inst_repl_hotfix.sql
   07-Feb-2003  18:10  2000.80.765.0      90,692  Msgprox.dll      
   31-Mar-2003  13:37                      1,873  Odsole.sql
   04-Apr-2003  13:16  2000.80.800.0      62,024  Odsole70.dll     
   07-May-2003  08:11  2000.80.819.0      25,144  Opends60.dll     
   02-Apr-2003  09:18  2000.80.796.0      57,904  Osql.exe         
   02-Apr-2003  10:45  2000.80.797.0     279,104  Pfutil80.dll     
   04-Aug-2003  05:47                    550,780  Procsyst.sql
   11-Sep-2003  12:07                     12,305  Qfe469315.sql
   22-May-2003  10:27                     19,195  Qfe469571.sql
   05-Sep-2003  13:06                  1,090,932  Replmerg.sql
   05-Sep-2003  18:48  2000.80.858.0     221,768  Replprov.dll     
   05-Sep-2003  18:48  2000.80.858.0     307,784  Replrec.dll      
   05-Sep-2003  11:30                  1,087,150  Replsys.sql
   13-Aug-2003  03:58                    986,603  Repltran.sql
   21-Oct-2003  11:38  2000.80.871.0      57,916  Semnt.dll        
   29-Jul-2003  07:43  2000.80.819.0     492,096  Semobj.dll       
   31-May-2003  05:57  2000.80.818.0     172,032  Semobj.rll
   05-Aug-2003  08:36                    127,884  Sp3_serv_uni.sql
   31-May-2003  12:31  2000.80.818.0   4,215,360  Sqldmo.dll       
   07-Apr-2003  05:14                     25,172  Sqldumper.exe    
   19-Mar-2003  05:50  2000.80.789.0      28,672  Sqlevn70.rll
   26-Sep-2003  16:12  2000.80.865.0     180,792  Sqlmap70.dll     
   02-Sep-2003  14:26  2000.80.857.0     188,992  Sqlmmc.dll       
   02-Sep-2003  10:33  2000.80.857.0     479,232  Sqlmmc.rll
   21-Oct-2003  11:38  2000.80.871.0     401,984  Sqlqry.dll       
   07-Feb-2003  18:10  2000.80.765.0      57,920  Sqlrepss.dll     
   21-Oct-2003  11:38  2000.80.871.0   7,602,257  Sqlservr.exe     
   25-Jul-2003  09:14  2000.80.845.0     590,396  Sqlsort.dll      
   07-Feb-2003  18:10  2000.80.765.0      45,644  Sqlvdi.dll       
   02-Oct-2003  08:29  2000.80.867.0      33,340  Ssmslpcn.dll     
   31-May-2003  12:31  2000.80.818.0      82,492  Ssnetlib.dll     
   31-May-2003  12:31  2000.80.818.0      25,148  Ssnmpn70.dll     
   31-May-2003  12:31  2000.80.818.0     158,240  Svrnetcn.dll     
   31-May-2003  06:29  2000.80.818.0      76,416  Svrnetcn.exe     
   30-Apr-2003  11:22  2000.80.816.0      45,132  Ums.dll          
   01-Jul-2003  11:49  2000.80.834.0      98,816  Xpweb70.dll      
Hinweis: Aufgrund von Dateiabhängigkeiten enthält das aktuellste Update oder Feature, das diese Dateien enthält, möglicherweise auch weitere Dateien.

Status

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

Dieses Problem wurde erstmals im Microsoft SQL Server 2000 Service Pack 4.

Weitere Informationen

Nachdem Sie den Hotfix installiert haben, müssen Sie Ablaufverfolgungsflag 9207, damit der Hotfix wirksam aktivieren. So aktivieren Sie das Ablaufverfolgungsflag 9207 sicherstellen, dass der Ablaufverfolgungs-Flag, beim Starten des SQL Server-Dienstes festgelegt ist fügen Sie und hinzu, das Ablaufverfolgungsflag 9207 als SQL Server-Startparameter. Gehen Sie dazu folgendermaßen vor:
  1. Starten Sie SQL Server Enterprise Manager.
  2. Erweitern Sie SQL Server-Gruppe , und klicken Sie auf die Instanz von SQL Server.
  3. Klicken Sie mit der rechten Maustaste auf die Instanz von SQL Server, und klicken Sie dann auf Eigenschaften .
  4. Klicken Sie auf die Registerkarte Allgemein , und klicken Sie dann auf Startparameter .
  5. Geben Sie im Textfeld Parameter -T9207 .
  6. Klicken Sie auf Hinzufügen , und klicken Sie dann auf OK .
  7. Klicken Sie auf OK .
  8. Starten Sie den SQL Server-Dienst neu, damit der neue Startparameter wirksam werden.
Hinweis: Verwenden Sie die DBCC TRACEON Transact-SQL-Anweisung nicht als alternative Methode SQL Server-Startparameter festgelegt. Die Auswirkung die DBCC TRACEON Transact-SQL-Anweisung möglicherweise verloren, wenn der SQL Server-Dienst beendet wird. Daher kann das Ablaufverfolgungsflag nicht eingeschaltet werden der SQL Server-Dienst neu gestartet wird.

Beim Einschalten des Ablaufverfolgungsflags sind SQL Server-Abfrageoptimierer nicht die Spalte enthalten, die das Prädikat Bereich als Teil einer mehrspaltigen Dichte Übereinstimmung besitzt. Stattdessen ist die Selektivität mithilfe der Informationen Histogramm einzeln angewendet. Im Beispiel enthalten die "Problembeschreibung" ist mehrspaltigen Dichte für die Spalten [col1, col2, col3, col4] vorhanden verwendet der Hotfix nur die Dichte des [col1, col2, col3]. Das Histogramm, das separat in Spalte col4 verfügbar ist, wird entsprechend verwendet.

Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
824684Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Eigenschaften

Artikel-ID: 831302 - Geändert am: Freitag, 2. November 2007 - Version: 2.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbmt kbhotfixserver kbqfe kbqfe kbclient kbdatabase kbperformance kbquery kbsqlserv2000presp4fix kbfix kbbug KB831302 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: 831302
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