In einem SP1 verwendete ich 7 @Table Variablen und in einem anderen SP2 ich 7 #Temp Tabellen verwendet. Beide SPs verwenden dieselben Tabellen. Aber SP1 benötigt mehr Zeit für die Ausführung als SP2. Kann jemand eine klare Erklärung geben?Warum Tablle Variable gespeicherte Prozedur mehr Zeit zur Ausführung als temporäre Tabellen gespeicherte Prozedur
1
A
Antwort
0
Tabelle Variable ist nur für eine kleine Menge von Daten zu halten (Statistiken werden auf sie nicht angewandt)
Temp-Tabelle kann viel größer halten und schneller (aber nicht geeignet für sehr, sehr großen Datensatz, wie es IO verwendet Operationen auf der Festplatte)
wenn man diese für Paging verwenden, nächste Zeilen Verfahren oder eine Gruppe von (generieren Zeilennummer), dann Filtern die Zeilennummer
Verwandte Themen
- 1. C# temporäre gespeicherte Prozedur ausgeführt
- 2. Temporär gespeicherte Prozedur Bereich
- 3. Gespeicherte Prozedur
- 4. Gespeicherte Prozedur, die eine andere gespeicherte Prozedur ausführt
- 5. Synchronisierte gespeicherte Prozedur Ausführung in Mysql
- 6. Mysql gespeicherte Prozedur Ausgabe
- 7. Gespeicherte Prozedur aufrufen VBA
- 8. MySQL gespeicherte Prozedur Rückgabewert
- 9. Gespeicherte Prozedur Zeitüberschreitung
- 10. Gespeicherte Prozedur Abfrage löschen
- 11. SSIS verlorene gespeicherte Prozedur Metadaten
- 12. Gespeicherte Prozedur mit Standardparametern
- 13. Gespeicherte MemSQL-Prozedur
- 14. Gespeicherte Prozedur Wählen Sie aus 3 Tabellen
- 15. PostgreSQL gespeicherte Prozedur iBatis
- 16. in gespeicherte Prozedur
- 17. Einfache gespeicherte Prozedur schreiben
- 18. JavaScript-Aufruf gespeicherte Prozedur
- 19. PDO Gespeicherte Prozedur Rückgabewert
- 20. MySQL gespeicherte Prozedur Parameter
- 21. IF/ELSE Gespeicherte Prozedur
- 22. Gespeicherte Prozedur in phpmyadmin
- 23. Gespeicherte MySQL-NDB-Prozedur
- 24. Verkettungs innerhalb gespeicherte Prozedur
- 25. Linq Gespeicherte Prozedur Ausgabe
- 26. Mysql gespeicherte Prozedur Editor
- 27. Gespeicherte Prozedur Löschen
- 28. PHPUnit und gespeicherte Prozedur
- 29. Verschwendete gespeicherte Prozedur
- 30. Gespeicherte Prozedur Versionierung
Tabellenvariable wird nicht vorgeschlagen verwenden holen, wenn sie mit großer Anzahl von Zeilen handeln. SQL Server erwartet immer, dass die Tabellenvariable nur eine Zeile hat, was, wenn die Tabelle eine große Anzahl von Zeilen enthält, den generierten Ausführungsplan durcheinander bringt. [** Dies **] (http://stackoverflow.com/questions/11857789/when-should-i-use-a-table-vary-vs-memory-table-in-sql-server) könnte helfen. –