2017-04-03 5 views
0

Um zu führen Daten aus mehreren Datenquellen und eine große Menge von Daten zu laden SQL Server 2014besten Optionen mit tempDB mit vielen Daten

Meine ETL-Skripte sind in T-SQL und es eine Einnahme Viel Zeit zum Ausführen, weil meine TempDB voll sind.

Ihrer Meinung nach, was ist der beste Weg, mit diesem führen:

  • Transaktionen Commit verwenden?
  • Saubere TempDB?
  • usw.
+0

Woher wissen Sie, dass tempdb voll ist, verursacht Langsamkeit? Wenn tempdb während der Paketausführung voll ist, erhalten Sie normalerweise einen Fehler und keine Leistungseinbuße. – mallan1121

Antwort

0

Sie Art und Weise nur diese Frage zu beantworten ist mit einem sehr hohen Niveau allgemeine Reaktion.

Sie haben ein paar Optionen:

  1. einfach mehr Platz TempDB zuordnen.
  2. Optimieren Sie Ihre ETL-Abfragen und optimieren Sie Ihre Indizes.

Option 2 ist oft die bessere Approach. Übermäßige Verwendung von TempDB zeigt an, dass ineffiziente Sortierungen oder Verknüpfungen auftreten. Um dies zu beheben, müssen Sie die tatsächlichen Ausführungspläne Ihres ETL-Codes analysieren. Achten Sie auf Folgendes:

  • Ausrufezeichen in Ihrem Abfrageplan. Dies deutet oft darauf hin, dass eine Join-Operation oder eine Sortieroperation auf TempDB übertragen werden musste, da der Optimierer die erforderliche Speichermenge schätzte. Sie könnten Statistiken haben, die aktualisiert werden müssen.
  • Suchen Sie nach großen Unterschieden in der geschätzten Anzahl der Zeilen und der tatsächlichen Anzahl der Zeilen. Dies kann auch auf veraltete Statistiken von Parameter-Sniffing-Problemen hinweisen.
  • Suchen Sie nach Sortieroperationen. Es ist oft möglich, diese zu entfernen, indem Sie Indizes zu Ihren Tabellen hinzufügen.
  • Suchen Sie nach ineffizienten Zugriffsmethoden. Diese können oft durch Hinzufügen von Deckungsindizes gelöst werden. ZB Tabellensuche, wenn Sie nur eine kleine Anzahl von Zeilen aus einer großen Tabelle benötigen. Beachten Sie, dass Tabellen-Scans beim Laden von Data Warehouses oft der beste Ansatz sind.

Ich hoffe, das war hilfreich.

Marius

Verwandte Themen