0

Beobachtete Leistungsdifferenz zwischen #temp-Tabelle und physischer (tatsächlicher) Tabelle beim Ausführen von Masseneinfügeoperationen in diese Tabellen mit derselben Anzahl von Datensätzen (~ 50 Millionen).SQL-Tempentabelle vs. physische (tatsächliche) Tabellenleistung

Mit Abfrage (Einfügen in ... auswählen), temporäre Tabelle dauert ~ 3 Minuten und physische Tabelle dauert ~ 8 Minuten.

Hier ist physische Tabelle genau dasselbe wie temporäre Tabelle (physische Tabelle ist ohne Cluster und nicht gruppierte Indizes).

Warum ist die temporäre Tabelle effizienter und besser als die physische Tabelle? Hat irgendjemand etwas Kontext dazu?

+1

Vielleicht ist der temporäre Tabellenbereich auf einem effizienteren Satz von Festplatten. –

+0

Haben Sie die Ausführungspläne verglichen? Sind Ihre Tabellen wirklich * 100% identisch, bis auf die genauen Datentypen und Längen (im Fall von char/varchar)? – alroc

+0

Überprüfen Sie, welcher Wiederherstellungsmodus für Ihre Datenbank eingestellt ist. Höchstwahrscheinlich ist es "voll". Tempdb ist immer im "einfachen" Modus, dh Massenoperationen werden minimal protokolliert. Dies führt zu einer geringeren Schreiblast für Transaktionsprotokolle im Vergleich zum Vollmodus. –

Antwort

0

Es hängt von vielen Faktoren ab:

  • Daten und Protokolldatei/Konfiguration
  • Fragmentierung
  • automatische Vergrößerung Einstellungen
  • IO Leistung etc

Es ist wahrscheinlich, tempdb ist weniger fragmentiert, da es beim Serverneustart neu erstellt wurde oder (wie oben erwähnt) Tempdb ist auf effizienteren Satz von Festplatten

+0

Können wir diesen Leistungsunterschied minimieren? – Venus

Verwandte Themen