SQL Server視圖的更新排查及清除緩存的操作方法
前言
獲取數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)數(shù)據(jù)少了兩個(gè)字段值,歸根原因是Java中的實(shí)體類少寫了兩個(gè),后續(xù)補(bǔ)充上就好了!
排查方向
在 SQL Server 中,視圖不會自動更新其結(jié)構(gòu)
如果表中添加了新字段,但沒有刷新視圖,查詢視圖時(shí)仍然返回舊結(jié)構(gòu)的數(shù)據(jù)
一共有兩種解決方案:
EXEC sp_refreshview '視圖名字';
截圖如下:

或者重新創(chuàng)建視圖:
DROP VIEW 視圖; CREATE VIEW dbo.vw_SSBoxCheck AS SELECT ...
第二個(gè)排查方向是用戶權(quán)限的問題!
確保用戶可以查詢得到
GRANT SELECT ON 視圖 TO your_user;
第三個(gè)排查方向是視圖的緩存問題:
SQL Server 可能存在緩存問題,導(dǎo)致查詢的仍然是舊視圖結(jié)構(gòu)
DBCC FREEPROCCACHE; DBCC DROPCLEANBUFFERS;
SQL Server 在執(zhí)行查詢時(shí),會先生成 查詢執(zhí)行計(jì)劃 并緩存起來,以加快后續(xù)相同 SQL 語句的執(zhí)行速度。
DBCC FREEPROCCACHE 命令用于清除 SQL Server 的 執(zhí)行計(jì)劃緩存,讓 SQL Server 重新解析 SQL 語句并生成新的執(zhí)行計(jì)劃SQL Server 數(shù)據(jù)緩存(Buffer Pool) 存儲了最近訪問的數(shù)據(jù)頁,以減少磁盤 I/O 操作,提高查詢速度。
DBCC DROPCLEANBUFFERS 命令用于清空 SQL Server 緩沖池中的 干凈數(shù)據(jù)頁(未修改的頁),讓查詢重新從磁盤讀取數(shù)據(jù)
總的來說
EXEC sp_refreshview—— 刷新視圖DBCC FREEPROCCACHE—— 清空執(zhí)行計(jì)劃緩存DBCC DROPCLEANBUFFERS—— 清空數(shù)據(jù)緩存
| 命令 | 作用 | 適用場景 | 影響 | 備注 |
|---|---|---|---|---|
| sp_refreshview | 刷新視圖的元數(shù)據(jù) | 視圖結(jié)構(gòu)變更后查詢異常 | 僅影響視圖 | 只影響視圖定義,不影響數(shù)據(jù)或緩存 |
| DBCC FREEPROCCACHE | 清空查詢執(zhí)行計(jì)劃緩存 | 結(jié)構(gòu)變更、索引優(yōu)化、查詢優(yōu)化 | 影響 SQL 解析性能,導(dǎo)致查詢重新編譯 | 僅清除執(zhí)行計(jì)劃,不影響數(shù)據(jù)緩存 |
| DBCC DROPCLEANBUFFERS | 清空數(shù)據(jù)緩存 | 進(jìn)行數(shù)據(jù)庫性能測試或數(shù)據(jù)更新異常 | 影響查詢性能,需要重新加載數(shù)據(jù) | 僅清理未修改的緩沖頁,不影響臟頁 |
到此這篇關(guān)于SQL Server視圖的更新排查及清除緩存的操作方法的文章就介紹到這了,更多相關(guān)SQL Server視圖更新排查及清除緩存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL查詢連續(xù)登陸7天以上的用戶的方法實(shí)現(xiàn)
本文主要介紹了SQL查詢連續(xù)登陸7天以上的用戶的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
sql中的 where 、group by 和 having 用法解析
這篇文章主要介紹了sql中的 where 、group by 和 having 用法解析,需要的朋友可以參考下2017-04-04
SQL Server中使用判斷語句(IF ELSE/CASE WHEN )案例
這篇文章主要介紹了SQL Server中使用判斷語句(IF ELSE/CASE WHEN )案例,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
MSSQL 將截?cái)嘧址蚨M(jìn)制數(shù)據(jù)問題的解決方法
主要原因就是給某個(gè)字段賦值時(shí),內(nèi)容大于字段的長度或類型不符造成的2010-10-10
用sql語句實(shí)現(xiàn)分離和附加數(shù)據(jù)庫的方法
對于分離一個(gè)數(shù)據(jù)庫來說,我們可以用Manage Studio界面或者存儲過程。但是對于每一種方法都必須保證沒有用戶使用這個(gè)數(shù)據(jù)庫.接下來所講的都是對于用命令來分離或附加一個(gè)數(shù)據(jù)庫。2010-03-03
使用 TOP 子句限制UPDATE 語句更新的數(shù)據(jù)
這篇文章主要介紹了使用 TOP 子句限制UPDATE 語句更新的數(shù)據(jù),需要的朋友可以參考下2014-08-08
SQL Server誤區(qū)30日談 第9天 數(shù)據(jù)庫文件收縮不會影響性能
收縮文件的過程非常影響性能,這個(gè)過程需要移動大量數(shù)據(jù)從而造成大量IO,這個(gè)過程會被記錄到日志從而造成日志暴漲,相應(yīng)的,還會占去大量的CPU資源2013-01-01
SQL Server 2014 數(shù)據(jù)庫中文版安裝圖文教程
這篇文章主要介紹了SQL Server 2014 數(shù)據(jù)庫中文版安裝圖文教程,需要的朋友可以參考下2021-05-05

