MS SQL Server 2008 是否缓存二进制数据字段?即VARBINARY
我们有 MS SQL Server 2008 R2 使用 12gb 的 ram 不断缓存数据。我们的数据库包含超过 200gb 的 VARBINARY。这也会被缓存吗?
编辑: SQL Server 确实缓存二进制数据谢谢@Martin
你能告诉 SQL Server 停止缓存二进制数据或以某种方式限制它吗?
最佳答案
是的。尝试
WITH T
AS (SELECT database_id,
page_type,
total_page_count = COUNT(*) OVER (),
page_count = COUNT(*) OVER
(PARTITION BY database_id, page_type),
row_num = ROW_NUMBER() OVER
(PARTITION BY database_id, page_type
ORDER BY (SELECT 0))
FROM sys.dm_os_buffer_descriptors)
SELECT page_type,
page_count,
PercentageOfCache = ROUND(1E2 * page_count / total_page_count, 2),
SizeInCache =
CASE
WHEN page_count > 131072
THEN LTRIM(STR(page_count / 131072.0) + ' GB')
WHEN page_count > 128
THEN LTRIM(STR(page_count / 128.0) + ' MB')
ELSE LTRIM(STR(page_count * 8) + ' KB')
END
FROM T
WHERE database_id = DB_ID()
AND row_num = 1
ORDER BY page_count DESC
查看当前在您的数据库的缓冲区缓存中每种类型的页面有多少。
专用的 LOB 页面类型是 TEXT_MIX_PAGE
和 TEXT_TREE_PAGE
但 LOB 数据也可以存储在数据页面上。
关于sql-server - MS SQL Server 2008 是否缓存二进制数据字段?即VARBINARY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5253100/