Когда переменная объявляется в хранимой процедуре T-SQL, сохраняется ли она в памяти или в базе данных tempdb?

Мы пытаемся оптимизировать некоторые из наших хранимых процедур T-SQL, чтобы уменьшить конкуренцию за tempdb, но я не могу понять, как SQL-сервер хранит нетабличные переменные:

  • Как насчет простых типов данных, таких как INT и ДАТАВРЕМЯ? Такое ощущение, что они будут жить в памяти.
  • А как насчет VARCHAR/VARCHAR(MAX)? Обычный VARCHAR может храниться в памяти, но VARCHAR(MAX) может потребовать использовать tempdb для хранения.
  • Табличные переменные хранятся в базе данных tempdb. Хотя эти меня не особо интересуют.

Статья MSDN о tempdbне объясняет обычные переменные.

8
задан wallyk 15 March 2012 в 22:03
поделиться