Mam skrypt, który musi tymczasowo wyodrębnić dane, aby wykonywać na nim dodatkowe operacje, ale potem nie trzeba ich przechowywać dalej po uruchomieniu skryptu. Obecnie mam dane w serii tymczasowych tabel lokalnych (CREATE TABLE #table), które są następnie upuszczane po zakończeniu ich użytkowania. Zastanawiałem się, czy przejść na tabele fizyczne, traktowane w ten sam sposób (tabela CREATE TABLE), czy poprawiłaby się prędkość skryptu (lub innych zalet?).Jaka jest szybkość porównawcza tabel tymczasowych do fizycznych tabel w SQL?
... Czy istnieje różnica w wydajności między tabelami tymczasowymi a tabelami fizycznymi? Z tego, co czytam, tabele tymczasowe są po prostu tabelami fizycznymi, na które może patrzeć tylko sesja uruchomiona przez skrypt (zmniejszanie problemów z blokowaniem).
EDYCJA: Należy zwrócić uwagę, że mówię o tabelach fizycznych a tabelach tymczasowych. Dostępnych jest wiele informacji na temat tabel tymczasowych a zmiennych tabel, np. http://sqlnerd.blogspot.com/2005/09/temp-tables-vs-table-variables.html.
-1 Tabele #temp będą prawdopodobnie lepsze w tym scenariuszu. [Zobacz tę odpowiedź w celu wyjaśnienia] (http://stackoverflow.com/questions/3175427/sql-server-temporary-vs-physical-tables/3175531#3175531). Dodatkowo 'tempdb' ma optymalizacje rejestrowania w porównaniu do zwykłych baz danych. Zmienne tabelaryczne są przechowywane dokładnie tak samo jak tabele tymczasowe, więc sugestia nie ma sensu. Ten artykuł, do którego prowadzą linki, jest całkowicie błędny w przypadku rejestrowania transakcji dla zmiennych tabel również. –