sql-server - MS SQL Server 2008 是否缓存二进制数据字段?即VARBINARY

标签 sql-server database browser-cache

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_PAGETEXT_TREE_PAGE 但 LOB 数据也可以存储在数据页面上。

关于sql-server - MS SQL Server 2008 是否缓存二进制数据字段?即VARBINARY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5253100/

相关文章:

sql - 每个日期范围的动态月年列

从同一个表中获取员工姓名和经理姓名的 SQL 查询

html - Web 组件 - 内部浏览器缓存

sql - 'LEFT OUTER JOIN' 相当于 Microsoft SQL 中的 'JOIN'

mysql - 在 SSMS 中创建到远程服务器上的 MySQL 数据库的链接服务器

mysql - 从我的 Web 应用程序创建一个具有唯一且随机名称的表

jquery - 发布到 iframe 后,使后退按钮 (bfcache) 的浏览器缓存失效

vue.js - 发布新的Vue应用程序版本时如何强制清除chrome中的缓存

PHP MYSQL 查询未将数组传递到我的变量中

mysql - 尝试添加多个外键时,sql 中出现错误