tempdbのキャパシティプランニングの記事はあなたの質問に答えます:
ラージオブジェクトのデータ型は、varchar(max)、nvarchar(max)、varbinary(max)text、ntext、image、およびxmlです。これらのタイプのサイズは最大2GBであり、ストアドプロシージャ、ユーザー定義関数、バッチ、またはクエリで変数またはパラメーターとして使用できます。LOBデータ型として定義されているパラメーターと変数は、値が小さい場合、ストレージとしてメインメモリを使用します。ただし、大きな値はtempdbに保存されます。LOB変数とパラメーターがtempdbに格納される場合、それらは内部オブジェクトとして扱われます。sys.dm_db_session_space_usage動的管理ビューにクエリを実行して、特定のセッションの内部オブジェクトに割り当てられたページをレポートできます。
この記事は、tempdbの他の多くの使用法もカバーしているため、全体を読む価値があります。
編集:特定のセッションが使用しているtempdbのメモリ量に興味がある場合は、次のクエリを実行できます。
select *
from sys.dm_db_session_space_usage
where session_id = @@SPID
これを使用すると、変数のサイズが約1000 KBに達するまで、変数がtempdbに格納されているようには見えませんでしたVARCHAR(MAX)
...しかし、サーバーが使用可能なメモリによって異なると確信しています。