日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 數據庫 > SQL Server > 正文

SQL Server性能調優之緩存

2024-08-31 01:04:46
字體:
來源:轉載
供稿:網友

在執行任何查詢時,SQL Server都會將數據讀取到內存,數據使用之后,不會立即釋放,而是會緩存在內存Buffer中,當再次執行相同的查詢時,如果所需數據全部緩存在內存中,那么SQL Server不會產生Disk IO操作,立即返回查詢結果,這是SQL Server的性能優化機制。

一,主要的內存消費者(Memory Consumer)

1,數據緩存(Data Cache)

Data Cache是存儲數據頁(Data Page)的緩沖區,當SQL Server需要讀取數據文件(File)中的數據頁(Data Page)時,SQL Server會把整個Page都調入內存(內存中的一個Page叫做buffer),Page是數據訪問的最小單元。

當用戶修改了某個Page上的數據時,SQL Server 會先在內存中修改Buffer,但是不會立即將這個數據葉寫回硬盤,而是等到CheckPoint或lazy Writer進程運行時集中處理。當用戶讀取某個Page后,如果SQL Server沒有內存壓力,它不會在內存中刪除這個Page,因為內存中的數據頁始終存放著數據的最新狀態,如果有其他用戶使用這個Page,SQL Server 不需要從硬盤中讀取一次,節省語句執行的時間。理想情況是SQL Server將用戶需要訪問的所有數據都緩存在內存中,SQL Server 永遠不需要去硬盤讀取數據,只需要在CheckPoint 或 lazy Write運行時把修改過的頁面寫回硬盤即可

2,查詢計劃緩存(Query Plan Cache)

存儲查詢語句和存儲過程的執行計劃,以供重用,而不需要重新編譯(Compile),因為編譯查詢語句產生執行計劃是一個非常耗費資源的過程。

二,查看內存消耗

在SQL Server中,只有內存書記員(Memory Clerk)能夠分配內存,Memory Clerk會記錄已經分配內存的數量,任何一個需要使用內存的對象,必須創建自己的Memory Clerk,并使用該Memory clerk來分配內存。

1,查看Memory clerk分配的內存量

select memory_node_id,  type, pages_kb, virtual_memory_reserved_kb, virtual_memory_committed_kb, shared_memory_reserved_kb, shared_memory_committed_kb, page_size_in_bytesfrom sys.dm_os_memory_clerks where type = 'MEMORYCLERK_SQLQERESERVATIONS'

對于內存結點64,只在DAC中使用。

2,統計Memory Clerk分配的內存總量

select mc.type,mc.name, sum(mc.pages_kb) as AllocatedPages_KB, sum(mc.virtual_memory_reserved_kb) as VM_Reserved_KB, sum(mc.virtual_memory_committed_kb) as VM_Committed_KB, --sum(mc.shared_memory_reserved_kb) as ShareMem_Reserved_KB, --sum(mc.shared_memory_committed_kb) as ShareMem_Committed_KB, max(mc.page_size_in_bytes)/1024 as SinglePageSize_KBfrom sys.dm_os_memory_clerks mcgroup by mc.type,mc.nameorder by AllocatedPages_KB desc,mc.type,mc.name

消耗內存較大的Clerk是:

  • MEMORYCLERK_SQLBUFFERPOOL:基本是Buffer Pool中page的大小
  • OBJECTSTORE_LOCK_MANAGER:鎖結構使用的內存,當發生嚴重的鎖阻塞時,這表明系統中,存儲大量鎖,造成鎖管理占用大量的內存;
  • CACHESTORE_OBJCP:觸發器和存儲過程等模塊(Module)的執行計劃占用的緩存空間;
  • CACHESTORE_SQLCP:動態TSQL語句,即席(Adhoc)查詢和預編譯(Prepared) TSQL的執行計劃緩存;
  • CACHESTORE_COLUMNSTOREOBJECTPOOL:列存儲索引(ColumnStore Index)占用的緩存

3,查看緩存中的數據頁

當數據頁從硬盤讀取到內存之后,該數據頁被復制到緩沖池(Buffer Pool),供SQL Server重用。每個緩存的數據頁都有一個緩存描述器(Buffer Descriptor),用戶唯一標識內存中的數據頁,在SQL Server實例中緩存的每一個數據頁,都能從 sys.dm_os_buffer_descriptors 查看緩存描述的信息。

select DB_NAME(bd.database_id) as dbname, OBJECT_NAME(p.object_id) as ObjectName, i.name as IndexName, count(0) as BufferCounts, sum(bd.free_space_in_bytes)/1024 as TotalFreeSpace_KB, cast(sum(bd.free_space_in_bytes)/(8*1024.0)/count(0) as decimal(10,4))*100 as FreeSpaceRatio, sum(cast(bd.is_modified as int)) as TotalDirtyPages, sum(bd.row_count) as TotalRowCountsfrom sys.allocation_units au inner join sys.dm_os_buffer_descriptors bd on au.allocation_unit_id=bd.allocation_unit_idinner join sys.partitions p  on au.container_id=p.hobt_idinner join sys.indexes i  on p.object_id=i.object_id and p.index_id=p.index_idinner join sys.objects o on p.object_id=o.object_idwhere bd.database_id=DB_ID(N'database_name') and o.type<>N'S'group by bd.database_id,p.object_id,i.name order by BufferCounts desc,dbname,ObjectName

4,查看計劃緩存

產生執行計劃是十分消耗CPU資源的,SQL Server會在內存的Plan Cache中存儲每個查詢計劃(Query Plan),及其占用的內存空間,重用次數等信息。

select cp.objtype,cp.cacheobjtype, sum(cp.size_in_bytes) as TotalSize_B, COUNT(cp.bucketid) as CacheCounts, sum(cp.refcounts) as TotalRefCounts, sum(cp.usecounts) as TotalUseCountsfrom sys.dm_exec_cached_plans cp group by cp.objtype,cp.cacheobjtypeorder by TotalSize_B desc

三,清空緩存

在調優存儲過程性能時,清空緩存是必需的,緩沖池(Buffer Pool)是SQL Server的緩存管理器,包含了SQL Server的絕大部分緩存數據(Cache),例如,執行計劃緩存(Plan cache),數據緩存(Data cache)等。

清空緩存常用的命令有如下三個:

CHECKPOINTDBCC DROPCLEANBUFFERSDBCC FREEPROCCACHE

Checkpoint和DBCC DROPCLEANBUFFERS 用于清理數據緩存(Data Cache)中的臟頁(dirty pages)和干凈頁(clean pages),而DBCC FREEPROCCACHE 用于清空所有的計劃緩存(Plan Cache)。

1,清空數據緩存

checkpoint 用于將臟頁(Dirty Pages)寫入硬盤,臟頁(Dirty Pages)是指數據頁讀入緩存后,被修改過,導致內存中數據頁和硬盤中的數據頁中的內容不同;干凈頁(Clean Pages)是指數據頁被讀入緩存后,沒有被修改過,所以,內存中的數據頁和硬盤中的數據頁中的內容相同。不管是Dirty pages 還是 Clean pages 都是Data Cache,在性能調優時,都必須從內存中清理掉,否則,查詢性能將忽略掉數據從硬盤加載到內存的IO消耗,影響查詢語句的執行情況。

CHECKPOINT 命令用于產生冷緩存(Cold buffer Cache),該命令將當前數據庫產生的所有臟頁寫入到硬盤,并清理內存buffer;在執行CHECKPOINT命令之后,執行 DBCC DROPCLEANBUFFERS 用于從緩沖池中清空所有的干凈頁。

在性能測試時,使用DBCC DROPCLEANBUFFERS從SQLSERVER的數據緩存池中清除所有的clean緩存數據,需要注意的是該命令只移走干凈的緩存,不移走臟緩存。因此,在執行這個命令前,應該先執行CheckPoint,將所有臟頁寫入磁盤,這樣在運行DBCC RROPCLEANBUFFERS 時,可以保證所有的數據緩存被清理,而不是其中的一部分。

2,清空計劃緩存

計劃緩存(Plan Cache)用于緩存查詢語句的執行計劃,每一條查詢語句在執行之后,其查詢計劃都會緩存Plan Cache中。在產品環境中,不要輕易清理掉Plan Cache。如果檢測到某個Plan Cache產生參數嗅探問題,導致性能十分低下,推薦修改查詢語句,重新編譯存儲過程,以單獨刷新該SP的計劃緩存。

DBCC FREEPROCCACHE [ ( { plan_handle | sql_handle} ) ]

計劃緩存,之前叫做過程緩存(procedure cache),執行DBCC FREEPROCCACHE 命令,釋放所有的計劃緩存,這回導致存儲過程,AdHoc 查詢等查詢必須重新編譯,產生新的計劃緩存。

四,強制重新編譯執行計劃

修改存儲過程,觸發器等模塊(Module)能夠使其執行計劃重新編譯,除此之外,還有其他方法,能夠強制重新編譯執行計劃

1,標記,下次重新編譯

使用該存儲過程,標記一個執行模塊(SP,Trigger,User-Defined Function)在下次執行時,重新編譯執行計劃

sys.sp_recompile [ @objname = ] 'object'

2,不復用執行計劃

在創建存儲過程時,使用WITH RECOMPILE 選項,在每次執行SP時,都重新編譯,使用新的執行計劃。

CREATE PROCEDURE dbo.usp_procname  @Parameter_Name varchar(30) = 'Parameter_default_value'WITH RECOMPILE

3,執行時重新編譯

在執行存儲過程時,重新編譯存儲過程的執行計劃

exec dbo.usp_procname @Parameter_name='Parameter_value' WITH RECOMPILE

4,語句級別的重新編譯

在SP中,使用查詢選項 option(recompile),只重新編譯該語句級別的執行計劃

select column_name_listfrom dbo.tablenameoption(recompile)

SQL Server在執行查詢之后,查詢提示(RECOMPILE)指示存儲引擎將計劃緩存拋棄,在下次執行存儲過程時,強制查詢優化器重新編譯,生成新的執行計劃。在重新編譯時,SQL Server 優化器使用當前的變量值生成新的計劃緩存。

附:

冷緩存,熱緩存,臟緩存和干凈緩存名詞解釋:

  • 凈緩存頁(Clean Buffer) 是指內存中未被修改的數據頁,DBCC DROPCLEANBUFFERS 用于從緩沖池(Buffer Pool)移除干凈頁,釋放Buffer。
  • 臟緩存頁(Dirty Buffer)是指數據頁在內存中被修改,但是還沒有寫入到硬盤中,導致硬盤中的數據不同于內存,通常情況下,臟頁通過CHECKPOINT進程來自動同步,CHECKPOINT 將臟頁數據寫入到硬盤中,使內存和硬盤文件中的數據保持一致,能夠減少數據還原的時間。
  • 冷緩存頁(Cold Buffer)是指,在數據處理階段,最近沒有被使用的緩存頁。
  • 熱緩存頁(Hot Buffer)是指,在數據處理階段,最近經常被使用的緩存頁。

參考文檔:

Recompile a Stored Procedure

What is a COLD, DIRTY or CLEAN Buffer

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VeVb武林網!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
久久在线91| 中文在线一区二区| 亚洲欧美中文字幕| 在线视频色在线| 日韩欧美亚洲国产| 日韩免费电影网站| 亚洲高清在线免费| 日韩在线观看视频一区| a级在线免费观看| 91精品国产91久久| 午夜精品免费视频| 国产成人精品999| 亚洲第一视频在线观看| 99久久www免费| 最近中文字幕在线中文高清版| 日韩三级视频在线播放| 国产专区中文字幕| 亚欧成人精品| 一本一道综合狠狠老| 中文字幕日韩欧美| 日韩午夜一区| 日韩在线中文视频| 中文字幕日韩国产| 亚洲黄色www| 久久久久久91| 欧美乱大交xxxxx免费| 日韩在线二区| 91精品国产综合久久香蕉的特点| 久久久水蜜桃| 日韩中文字幕在线一区| 麻豆一区二区99久久久久| 欧美日韩国产综合视频在线观看中文 | 日韩午夜中文字幕| 一区二区欧美国产| 中文字幕日韩国产| 欧美日韩国产系列| 日韩欧美在线精品| 国产欧美日韩成人| 精品视频www| 中文字幕第一页在线播放| 欧美99久久| 热久久精品国产| 欧美日韩视频网站| 国产欧美日韩视频| 欧美日韩国产在线播放| 中文字幕高清在线播放| 日韩在线视频一区| 日韩精品视频在线免费观看| 国产丝袜在线播放| www日韩在线观看| 日韩欧美国产1| 中文欧美日韩| 日本亚洲视频在线| 精品国产免费视频| 亚洲第一视频在线观看| 一区三区二区视频| 日韩欧美在线视频日韩欧美在线视频| 久久手机免费观看| 黄色资源在线观看| 国产高清大尺度一区二区不卡| 一区二区不卡在线| 91精品免费看| 亚洲综合在线视频| 亚洲第一福利视频在线| 91精品国产入口| 91麻豆精品国产91久久久使用方法 | 欧美亚洲国产激情| 二区三区中文字幕| 日韩三区免费| 亚洲免费中文字幕| 91精品国产综合久久香蕉最新版 | 中文字幕线观看| 亚洲狠狠婷婷综合久久久久图片| 日韩欧美亚洲国产| av免费不卡国产观看| 日韩午夜一区| 欧美日韩综合在线免费观看| 欧美日韩中文字幕| 日韩一级二级三级| 久久婷婷中文字幕| 国产三级在线| 国产欧美三级| 欧美在线日韩精品| 日本精品专区| 自拍日韩亚洲一区在线| 欧美日韩视频免费看| 一二三区精品视频| 国产黄色网页| 久久婷婷国产| 视频一区二区精品的福利| 久久久99精品久久| 亚洲成av人片一区二区密柚| 欧美日韩国产综合久久| 欧美久久在线| 欧美日韩一二三四| 国产一二三视频| 精品久久久视频| 不卡在线一区二区| 日韩免费视频一区二区视频在线观看| 欧美日韩午夜在线视频| 成年人黄国产| 久久精品日韩无码| 亚洲a级在线播放观看| 国产成人精品三级| 在线亚洲人成| 91精品国产自产| 亚洲制服丝袜一区| 国产欧美亚洲一区| www.久久久精品| 91精品在线观看视频| 日韩欧美在线1卡| 日韩精品中文字幕第1页| 亚洲二区自拍| 在线视频不卡一区二区| 精品视频资源站| 欧美日韩精品在线| 国产又粗又猛又爽又黄91精品| 中文亚洲免费| 精品一二三四区| 亚洲大胆人体av| 亚洲欧洲日韩在线| 国产一区三区三区| 欧美日韩国产一区| 国产一区不卡在线| 日韩国产成人精品| 你懂的亚洲视频 | av手机天堂| 日韩欧美中文在线视频| 欧美专区中文字幕| 在线国产日本| 日韩精品视频中文在线观看| 亚洲最新免费视频| 国产黄色在线看| 欧美日韩中国免费专区在线看| 国产三级中文字幕| 免费在线观看国产黄| 欧美不卡123| 国产三级在线观看视频| 亚洲乱码视频| wwwav91com| 欧美日韩国产页| 91精品国产91久久久久久青草| 在线视频亚洲| 国产三级第一页| 国产91欧美| 久久香蕉av| 狠狠色噜噜狠狠狠狠97| 亚洲免费精品| 中文字幕精品一区二| 国产丝袜一区二区| 日韩国产成人| 91精品国产免费久久综合| 国产激情在线| 久久久91精品| 一区视频在线播放| 一区免费在线| 中文字幕 欧美日韩| 日韩免费视频一区二区| 蜜臀国产一区| 在线手机中文字幕| 成片免费观看| 久久久99免费| 欧美日韩在线播放三区四区| 国产亚洲一级| 日韩精品三级| 精品日韩在线| 国产在线二区| 久久精品免费在线观看| 欧美日韩一级视频| 日韩精品在线视频观看| 最近高清中文在线字幕在线观看| 精品日韩一区二区三区免费视频| 极品久久久久久| 国产999在线观看| 亚洲第一网中文字幕| 久久久久蜜桃| 久本草在线中文字幕亚洲欧美| 日韩欧美色综合| 中文字幕高清在线播放| 97久久精品午夜一区二区| 高清一区二区| 日韩三级视频中文字幕| 伊人亚洲视频| 天堂在线www天堂中文在线| 欧美 日韩 综合| 欧美一级免费看| 欧美国产一区视频在线观看| 亚洲一区在线观看免费| 欧美日韩性视频| 亚洲最新免费视频| 欧美日韩国产成人| 欧美wwww| 国产欧美综合在线观看第十页| 97久久精品午夜一区二区| 日韩高清在线一区二区| 久久手机免费观看| 日韩精品一区二区三区视频播放| 精品中文字幕在线| 99久久精品国产亚洲| 日韩三区免费| 国产v日产∨综合v精品视频| 日韩国产高清一区| 日韩中文在线中文网三级| 亚洲综合欧美在线| 99热最新网址| 精品乱子伦一区二区| 欧美亚洲综合视频| 国产三级视频网站| 欧美日韩精品三区| 国产美女主播视频一区| 刘玥91精选国产在线观看| 亚洲欧美伊人| 亚洲一区在线观看免费| 中文字幕 亚洲一区| 日韩精品a在线观看91| 欧美日韩高清不卡| 精品成a人在线观看| 久久精品国产视频| 国产黄色一区| 国产在线一区二区视频| 欧美在线日韩精品| 日韩精品在线私人| 精品亚洲综合| 国产成人精品999| 国产欧美日韩亚州综合| 国产99在线 | 亚洲| 99精品电影| 一区二区不卡视频| 国产一卡二卡3卡4卡四卡在线| 日韩在线视频免费观看高清中文| 日韩在线观看一区| 欧美日韩精品在线观看| 久久精品在线免费观看| 日韩三级精品| 中文字幕日韩第一页| 91精品综合久久| 日本黄色一区二区| 国产香蕉免费精品视频| 国产wwww| 国产高清在线视频| 婷婷综合福利| 国产欧美日韩三级| 日韩精品资源二区在线| 欧美日韩中国免费专区在线看| 亚洲欧美韩国综合色| 亚洲成av人综合在线观看| 亚洲三级av| 在线国产99| 欧美中文字幕精品| 亚洲欧洲国产视频| 久久精品日韩无码| 福利在线国产| 中文字幕一区免费| 午夜视频在线观看一区| 欧美日韩精品免费看| 91精品国产免费| 国产 欧美 在线| 日本a级黄色| 国产欧美中文在线| 亚洲综合在线不卡| 亚洲大片精品永久免费| 91精品国产91综合久久蜜臀| 国产欧美日韩91| 日韩国产欧美| 欧美亚洲另类制服自拍| 天堂在线中文| 中文字幕第一页在线播放| 日韩精品一区二区三区视频播放| 欧美日韩精品高清| 久久久精品网| 亚洲视频一二三四| 欧美国产日韩在线播放| 黄色国产在线| 91极品视频在线观看| 欧美日韩国产三级| 你懂的亚洲视频| 日韩一级视频在线观看| 日韩欧美国产三级| 国产成人精品av久久| 亚洲福利在线看| 欧美日韩激情在线一区二区三区| 日韩精品在线中文字幕| 国产三级视频在线| 精品人妻一区二区免费视频| 午夜影院在线观看欧美| 日韩亚洲国产欧美| 国产精品视频福利一区二区| 欧美婷婷久久| 亚洲国产欧美久久| 日韩欧美高清在线| 国产视频一二区| 国产黄色高清在线| 中文字幕线观看| 亚洲社区在线| 欧美日韩国产免费观看| 日韩专区视频网站| 亚洲人线精品午夜| 美女在线视频一区| 精品一区二区三区中文字幕 | 成人一区二区不卡免费| 国产www在线观看| 婷婷中文字幕一区三区| 91精品在线免费观看| 日韩av一区二| 日韩精品在线视频观看| 伊人精品视频| 欧美日韩中文字幕在线| 欧美日韩综合色| 国产丝袜一区二区| 91精品啪在线观看国产60岁| 欧美日韩国产片| 精品欧美日韩| 久久蜜桃精品| 欧美三级日韩在线| 欧美日韩国产不卡在线看| 亚洲国产一区自拍| 国产日韩精品在线看| 中文字幕在线观看国产| 不卡一区2区| 午夜伊人狠狠久久| 中文国产字幕在线观看| 久久久精品国产免费观看同学| 日韩高清在线一区二区| 亚洲第一视频在线观看| 国产日韩精品电影| 日韩欧美在线看| 日韩字幕在线观看| 国产不卡一区| 国产自产视频| 欧美日韩国产在线看| 在线一区免费| 国产乱国产乱老熟300部视频| 精品日韩一区二区三区免费视频| 亚洲一区精品电影| 欧美片网站免费| 婷婷中文字幕在线观看| 日韩视频精品在线观看| 成人久久在线| 国产一级免费在线观看| 日韩视频在线免费播放| 精品网站999www| 亚洲第一视频在线观看| 亚洲欧美日本国产专区一区| 黄色视屏免费在线观看| 精品国产综合久久| 91精品国产综合久久精品app| 免费高清特黄a大片| 国产欧美日韩在线播放| a级在线免费观看| 国产123在线| 国产超级va在线视频| 中文在线第一页| 国产黄在线播放| 白嫩少妇丰满一区二区| 久久视频在线免费观看| 精品国产欧美日韩不卡在线观看| 欧美日韩亚洲天堂| 欧美日韩综合不卡| 日韩视频在线观看视频| 欧美在线中文字幕| 99这里有精品视频| 99精品在线播放| 日本视频久久久| 中文字幕在线国产| 中文字幕在线视频网| av首页在线| 日韩精品在线免费观看| 日韩中文字幕在线视频播放| 一级日韩一级欧美| 日韩欧美三级| 在线观看一区日韩| 免费高清视频日韩| 黄色片免费看| 亚洲.国产.中文慕字在线| 亚洲欧美久久234| 在线三级av| 欧美日韩国产一区在线| 精品国自产在线观看| 精品久久九九| 日韩欧美在线视频| 国产在线观看黄色| 亚洲欧洲日韩在线| 在线观看国产一级片| 精品对白一区国产伦| 欧美日韩中文另类| 日韩精品视频在线看| 国产在线高清精品| 高清不卡一区二区| 亚洲一区二区三区精品中文字幕| 国产欧美综合在线观看第十页| 92久久精品| 日韩激情一区| 中文字幕第一页在线播放| 久久电影国产免费久久电影| av影视在线看| 91精品国产综合久久久蜜臀粉嫩| 欧美日韩一二三四| 国产高清在线观看| 欧美一级搡bbbb搡bbbb| 精品午夜av|