中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

SQL Server 執(zhí)行計劃緩存(1)
來源:易賢網(wǎng) 閱讀:1604 次 日期:2015-08-25 15:25:36
溫馨提示:易賢網(wǎng)小編為您整理了“SQL Server 執(zhí)行計劃緩存(1)”,方便廣大網(wǎng)友查閱!

概述

了解執(zhí)行計劃對數(shù)據(jù)庫性能分析很重要,其中涉及到了語句性能分析與存儲,這也是寫這篇文章的目的,在了解執(zhí)行計劃之前先要了解一些基礎知識,所以文章前面會講一些概念,學起來會比較枯燥,但是這些基礎知識非常重要。

基礎概念

SQL Server 有一個用于存儲執(zhí)行計劃和數(shù)據(jù)緩沖區(qū)的內存池。池內分配給執(zhí)行計劃或數(shù)據(jù)緩沖區(qū)的百分比隨系統(tǒng)狀態(tài)動態(tài)波動。內存池中用于存儲執(zhí)行計劃的部分稱為過程緩存。

SQL Server 執(zhí)行計劃包含下列主要組件:

查詢計劃

執(zhí)行計劃的主體是一個重入的只讀數(shù)據(jù)結構,可由任意數(shù)量的用戶使用。這稱為查詢計劃。查詢計劃中不存儲用戶上下文。內存中查詢計劃副本永遠不超過兩個:一個副本用于所有的串行執(zhí)行,另一個用于所有的并行執(zhí)行。并行副本覆蓋所有的并行執(zhí)行,與并行執(zhí)行的并行度無關。

執(zhí)行上下文

每個正在執(zhí)行查詢的用戶都有一個包含其執(zhí)行專用數(shù)據(jù)(如參數(shù)值)的數(shù)據(jù)結構。此數(shù)據(jù)結構稱為執(zhí)行上下文。執(zhí)行上下文數(shù)據(jù)結構可以重新使用。如果用戶執(zhí)行查詢而其中的一個結構未使用,將會用新用戶的上下文重新初始化該結構。

怎樣緩存執(zhí)行計劃

SQL Server 有一個高效的算法,可查找用于任何特定 SQL 語句的現(xiàn)有執(zhí)行計劃。在 SQL Server 中執(zhí)行任何 SQL 語句時,關系引擎將首先查看過程緩存中是否有用于同一 SQL 語句的現(xiàn)有執(zhí)行計劃。SQL Server 將重新使用找到的任何現(xiàn)有計劃,從而節(jié)省重新編譯 SQL 語句的開銷。如果沒有現(xiàn)有執(zhí)行計劃,SQL Server 將為查詢生成新的執(zhí)行計劃。

SQL Server自動刪除執(zhí)行計劃

什么情況下會刪除執(zhí)行計劃

在沒有人工手動清除緩存的情況下,如果出現(xiàn)內存不足的情況下SQL Server會自動清除一部分沒被利用到的緩存計劃。

所有緩存的最大大小取決于max server memory的大小。

怎樣判斷需要刪除的執(zhí)行計劃

如果存在內存不足的情況,數(shù)據(jù)庫引擎將使用基于開銷的方法來確定從過程緩存中刪除哪些執(zhí)行計劃。怎樣確定一個執(zhí)行計劃的開銷呢,對于一個第一次執(zhí)行的執(zhí)行計劃SQL Server將它的開銷值設為0,被多次執(zhí)行過的執(zhí)行計劃SQL Server將它的開銷值設置為原始編譯開銷,所以數(shù)據(jù)庫引擎會重復檢查每個執(zhí)行計劃的狀態(tài)并將刪除當前開銷為零的執(zhí)行計劃。如果存在內存不足的情況,當前開銷為零的執(zhí)行計劃不會自動被刪除,而只有在數(shù)據(jù)庫引擎檢查該執(zhí)行計劃并發(fā)現(xiàn)其當前開銷為零時,才會刪除該計劃。當檢查執(zhí)行計劃時,如果當前沒有查詢使用該計劃,則數(shù)據(jù)庫引擎將降低當前開銷以將其推向零。

數(shù)據(jù)庫引擎會重復檢查執(zhí)行計劃,直至刪除了足夠多的執(zhí)行計劃,以滿足內存需求為止。如果存在內存不足的情況,執(zhí)行計劃可多次對其開銷進行增加或降低。如果內存不足的情況已經消失,數(shù)據(jù)庫引擎將不再降低未使用執(zhí)行計劃的當前開銷,并且所有執(zhí)行計劃都將保留在過程緩存中,即使其開銷為零也是如此。

重新編譯執(zhí)行計劃

根據(jù)數(shù)據(jù)庫新狀態(tài)的不同,數(shù)據(jù)庫中的某些更改可能導致執(zhí)行計劃效率降低或無效。SQL Server 將檢測到使執(zhí)行計劃無效的更改,并將計劃標記為無效。此后,必須為執(zhí)行查詢的下一個連接重新編譯新的計劃。導致計劃無效的情況包括:

對查詢所引用的表或視圖進行更改(ALTER TABLE 和 ALTER VIEW)。

對執(zhí)行計劃所使用的任何索引進行更改。

對執(zhí)行計劃所使用的統(tǒng)計信息進行更新,這些更新可能是從語句(如 UPDATE STATISTICS)中顯式生成,也可能是自動生成的。

刪除執(zhí)行計劃所使用的索引。

顯式調用 sp_recompile。

對鍵的大量更改(其他用戶對由查詢引用的表使用 INSERT 或 DELETE 語句所產生的修改)。

對于帶觸發(fā)器的表,插入的或刪除的表內的行數(shù)顯著增長。

使用 WITH RECOMPILE 選項執(zhí)行存儲過程。

測試

--1.緩存的每一個對象返回一行,包括緩存計劃的類型、緩存引用的對象、緩存計劃占用的空間、被使用次數(shù)、以及創(chuàng)建時間等

SELECT * FROM sys.syscacheobjects;

--2.緩存的每個查詢計劃返回一行,包括執(zhí)行計劃被使用的次數(shù)、執(zhí)行計劃的大小、內存地址、執(zhí)行計劃的類型、語句等

SELECT * FROM sys.dm_exec_cached_plans;

GO

---3.返回由指定的 sql_handle 標識的 SQL 批處理的文本

/*其中sql_handle來自:

sys.dm_exec_query_stats

sys.dm_exec_requests

sys.dm_exec_cursors

sys.dm_exec_xml_handles

sys.dm_exec_query_memory_grants

sys.dm_exec_connections

plan_handle來自:sys.dm_exec_cached_plans

*/

SELECT * FROM sys.dm_exec_sql_text(sql_handle | plan_handle);

GO

--4.以 XML 格式返回計劃句柄指定的批查詢的顯示計劃,主要接受來自sys.dm_exec_cached_plans的plan_handle句柄

SELECT * FROM sys.dm_exec_query_plan(plan_handle);

GO

--5.每個計劃屬性返回一行,主要接受來自sys.dm_exec_cached_plans的plan_handle句柄

SELECT * FROM sys.dm_exec_plan_attributes(plan_handle);

GO

--6.針對每個 Transact-SQL 執(zhí)行計劃、公共語言運行時 (CLR) 執(zhí)行計劃和與計劃關聯(lián)的游標返回一行,,主要接受來自sys.dm_exec_cached_plans的plan_handle句柄

SELECT * FROM sys.dm_exec_cached_plan_dependent_objects(plan_handle);

--7.返回緩存查詢計劃的聚合性能統(tǒng)計信息。緩存計劃中的每個查詢語句在該視圖中對應一行,并且行的生存期與計劃本身相關聯(lián)。在從緩存刪除計劃時,也將從該視圖中刪除對應行。*/

--該系統(tǒng)視圖針對每一個緩存中的執(zhí)行計劃統(tǒng)計其執(zhí)行時間、物理、邏輯操作等信息

SELECT * FROM sys.dm_exec_query_stats

手動清空緩存執(zhí)行計劃

---清空制定數(shù)據(jù)庫執(zhí)行計劃

DECLARE @DBID INT

SET @DBID=DB_ID()

DBCC FLUSHPROCINDB(@DBID);

GO

---創(chuàng)建測試數(shù)據(jù)庫

CREATE TABLE TPlan

(ID INT PRIMARY KEY IDENTITY(1,1),

Name NVARCHAR(20) NOT NULL,

Istate INT NOT NULL,

Idate DATETIME DEFAULT(GETDATE())

)

GO

---創(chuàng)建索引

CREATE INDEX IX_TPlan_NAME ON TPlan

(Name

)

GO

INSERT INTO TPlan(Name,Istate)

VALUES('1',1),('2',2),('3',3)

GO

SELECT NAME FROM TPlan

GO

SELECT Cacheobjtype,objtype,dbid,objid,usecounts,pagesused,sql FROM sys.syscacheobjects

WHERE DBID=DB_ID()

使用Profiler監(jiān)控

使用SQL:StmtRecompile監(jiān)控,如果是監(jiān)控存儲過程則使用:SP:Recompile

名單

名單

更多信息請查看IT技術專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機網(wǎng)站地址:SQL Server 執(zhí)行計劃緩存(1)

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲美女视频网| 免费看亚洲片| 亚洲国产一区在线| 亚洲国产综合视频在线观看| 在线欧美小视频| 中日韩美女免费视频网站在线观看| 一区二区三区高清在线观看| 亚洲一区二区三区成人在线视频精品| 亚洲欧美一区在线| 久久免费的精品国产v∧| 欧美精品日韩| 一区二区在线视频播放| 一本综合久久| 欧美成人a∨高清免费观看| 国产伦精品一区| 99精品视频免费全部在线| 久久人91精品久久久久久不卡 | 国产欧美日韩综合一区在线观看 | 亚洲国产成人精品久久| 亚洲欧美日韩国产一区| 欧美日韩精品高清| 亚洲美女视频| 欧美日韩精品不卡| 在线日韩一区二区| 美国成人毛片| 亚洲日本成人| 欧美日韩国产色视频| 亚洲精品乱码久久久久久按摩观| 久久亚洲精品一区二区| 欧美日韩在线不卡| 夜夜嗨av一区二区三区网站四季av| 欧美大秀在线观看| 亚洲日本va在线观看| 欧美风情在线观看| 亚洲免费观看高清在线观看| 欧美精品国产一区二区| 亚洲美女av网站| 国产精品大全| 亚洲欧美日韩国产成人| 国产日韩亚洲欧美综合| 久久久噜噜噜久久久| 最新国产成人在线观看| 欧美日韩在线不卡一区| 久久久久久网| 亚洲国产成人精品久久久国产成人一区| 久久精品视频播放| 91久久国产综合久久91精品网站| 欧美日韩一区二区三区在线看| 午夜激情亚洲| 欧美日一区二区三区在线观看国产免| 亚洲午夜未删减在线观看| 狠狠入ady亚洲精品经典电影| 你懂的网址国产 欧美| 在线亚洲免费视频| 亚洲黄色成人久久久| 国产午夜一区二区三区| 欧美日韩综合| 欧美日韩国产成人在线| 蜜桃av综合| 久久精品一区二区| 久久精品国产亚洲精品| 性欧美大战久久久久久久免费观看 | 亚洲激情第一页| 国产精品久久网| 久久不射2019中文字幕| 亚洲香蕉伊综合在人在线视看| 国产精品毛片大码女人| 欧美国产视频在线观看| 欧美成人嫩草网站| 欧美国产一区二区| 欧美另类videos死尸| 欧美另类videos死尸| 国产精品久久国产精麻豆99网站| 欧美日韩国产区| 国产情侣一区| 在线国产精品播放| 亚洲精品乱码久久久久久按摩观| 亚洲日本欧美| 亚洲女性裸体视频| 欧美一级淫片播放口| 免费成人av在线看| 欧美高清在线视频观看不卡| 麻豆免费精品视频| 久久露脸国产精品| 欧美不卡三区| 欧美日本二区| 国产亚洲人成网站在线观看| 国产曰批免费观看久久久| 韩国女主播一区| 亚洲人成亚洲人成在线观看图片| 999在线观看精品免费不卡网站| 一本大道av伊人久久综合| 亚洲欧美日韩国产综合在线| 欧美一级片在线播放| 免费在线欧美视频| 国产精品久久久999| 亚洲人成人一区二区在线观看| 亚洲精品一区二区三区在线观看 | 久久精品视频在线观看| 久久超碰97人人做人人爱| 欧美激情四色 | 国产欧美日韩中文字幕在线| 国产亚洲精品成人av久久ww| 精品999久久久| 久久这里有精品15一区二区三区| 欧美国产精品日韩| 国产一区二区三区成人欧美日韩在线观看| 国产一区二区在线免费观看 | 国产精品日本一区二区| 亚洲福利国产| 久久视频在线免费观看| 国产精品国产成人国产三级| 在线日韩视频| 美女视频黄免费的久久| 国产嫩草一区二区三区在线观看 | 国产精品免费一区二区三区在线观看 | 国产精品国产a| 亚洲欧洲视频| 欧美日韩一区免费| 99国产精品| 欧美精品成人一区二区在线观看| 激情六月婷婷久久| 久久精品视频在线| 亚洲成在人线av| 欧美深夜影院| 亚洲自拍偷拍福利| 国产一区二区三区在线播放免费观看| 久久成人精品无人区| 韩日精品视频一区| 欧美精品久久99久久在免费线| 日韩视频二区| 国产精品日本一区二区 | 亚洲福利精品| 老司机免费视频一区二区三区| 亚洲国产另类久久精品| 欧美午夜精品一区| 亚洲一区在线免费观看| 亚洲激情六月丁香| 国产精品美腿一区在线看| 欧美一区不卡| 亚洲国产一区二区三区高清| 国产精品久久久久久久久久尿| 老司机午夜精品| 亚洲特色特黄| 亚洲国产成人在线播放| 国产精品每日更新| 欧美成人伊人久久综合网| 亚洲男人的天堂在线aⅴ视频| 亚洲黄一区二区三区| 国产区精品在线观看| 欧美国产精品| 欧美电影打屁股sp| 欧美日本精品| 国产精品福利影院| 欧美日韩精品一区二区在线播放 | 欧美一级淫片aaaaaaa视频| 国内精品视频一区| 欧美专区亚洲专区| 亚洲综合二区| 一区二区三区回区在观看免费视频| 娇妻被交换粗又大又硬视频欧美| 欧美亚一区二区| 欧美视频国产精品| 免费成人黄色片| 久久久久久电影| 欧美亚洲色图校园春色| 一区二区三区视频在线看| 99成人免费视频| 亚洲美女区一区| 亚洲午夜激情免费视频| 亚洲巨乳在线| 亚洲美女精品久久| 国外成人网址| 久久久国产一区二区三区| 免费永久网站黄欧美| 欧美伦理91i| 欧美色欧美亚洲另类二区 | 欧美一区二区三区四区视频 | 欧美在线999| 久久综合999| 欧美高清在线视频观看不卡| 国产日韩精品视频一区| 亚洲二区在线视频| 一区二区欧美日韩| 国外成人在线| 黄色成人精品网站| 一区二区三区在线观看视频| 亚洲精品你懂的| 欧美一区二区在线播放| 亚洲欧美综合国产精品一区| 欧美激情久久久久久| 国产一区二区三区久久| 99一区二区| 欧美激情日韩| 亚洲国产欧美日韩| 午夜久久美女| 国产精品久久久久毛片大屁完整版| 在线色欧美三级视频| 久久久精品视频成人| 激情综合五月天|