我們正在努力優化我們的一些T-SQL存儲過程來減少tempdb的爭奪,但我想不出不表變量是如何通過SQL Server存儲:當在T-SQL存儲過程中聲明一個變量時,它是保存在內存還是tempdb中?
- 什麼簡單數據類型像INT和DATETIME?感覺他們會生活在記憶中。
- 什麼是VARCHARs/VARCHAR(MAX)?一個普通的VARCHAR可以駐留在內存中,但一個VARCHAR(MAX)可能需要使用tempdb來存儲它。
- 表變量存儲在tempdb中。這些我雖然不是真的感興趣。
MSDN article on tempdb沒有解釋常規變量。
感謝您的發現!我假設「如果值很小」意味着少於8000字節?無論如何,這篇文章似乎暗示非MAX(N)VARCHAR和小變量都存儲在內存中。 – 2012-03-15 22:19:11