SQL Server視圖的更新排查及清除緩存的操作方法
前言
獲取數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)數(shù)據(jù)少了兩個(gè)字段值,歸根原因是Java中的實(shí)體類少寫了兩個(gè),后續(xù)補(bǔ)充上就好了!
排查方向
在 SQL Server 中,視圖不會(huì)自動(dòng)更新其結(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í),會(huì)先生成 查詢執(zhí)行計(jì)劃 并緩存起來(lái),以加快后續(xù)相同 SQL 語(yǔ)句的執(zhí)行速度。
DBCC FREEPROCCACHE 命令用于清除 SQL Server 的 執(zhí)行計(jì)劃緩存,讓 SQL Server 重新解析 SQL 語(yǔ)句并生成新的執(zhí)行計(jì)劃SQL Server 數(shù)據(jù)緩存(Buffer Pool) 存儲(chǔ)了最近訪問的數(shù)據(jù)頁(yè),以減少磁盤 I/O 操作,提高查詢速度。
DBCC DROPCLEANBUFFERS 命令用于清空 SQL Server 緩沖池中的 干凈數(shù)據(jù)頁(yè)(未修改的頁(yè)),讓查詢重新從磁盤讀取數(shù)據(jù)
總的來(lái)說(shuō)
EXEC sp_refreshview—— 刷新視圖DBCC FREEPROCCACHE—— 清空?qǐng)?zhí)行計(jì)劃緩存DBCC DROPCLEANBUFFERS—— 清空數(shù)據(jù)緩存
| 命令 | 作用 | 適用場(chǎng)景 | 影響 | 備注 |
|---|---|---|---|---|
| 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ù)庫(kù)性能測(cè)試或數(shù)據(jù)更新異常 | 影響查詢性能,需要重新加載數(shù)據(jù) | 僅清理未修改的緩沖頁(yè),不影響臟頁(yè) |
到此這篇關(guān)于SQL Server視圖的更新排查及清除緩存的操作方法的文章就介紹到這了,更多相關(guān)SQL Server視圖更新排查及清除緩存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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中使用判斷語(yǔ)句(IF ELSE/CASE WHEN )案例
這篇文章主要介紹了SQL Server中使用判斷語(yǔ)句(IF ELSE/CASE WHEN )案例,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
MSSQL 將截?cái)嘧址蚨M(jìn)制數(shù)據(jù)問題的解決方法
主要原因就是給某個(gè)字段賦值時(shí),內(nèi)容大于字段的長(zhǎng)度或類型不符造成的2010-10-10
用sql語(yǔ)句實(shí)現(xiàn)分離和附加數(shù)據(jù)庫(kù)的方法
對(duì)于分離一個(gè)數(shù)據(jù)庫(kù)來(lái)說(shuō),我們可以用Manage Studio界面或者存儲(chǔ)過程。但是對(duì)于每一種方法都必須保證沒有用戶使用這個(gè)數(shù)據(jù)庫(kù).接下來(lái)所講的都是對(duì)于用命令來(lái)分離或附加一個(gè)數(shù)據(jù)庫(kù)。2010-03-03
使用 TOP 子句限制UPDATE 語(yǔ)句更新的數(shù)據(jù)
這篇文章主要介紹了使用 TOP 子句限制UPDATE 語(yǔ)句更新的數(shù)據(jù),需要的朋友可以參考下2014-08-08
SQL Server誤區(qū)30日談 第9天 數(shù)據(jù)庫(kù)文件收縮不會(huì)影響性能
收縮文件的過程非常影響性能,這個(gè)過程需要移動(dòng)大量數(shù)據(jù)從而造成大量IO,這個(gè)過程會(huì)被記錄到日志從而造成日志暴漲,相應(yīng)的,還會(huì)占去大量的CPU資源2013-01-01
SQL Server 2014 數(shù)據(jù)庫(kù)中文版安裝圖文教程
這篇文章主要介紹了SQL Server 2014 數(shù)據(jù)庫(kù)中文版安裝圖文教程,需要的朋友可以參考下2021-05-05

