MsSql

关注公众号 jb51net

关闭
首页 > 数据库 > MsSql > SQL Server视图更新及清除缓存

SQL Server视图的更新排查及清除缓存的操作方法

作者:码农研究僧

文章主要介绍了在SQLServer中遇到视图结构与实际表结构不一致的问题,并提供了三种解决方案:刷新视图、清空执行计划缓存和清空数据缓存,每种方法都有其适用场景和注意事项,需要的朋友可以参考下

前言

获取数据的时候,发现数据少了两个字段值,归根原因是Java中的实体类少写了两个,后续补充上就好了!

排查方向

在 SQL Server 中,视图不会自动更新其结构

如果表中添加了新字段,但没有刷新视图,查询视图时仍然返回旧结构的数据

一共有两种解决方案:

EXEC sp_refreshview '视图名字';

截图如下:

或者重新创建视图:

DROP VIEW 视图;
CREATE VIEW dbo.vw_SSBoxCheck AS 
SELECT ...

第二个排查方向是用户权限的问题!

确保用户可以查询得到

GRANT SELECT ON 视图 TO your_user;

第三个排查方向是视图的缓存问题:

SQL Server 可能存在缓存问题,导致查询的仍然是旧视图结构

DBCC FREEPROCCACHE;
DBCC DROPCLEANBUFFERS;

总的来说

命令作用适用场景影响备注
sp_refreshview刷新视图的元数据视图结构变更后查询异常仅影响视图只影响视图定义,不影响数据或缓存
DBCC FREEPROCCACHE清空查询执行计划缓存结构变更、索引优化、查询优化影响 SQL 解析性能,导致查询重新编译仅清除执行计划,不影响数据缓存
DBCC DROPCLEANBUFFERS清空数据缓存进行数据库性能测试或数据更新异常影响查询性能,需要重新加载数据仅清理未修改的缓冲页,不影响脏页

到此这篇关于SQL Server视图的更新排查及清除缓存的操作方法的文章就介绍到这了,更多相关SQL Server视图更新排查及清除缓存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文