Parallelität Verbesserungen für die Tempdb-Datenbank

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 328551 - Produkte anzeigen, auf die sich dieser Artikel bezieht
# FEHLER: 362099 (SHILOH_BUGS)
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn die Tempdb -Datenbank stark verwendet wird, kann SQL Server Konflikte auftreten, wenn er versucht, Seiten zu reservieren.

In der Sysprocesses System Tabelle Ausgabe der Waitresource möglicherweise als angezeigt "2: 1: 1" (PFS-Seite) oder "2: 1: 3" (SGAM-Seite). Abhängig vom Grad der Konflikte kann dies auch auf SQL Server für kurze Zeiträume nicht reagierenden angezeigt führen.


Diese Operationen verwenden stark Tempdb :
  • Erstellen und Ablegen von temporären Tabellen (lokal oder global) wiederholt.
  • Tabellenvariablen, die Tempdb für Speicher-Zwecke verwenden.
  • Arbeiten Sie CURSORS zugeordnete Tabellen.
  • Arbeiten Sie eine ORDER BY-Klausel zugeordnete Tabellen.
  • Arbeiten Sie eine GROUP BY-Klausel zugeordnete Tabellen.
  • Arbeiten Sie HASH PLANT zugeordnete Dateien.
Starker und erhebliche Verwendung dieser Aktivitäten möglicherweise zu Konflikten Probleme führen.

Ursache

Bei der Objekterstellung müssen zwei (2) Seiten in einen gemischten Block reserviert und das neue Objekt zugewiesen werden. Eine Seite ist für den Index Allocation Map (IAM) und die zweite ist für die erste Seite für das Objekt. SQL Server verfolgt gemischte Blöcken mithilfe der freigegebene globale Allocation Map (SGAM) Seite. Jede SGAM-Seite verfolgt über 4 GB Daten.

Als Teil eine Seite aus gemischten Block zuweisen muss SQL Server die Seite Free Space (PFS) Seite um herauszufinden, welche gemischte Seite frei zu verteilenden ist gescannt. Die PFS Seite verfolgt freien Speicherplatz auf jeder Seite, und jede PFS-Seite über 8000 Seiten verfolgt. Entsprechende Synchronisierung wird beibehalten, um die PFS und SGAM-Seiten; Änderungen vorzunehmen und, können andere Modifizierer für kurze Zeiträume hält.

Wenn SQL Server für eine gemischte Seite zuweisen sucht, beginnt es immer die Überprüfung auf der SGAM-Seite und dieselbe Datei. Dies führt zu intensiver Konflikte auf der Seite SGAM gemischte mehrere Seite Zuweisungen, durchgeführt werden, die die im Abschnitt "Problembeschreibung" dieses Artikels dokumentierten Probleme führen können.

Hinweis: Aufhebung der Zuordnung Aktivitäten müssen auch die Seiten ändern, die zu erhöhten Konflikte beitragen kann.

Weitere Informationen über die unterschiedliche Allocation-Mechanismen von SQL Server SGAM, GAM, PFS (IAM) verwendete finden Sie unter im Abschnitt "Informationsquellen" dieses Artikels.

Lösung

Um die Reservierung Ressourcenkonflikte für die tempdb-Datenbank zu reduzieren, auf dem starker Auslastung auftreten, gehen Sie alle folgendermaßen vor:
  1. Hotfix für Server, auf denen SQL Server 2000 Service Pack 3 (SP3) ausgeführt wird, 8.00.0765 oder die neuesten Sicherheitspatches 8.00.0818 beheben. Installieren Sie für Server, auf denen SQL Server SP2 ausgeführt wird Hotfix 8.00.0702.

    Diese Updates sind unter den folgenden Speicherorten erhältlich:

    8.00.0765
    814916Update: Merge-Agent für eine gefilterte Publikation fehlschlagen
    8.00.0818
    http://www.microsoft.com/technet/security/bulletin/MS03-031.mspx
    8.00.0702
    328551Update: Parallelitätserweiterungen für das Tempdb-Datenbank
  2. Implementieren Sie das Ablaufverfolgungsflag -T1118 .

    Hinweis: Trace-Flag -T1118 ist auch verfügbar und im Microsoft SQL Server 2005 und SQL Server 2008 unterstützt. Jedoch, wenn Sie SQL Server 2005 oder SQL Server 2008 ausführen, müssen Sie keinen für alle Hotfix.
  3. Erhöhen der Anzahl der Tempdb -Datendateien auf die Anzahl der Prozessoren mindestens gleich sein. Erstellen Sie auch die Dateien mit gleich Größenanpassung. Finden Sie weitere Informationen im Abschnitt "Weitere Informationen".
Hinweis: Diese Schritte gelten auch für Microsoft SQL Server 7.0. Die einzige Ausnahme besteht darin, dass kein Hotfix für SQL Server 7.0; daher Schritt 1 nicht gilt.

Finden with regard to Schritt 2 bevor Sie das Ablaufverfolgungsflag verwenden Sie die Verwendung des Ablaufverfolgungs-Flag - T1118 für Microsoft SQL Server 7.0 die folgenden Artikel der Microsoft Knowledge Base:
813492Update: Erstellen Sie Index fehlschlägt auf SQL Server 7.0, wenn das Ablaufverfolgungsflag 1118 aktiviert ist

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 im folgenden Artikel der Microsoft Knowledge Base:
290211So erhalten Sie das neueste Service Pack für SQL Server 2000

Hotfix-Informationen

Hotfix 8.00.0702

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.
   Date         Time   Version         Size       File name
   ----------------------------------------------------------------
   30-Aug-2002  21:08                    786,432  Distmdl.ldf
   30-Aug-2002  21:08                  2,359,296  Distmdl.mdf
   09-Oct-2002  00:54                        544  Drop_repl_hotfix.sql
   02-Jul-2002  15:35  2000.80.650.0     107,088  Impprov.dll      
   19-Jul-2002  16:56                    774,516  Instdist.sql
   08-Oct-2002  23:56                     12,615  Inst_repl_hotfix.sql
   20-Aug-2002  16:24  2000.80.679.0     111,172  Logread.exe      
   07-Apr-2002  02:08  2000.80.606.0      62,024  Odsole70.dll     
   03-Jan-2002  01:59                     18,185  Qfe356326.sql
   20-Aug-2002  16:47  2000.80.679.0     135,748  Qrdrsvc.exe      
   26-Aug-2002  22:49  2000.80.679.0     406,088  Rdistcom.dll     
   04-Oct-2001  01:36                    437,302  Replcom.sql
   20-Aug-2002  16:33  2000.80.679.0     152,136  Replmerg.exe     
   19-Nov-2001  20:36                    993,945  Replmerg.sql
   05-Nov-2002  23:48  2000.80.700.0     221,768  Replprov.dll     
   04-Oct-2001  01:36                    986,906  Replsys.sql
   04-Oct-2001  01:36                    881,228  Repltran.sql
   26-Aug-2002  22:49  2000.80.679.0     283,208  Rinitcom.dll     
   16-Sep-2002  22:31                    390,045  Securityhotfix.sql
   26-Aug-2002  22:49  2000.80.679.0      28,672  Sqlagent.dll     
   26-Aug-2002  18:39  2000.80.679.0     311,872  Sqlagent.exe     
   28-Aug-2002  16:32  2000.80.679.0      49,152  Sqlagent.rll
   26-Aug-2002  22:49  2000.80.679.0      53,824  Sqlcmdss.dll     
   28-Aug-2002  16:40  2000.80.679.0      12,288  Sqlcmdss.rll
   24-Oct-2002  17:37  2000.80.695.0     176,696  Sqlmap70.dll     
   11-Nov-2002  09:52  2000.80.702.0   7,471,185  Sqlservr.exe     
   11-Nov-2002  09:51                 12,633,088  Sqlservr.pdb
   01-Nov-2002  18:56  2000.80.698.0      45,644  Sqlvdi.dll       
   01-Nov-2002  18:00  2000.80.697.0      82,492  Ssnetlib.dll     
   07-Apr-2002  02:08  2000.80.606.0      70,208  Xplog70.dll      
   07-Apr-2002  02:08  2000.80.606.0      53,828  Xpqueue.dll      
   07-Apr-2002  02:08  2000.80.606.0     156,228  Xprepl.dll       
   12-Jul-2002  01:00  2000.80.658.0     279,104  Xpstar.dll       
   16-Sep-2002  23:12  2000.80.686.0      98,872  Xpweb70.dll   
				
Notizen
  • Aufgrund wechselseitiger Abhängigkeiten zwischen kann das aktuellste Update oder Feature, das die Dateien enthält, auch weitere Dateien enthalten.
  • Der Hotfix 8.00.0702 ist für Computer, auf dem Sie SQL Server 2000 SP2 installiert haben. Wenn Sie SQL Server 2000 SP3 installiert haben, installieren Sie SQL Server 2000 SP3 Rollup Version 8.00.0765.

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

Wie Konflikte reduziert Hotfix 8.00.0702

Hotfix 8.00.0702 stellt einen Round-Robin-Algorithmus für Reservierungen gemischter Seiten. Mit dem Update werden der Startdatei jetzt für jede aufeinander folgende gemischte Seite Reservierung (Wenn mehr als eine Datei vorhanden ist). Dadurch werden Konflikte Problem durch Aufteilen der Schulen, die über die SGAMs in derselben Reihenfolge immer mit dem gleichen Startpunkt ging vermieden. Der neue Reservierung Algorithmus für SGAM ist reine Round-Robin und berücksichtigt nicht die proportionale Füllung Geschwindigkeit zu verwalten. Microsoft empfiehlt, dass Sie die Tempdb Datendateien mit der gleichen Größe erstellen.

Wie implementieren Flag - T1118 Ablaufverfolgung verringert Konflikte

Hier ist Liste wie Verwenden von -T1118 verringert Konflikte:
  • -T1118 ist eine serverweite Einstellung.
  • Einschließen der -T1118 Flag in der Start-Parameter für SQL Server verfolgen, sodass das Ablaufverfolgungsflag wirksam, bleibt selbst nach SQL Server recycelt wird.
  • -T1118 entfernt fast alle einzelnen Seitenreservierungen auf dem Server.
  • Deaktivieren die meisten der einzelnen Seitenreservierungen, verringern Sie die Konflikte auf der Seite SGAM.
  • Mit -T1118 auf aktiviert, nahezu alle neue Zuordnungen erfolgen aus eine GAM Seite (z. B. 2: 1: 2), ordnet Seiten acht (8) (1 Ausmaß) zu einem Zeitpunkt auf ein Objekt im Gegensatz zu einer einzelnen Seite vom ein Block für die ersten acht (8) Seiten eines Objekts, ohne das Ablaufverfolgungsflag.
  • Weiterhin verwenden die IAM-Seiten die einzelnen Seitenreservierungen SGAM auf der Seite auch mit -T1118 auf aktiviert. Zusammen mit Hotfix 8.00.0702 und erhöhte Tempdb Datendateien ist das Ergebnis jedoch eine Reduzierung Konflikte auf der Seite SGAM. Speicherplatz Bedenken finden Sie im Abschnitt "Nachteile" dieses Artikels.
Hinweis: Wenn das Ablaufverfolgungsflag 1118 für Ihre Instanz von SQL Server 2000 aktiviert ist, nicht um eine SQL Server 7.0-Datenbank erfolgreich wiederherzustellen möglicherweise. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
837938Möglicherweise wird eine Fehlermeldung angezeigt, wenn Sie versuchen, eine SQL Server 7.0-Datenbank-Sicherung auf einer Instanz von SQL Server 2000 wiederherzustellen

Erhöhen Sie die Anzahl der Tempdb-Datendateien mit gleich Größenanpassung

Wenn die Datengröße von Tempdb 5 GB ist und die Protokolldateigröße 5 GB ist, wird empfohlen, die einzelne Datendatei 10 (jeder von 500 MB gleich Größe beibehalten) erhöhen und lassen Sie die Protokolldatei ist. Müssen die verschiedenen Datendateien auf getrennten Datenträgern wäre gut. Jedoch ist dies nicht erforderlich, und Sie können auf demselben Datenträger bestehen.

Die optimale Anzahl der Tempdb -Dateien von Daten hängt von den Grad der Konflikte, die in Tempdb angezeigt. Als Ausgangspunkt, Sie können konfigurieren Tempdb mindestens gleich der Anzahl der Prozessoren zugewiesene für SQL Server. Bei höheren End-Systemen (z. B. 16 oder 32 Proc) kann die Nummer der erste 10 handeln. Wenn der Konflikt nicht reduziert ist, müssen Sie die Anzahl der Datendateien mehr erhöhen.

Hinweis: Dual-Core-Prozessor wird als zwei Prozessoren betrachtet.

Gleich Größenanpassung von Datendateien ist kritisch, da der proportionale Algorithmus auf die Größe der Dateien basiert. Wenn Datendateien mit unterschiedlicher Größen erstellt werden, versucht der proportionale Algorithmus, die größte Datei weitere für GAM Zuweisungen zu verwenden, anstelle der Zuweisung der Zuordnungen zwischen den Dateien und dadurch den Zweck des Erstellens mehrere Datendateien von defeating.

Auto-grow der Tempdb -Datendateien können auch den Algorithmus proportionale beeinträchtigen. Daher kann es ratsam, das Auto-grow-Feature für die Tempdb -Datendateien deaktivieren sein. Wenn die Auto-grow-Option deaktiviert ist, müssen Sie sicherstellen, dass die Datendateien erstellen, sodass sind groß genug, um verhindern, dass den Server ein Mangel an Speicherplatz mit Tempdb auftritt.

Wie Erhöhen der Anzahl der Tempdb-Daten Dateien mit gleich Größe verringert Konflikte

Hier ist eine Liste der wie Konflikte die Anzahl der Tempdb -Datendateien mit gleich Größenanpassung zu erhöhen reduziert:
  • Mit einer Datendatei für die Tempdb haben Sie nur eine GAM-Seite und eine SGAM-Seite für jede 4 GB.
  • Erhöhen der Datendateien mit gleichen Größen für die tempdb-Datenbank effektiv erstellt eine oder mehrere GAM- und SGAM Seiten für jede Datendatei.
  • Der Allocation-Algorithmus für GAM gibt aus einem Block zu einem Zeitpunkt (acht zusammenhängenden Seiten) von der Anzahl der Dateien in einem Round-Robin während beachtet proportional ausfüllen. Daher haben Sie 10 gleich große Dateien ist die erste Zuweisung von Datei1, die zweite von Datei2, das dritte von Datei3 und usw..
  • Die Ressourcenkonflikte PFS-Seite wird reduziert, da acht Seiten als FULL gleichzeitig markiert werden, da GAM die Seiten reservieren ist.

Nachteile

Der einzige Nachteil die oben genannten Empfehlungen ist angezeigt, kann die Größe der Datenbanken erhöhen, wenn folgende Bedingungen erfüllt sind:
  • Neue Objekte werden in einer Benutzerdatenbank erstellt.
  • Jedes der neuen Objekte belegen weniger als 64 KB Speicher.
Wenn diese Bedingungen erfüllt sind, können Sie reservieren 64 KB (8 Seiten * 8 KB = 64 KB) für ein Objekt, das nur 8 KB an Speicherplatz erforderlich ist, verschwenden Sie daher 56 KB Speicher. Jedoch, wenn das neue Objekt mehr als 64 KB verwendet (8 Seiten) im Lebensdauer ist, gibt es keine Nachteil mit dem Ablaufverfolgungsflag. Daher kann in einer schlimmsten Fall SQL Server landen sieben (7) zusätzliche Seiten während die erste Zuordnung nur für neue Objekte, die nie über eins (1) Seite hinauswachsen reservieren.

Informationsquellen

Weitere Informationen über GAM SGAM PFS und IAM, finden Sie unter die folgenden SQL Server 2000-Onlinedokumentation Themen:
  • ? Verwalten von Objekten verwendeten Speicherplatzes ?
  • ? Verwalten von Blockreservierungen und freiem Speicherplatz ?
  • "Tabellen- und Indexarchitektur"
  • "Heap Structures"

Eigenschaften

Artikel-ID: 328551 - Geändert am: Freitag, 13. März 2009 - Version: 12.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Keywords: 
kbmt kbhotfixserver kbqfe kbsqlserv2000presp4fix kbfix kbbug KB328551 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: 328551
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