真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

sqlserver性能調優(yōu)I/O開銷的示例分析

這篇文章主要介紹sql server性能調優(yōu) I/O開銷的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司服務項目包括旌德網站建設、旌德網站制作、旌德網頁制作以及旌德網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,旌德網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到旌德省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

一.概述

IO 內存是sql server最重要的資源,數(shù)據(jù)從磁盤加載到內存,再從內存中緩存,輸出到應用端,在sql server 內存初探中有介紹。在明白了sqlserver內存原理后,就能更好的分析I/O開銷,從而提升數(shù)據(jù)庫的整體性能。 在生產環(huán)境下數(shù)據(jù)庫的sqlserver服務啟動后一個星期,就可以通過dmv來分析優(yōu)化。在I/O分析這塊可以從物理I/O和內存I/O二方面來分析, 重點分析應在內存I/O上,可能從多個維度來分析,比如從sql server服務啟動以來 歷史I/O開銷總量分析,自執(zhí)行計劃編譯以來執(zhí)行次數(shù)總量分析,平均I/0次數(shù)分析等。

sys.dm_exec_query_stats:返回緩存的查詢計劃,緩存計劃中的每個查詢語句在該視圖中對應一行。當sql server工作負載過重時,該dmv也有可以統(tǒng)計不正確。如果sql server服務重啟緩存的數(shù)據(jù)將會清掉。這個dmv包括了太多的信息像內存掃描數(shù),內存空間數(shù),cpu耗時等,具體查看msdn文檔。

sys.dm_exec_sql_text:返回的 SQL 文本批處理,它是由指定sql_handle,其中的text列是查詢的文本。

1.1 按照物理讀的頁面數(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:計劃自編譯后在執(zhí)行期間所執(zhí)行的物理讀取總次數(shù)。

execution_count :計劃自上次編譯以來所執(zhí)行的次數(shù)。

[avg I/O]:    平均讀取的物理次數(shù)(頁數(shù))。

creation_time:編譯計劃的時間。

        query_text:執(zhí)行計劃對應的sql腳本

       后面來包括所在的數(shù)據(jù)庫ID:dbid,數(shù)據(jù)庫名稱:dbname

sql server性能調優(yōu) I/O開銷的示例分析

1.2 按照邏輯讀的頁面數(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

如下圖所示:

sql server性能調優(yōu) I/O開銷的示例分析

通過上面的邏輯內存截圖來簡要分析下:

從內存掃描總量上看最多的是8311268次頁掃描,自執(zhí)行編譯后運行t-sql腳本358次,這里的耗時是毫秒為單位包括最大耗時和最小耗時,平均I/O是232115次(頁),該語句文本是一個update 修改,該表數(shù)據(jù)量大沒有完全走索引(權衡后不對該語句做索引覆蓋),但執(zhí)行次數(shù)少,且每次執(zhí)行時間是非工作時間,雖然掃描開銷大,但沒有影響白天客戶使用。

從執(zhí)行次數(shù)是有一個43188次, 內存掃描總量排名39位。該語句雖然只有815條,但執(zhí)行次數(shù)很多,如里服務器有壓力可以優(yōu)化,一般是該語句沒有走索引。把文本拿出來如下

SELECT Count(*) AS TotalCount FROM [MEM_FlagshipApply]
 WITH(NOLOCK) Where (((([Status] = 2) AND ([IsDeleted] = 1)) AND ([MemType] = 0)) AND ([MEMID] <> 6))

下面兩圖一個是分析該語句的執(zhí)行計劃,sqlserver提示缺少索引,另一個是i/o統(tǒng)計掃描了80次。

sql server性能調優(yōu) I/O開銷的示例分析

新建索引后在來看看

 CREATE NONCLUSTERED INDEX ix_1
ON [dbo].[MEM_FlagshipApply] ([Status],[IsDeleted],[MemType],[MEMID])

sql server性能調優(yōu) I/O開銷的示例分析

sql server性能調優(yōu) I/O開銷的示例分析     

以上是“sql server性能調優(yōu) I/O開銷的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


新聞標題:sqlserver性能調優(yōu)I/O開銷的示例分析
當前網址:http://weahome.cn/article/ipipcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部