Статья о планировании емкости для tempdb отвечает на ваши вопросы:
Типы данных больших объектов: varchar(max), nvarchar(max), varbinary(max) text, ntext, image и xml. Эти типы могут иметь размер до 2 ГБ и могут использоваться в качестве переменных или параметров в хранимых процедурах, определяемых пользователем функциях, пакетах или запросах. Параметры и переменные, определенные как тип данных LOB, используют оперативную память в качестве хранилища, если значения малы. Однако большие значения хранятся в базе данных tempdb. Когда переменные и параметры больших объектов хранятся в базе данных tempdb, они рассматриваются как внутренние объекты. Вы можете запросить представление динамического управления sys.dm_db_session_space_usage, чтобы сообщить о страницах, выделенных внутренним объектам для данного сеанса.
Статью стоит прочитать полностью, потому что она также охватывает множество других способов использования tempdb.
РЕДАКТИРОВАТЬ: Если вам интересно, сколько памяти в базе данных tempdb использует конкретный сеанс, вы можете выполнить следующий запрос:
select *
from sys.dm_db_session_space_usage
where session_id = @@SPID
Используя это, не было похоже, что моя переменная VARCHAR(MAX)
хранилась в tempdb, пока ее размер не достиг около 1000 КБ ... но я уверен, что это зависит от памяти, доступной на вашем сервере.
person
Michael Fredrickson
schedule
15.03.2012