Uczę się więcej szczegółów w zmiennej tabeli. Mówi, że tabele temp są zawsze na dysku, a zmienne tabeli są w pamięci, co oznacza, że wydajność tabeli jest lepsza niż tabela temp, ponieważ zmienna tabeli używa mniej operacji IO niż tabela temp.
Ale czasami, jeśli w zmiennej tabeli jest zbyt wiele rekordów, których nie można zapisać w pamięci, zmienna tabeli zostanie umieszczona na dysku jak tabela tymczasowa.
Ale nie wiem, co to jest „zbyt wiele płyt”. 100 000 rekordów? lub 1000 000 rekordów? Skąd mam wiedzieć, czy zmienna tabeli, której używam, znajduje się w pamięci lub na dysku? Czy w SQL Server 2005 jest jakaś funkcja lub narzędzie do mierzenia skali zmiennej tabeli lub powiadamianie mnie, kiedy zmienna tabeli jest umieszczana na dysku z pamięci?
tempdb
pamięci (ale może też być całkowicie w pamięci)
tempDB
- że „w pamięci” to mit. Ponadto: zmienne tabeli zawsze będą traktować optymalizator zapytań, aby zawierał dokładnie jeden wiersz - jeśli masz dużo więcej, może to prowadzić do poważnie złych planów wykonania.