這篇文章主要介紹sql server性能調(diào)優(yōu) I/O開銷的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、揭陽(yáng)ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的揭陽(yáng)網(wǎng)站制作公司一.概述
IO 內(nèi)存是sql server最重要的資源,數(shù)據(jù)從磁盤加載到內(nèi)存,再?gòu)膬?nèi)存中緩存,輸出到應(yīng)用端,在sql server 內(nèi)存初探中有介紹。在明白了sqlserver內(nèi)存原理后,就能更好的分析I/O開銷,從而提升數(shù)據(jù)庫(kù)的整體性能。 在生產(chǎn)環(huán)境下數(shù)據(jù)庫(kù)的sqlserver服務(wù)啟動(dòng)后一個(gè)星期,就可以通過(guò)dmv來(lái)分析優(yōu)化。在I/O分析這塊可以從物理I/O和內(nèi)存I/O二方面來(lái)分析, 重點(diǎn)分析應(yīng)在內(nèi)存I/O上,可能從多個(gè)維度來(lái)分析,比如從sql server服務(wù)啟動(dòng)以來(lái) 歷史I/O開銷總量分析,自執(zhí)行計(jì)劃編譯以來(lái)執(zhí)行次數(shù)總量分析,平均I/0次數(shù)分析等。
sys.dm_exec_query_stats:返回緩存的查詢計(jì)劃,緩存計(jì)劃中的每個(gè)查詢語(yǔ)句在該視圖中對(duì)應(yīng)一行。當(dāng)sql server工作負(fù)載過(guò)重時(shí),該dmv也有可以統(tǒng)計(jì)不正確。如果sql server服務(wù)重啟緩存的數(shù)據(jù)將會(huì)清掉。這個(gè)dmv包括了太多的信息像內(nèi)存掃描數(shù),內(nèi)存空間數(shù),cpu耗時(shí)等,具體查看msdn文檔。
sys.dm_exec_sql_text:返回的 SQL 文本批處理,它是由指定sql_handle,其中的text列是查詢的文本。
1.1 按照物理讀的頁(yè)面數(shù)排序 前50名
SELECT TOP 50 qs.total_physical_reads,qs.execution_count, qs.total_physical_reads/qs.execution_count AS [avg I/O], qs. creation_time, qs.max_elapsed_time, qs.min_elapsed_time, SUBSTRING(qt.text,qs.statement_start_offset/2, (CASE WHEN qs.statement_end_offset=-1 THEN LEN(CONVERT(NVARCHAR(max),qt.text))*2 ELSE qs.statement_end_offset END -qs.statement_start_offset)/2) AS query_text, qt.dbid,dbname=DB_NAME(qt.dbid), qt.objectid, qs.sql_handle, qs.plan_handle from sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt ORDER BY qs.total_physical_reads DESC
如下圖所示:
total_physical_reads:計(jì)劃自編譯后在執(zhí)行期間所執(zhí)行的物理讀取總次數(shù)。
execution_count :計(jì)劃自上次編譯以來(lái)所執(zhí)行的次數(shù)。
[avg I/O]: 平均讀取的物理次數(shù)(頁(yè)數(shù))。
creation_time:編譯計(jì)劃的時(shí)間。
query_text:執(zhí)行計(jì)劃對(duì)應(yīng)的sql腳本
后面來(lái)包括所在的數(shù)據(jù)庫(kù)ID:dbid,數(shù)據(jù)庫(kù)名稱:dbname
1.2 按照邏輯讀的頁(yè)面數(shù)排序 前50名
SELECT TOP 50 qs.total_logical_reads, qs.execution_count, qs.max_elapsed_time, qs.min_elapsed_time, qs.total_logical_reads/qs.execution_count AS [AVG IO], SUBSTRING(qt.text,qs.statement_start_offset/2, (CASE WHEN qs.statement_end_offset=-1 THEN LEN(CONVERT(NVARCHAR(max),qt.text)) *2 ELSE qs.statement_end_offset END -qs.statement_start_offset)/2) AS query_text, qt.dbid, dbname=DB_NAME(qt.dbid), qt.objectid, qs.sql_handle, creation_time, qs.plan_handle from sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt ORDER BY qs.total_logical_reads DESC
如下圖所示:
通過(guò)上面的邏輯內(nèi)存截圖來(lái)簡(jiǎn)要分析下:
從內(nèi)存掃描總量上看最多的是8311268次頁(yè)掃描,自執(zhí)行編譯后運(yùn)行t-sql腳本358次,這里的耗時(shí)是毫秒為單位包括大耗時(shí)和最小耗時(shí),平均I/O是232115次(頁(yè)),該語(yǔ)句文本是一個(gè)update 修改,該表數(shù)據(jù)量大沒(méi)有完全走索引(權(quán)衡后不對(duì)該語(yǔ)句做索引覆蓋),但執(zhí)行次數(shù)少,且每次執(zhí)行時(shí)間是非工作時(shí)間,雖然掃描開銷大,但沒(méi)有影響白天客戶使用。
從執(zhí)行次數(shù)是有一個(gè)43188次, 內(nèi)存掃描總量排名39位。該語(yǔ)句雖然只有815條,但執(zhí)行次數(shù)很多,如里服務(wù)器有壓力可以優(yōu)化,一般是該語(yǔ)句沒(méi)有走索引。把文本拿出來(lái)如下
SELECT Count(*) AS TotalCount FROM [MEM_FlagshipApply] WITH(NOLOCK) Where (((([Status] = 2) AND ([IsDeleted] = 1)) AND ([MemType] = 0)) AND ([MEMID] <> 6))
下面兩圖一個(gè)是分析該語(yǔ)句的執(zhí)行計(jì)劃,sqlserver提示缺少索引,另一個(gè)是i/o統(tǒng)計(jì)掃描了80次。
新建索引后在來(lái)看看
CREATE NONCLUSTERED INDEX ix_1 ON [dbo].[MEM_FlagshipApply] ([Status],[IsDeleted],[MemType],[MEMID])
以上是“sql server性能調(diào)優(yōu) I/O開銷的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享題目:sqlserver性能調(diào)優(yōu)I/O開銷的示例分析-創(chuàng)新互聯(lián)
分享URL:http://jinyejixie.com/article2/diedoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容