Где хранятся временная таблица и переменная_таблица, физический диск или память?

Я обнаружил, что некоторые люди говорят, что временная таблица хранится на физическом диске, потому что она находится в базе данных tempdb, затем переменная находится в памяти (иногда физический диск зависит от количества данных).

Итак, возникает вопрос первый: где они хранятся? Вопрос второй: могу ли я считать базу данных tempdb кеш-памятью между жестким диском и памятью?

1 ответ

временные таблицы физически создаются в базе данных tempdb.

переменная таблицы создается в базе данных tempdb, но не в памяти (полностью).

Позвольте мне процитировать документ поддержки Microsoft:

Табличная переменная не является структурой только для памяти. Поскольку табличная переменная может содержать больше данных, чем может поместиться в памяти, она должна иметь место на диске для хранения данных. Табличные переменные создаются в базе данных tempdb аналогично временным таблицам. Если память доступна, переменные таблицы и временные таблицы создаются и обрабатываются в памяти (кэш данных).

Источник: https://support.microsoft.com/en-us/help/305977/inf-frequently-asked-questions---sql-server-2000---table-variables

К вашему сведению, CTE создаются в памяти, а не в базе данных tempdb

Другие вопросы по тегам