Статья планирования мощности для базы данных tempdb отвечает на ваши вопросы:
Типы данных больших объектов: varchar (max), nvarchar (max),
varbinary (max) text, ntext, image и xml. Эти типы могут быть до 2
ГБ в размере и может использоваться в качестве переменных или параметров в хранимых
процедуры, пользовательские функции, пакеты или запросы. параметры
и переменные, которые определены как тип данных LOB, используют основную память как
хранение, если значения малы. Тем не менее, большие значения хранятся в
Tempdb. Когда переменные и параметры LOB хранятся в базе данных 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 КБ ... но я уверен, что это зависит от объема памяти, доступной вашему серверу.