Azure SQL Database 使用Query Store對Azure SQL Database監(jiān)控,provide so-ESG跨境

Azure SQL Database 使用Query Store對Azure SQL Database監(jiān)控,provide so

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-07-05
點(diǎn)贊icon 0
查看icon 656

Azure SQL Database 使用Query Store對Azure SQL Database監(jiān)控,provide somebody with somethingAzure SQL Database 使用Query Store對Azure SQL Database監(jiān)控我們在使用Azure SQL Databas......

Azure SQL Database 使用Query Store對Azure SQL Database監(jiān)控,provide somebody with something





Azure SQL Database 使用Query Store對Azure SQL Database監(jiān)控

我們在使用Azure SQL Database的時候,需要對數(shù)據(jù)庫的性能進(jìn)行監(jiān)控,這時候就可以有兩種方法:

1.第一種方法,是通過Azure SQL Database的監(jiān)控界面,來查看數(shù)據(jù)庫的性能,在本章會簡單的介紹一下

2.第二種方法,是通過Query Store來進(jìn)行監(jiān)控,在本章會詳細(xì)介紹

首先,我們介紹一下使用Azure SQL Database的監(jiān)控界面。

1.我們登錄Azure Portal: https://portal.azure.cn/

2.查看到我們使用的Azure SQL Database,選擇概述,然后點(diǎn)擊下圖紅色部分

3.頁面跳轉(zhuǎn)后,我們可以在下圖的Last Hour,設(shè)置監(jiān)控的時間段

在Add Metric里面,增加新的監(jiān)控指標(biāo),比如CPU Percentage, Data IO Percentage等

4.我們還可以在性能概述里面,查看到微軟云Azure對我們當(dāng)前數(shù)據(jù)的優(yōu)化建議

接下來,我們詳細(xì)介紹一下使用Query Store來進(jìn)行監(jiān)控,實(shí)際上我們在上面看到的通過Azure Portal的可視化監(jiān)控,其實(shí)也是通過Query Store來進(jìn)行監(jiān)控的。

Query Store是SQL Server 2016里面新的功能,同時在微軟云Azure平臺上,也提供了該功能

Query Store是從內(nèi)存中讀取數(shù)據(jù),并異步寫入到Azure SQL Database的磁盤上的

這里我們假設(shè)一個場景,如果Azure SQL Databse的DTU利用率很高,我們?nèi)绾尾樵兂鼍唧w是哪些語句,占用了過多的資源呢?

1.首先,我們通過Azure Portal,查看到問題發(fā)生的時間,如下圖在9月2日的凌晨開始,發(fā)生了該問題

我們點(diǎn)擊下圖的紅色部分

2.DTU和CPU Time,DataIO都有關(guān)。我們點(diǎn)擊下圖的Add Metric

3.DTU是和CPU Time,Data IO疊加的因素,我們可以看到下面的CPU Time和DataIO都很高,

8點(diǎn)以后都是DATA IO

4.我們在本地PC上安裝SQL Server Management Studio,訪問上面的數(shù)據(jù)庫,并且找到Query Store

我們點(diǎn)擊下圖的Top Resource Consuming Queries

5.點(diǎn)擊上圖右上角的Config,設(shè)置查詢時間

6.在彈出的窗口中,選擇查詢時間,我們也可以使用默認(rèn)的

7.我們查詢CPU Time,Static 選擇Avg。可以查看到缺少索引

8.在下圖,我們右鍵Miss Index,設(shè)置索引

9.如果我們需要查詢所有缺少索引的表結(jié)構(gòu),可以在SSMS執(zhí)行下面的語句

Search Missing Index Directly

SELECT

  SUM(qrs.countexecutions) * AVG(qrs.avglogicalioreads) as estlogicalreads,

  SUM(qrs.countexecutions) AS sumexecutions,

  AVG(qrs.avglogicalioreads) AS avgavglogicalioreads,

  SUM(qsq.countcompiles) AS sumcompiles,

  (SELECT TOP 1 qsqt.querysqltext FROM sys.querystorequerytext qsqt

    WHERE qsqt.querytextid = MAX(qsq.querytextid)) AS querytext,

  TRYCONVERT(XML, (SELECT TOP 1 qsp2.queryplan from sys.querystoreplan qsp2

    WHERE qsp2.queryid=qsq.queryid

    ORDER BY qsp2.planid DESC)) AS queryplan,

  qsq.queryid,

  qsq.queryhash

FROM sys.querystorequery qsq

JOIN sys.querystoreplan qsp on qsq.queryid=qsp.queryid

CROSS APPLY (SELECT TRYCONVERT(XML, qsp.queryplan) AS queryplanxml) AS qpx

JOIN sys.querystoreruntimestats qrs on qsp.planid = qrs.planid

JOIN sys.querystoreruntimestatsinterval qsrsi on qrs.runtimestatsintervalid=qsrsi.runtimestatsintervalid

WHERE

  qsp.queryplan like N%MissingIndexes%

  and qsrsi.starttime = DATEADD(HH, 24, SYSDATETIME())

GROUP BY qsq.queryid, qsq.queryhash

ORDER BY estlogicalreads DESC

GO

10.如果我們發(fā)現(xiàn)數(shù)據(jù)庫發(fā)生死鎖,可以嘗試以下語句(master庫)執(zhí)行查看死鎖,更多信息可參考:https://blogs.msdn.microsoft.com/azuresqldbsupport/2017/04/19/deadlockanalysisforsqlazuredatabase/

WITH CTE AS (

   SELECT CAST(eventdata AS XML) AS [targetdataXML]

FROM sys.fnxetelemetryblobtargetreadfile(dl, null, null, null)

)

SELECT targetdataXML.value((/event/@timestamp)[1], DateTime2) AS Timestamp,

targetdataXML.query(/event/data[@name=xmlreport]/value/deadlock) AS deadlockxml,

targetdataXML.query(/event/data[@name=databasename]/value).value((/value)[1], nvarchar(100)) AS dbname

FROM CTE

11.當(dāng)我們需要手動Kill死鎖的Session時候,需要注意:當(dāng)前執(zhí)行完kill 會話后,為什么執(zhí)行kill語句完成,但查看會話進(jìn)程還在?

在執(zhí)行kill殺會話時候,命令執(zhí)行完成并不代表會話即時被kill掉,會話中有大事務(wù)操作的話,為保證數(shù)據(jù)的一致性,未提交的事務(wù)首先要做回滾,執(zhí)行回滾時間的依據(jù)事務(wù)操作的大小。

建議:一般在Kill會話,建議采用KILL session ID WITH STATUSONLY 方式,這樣我們在kill動作操作結(jié)束,可以實(shí)時看到當(dāng)前處理的進(jìn)度百分比。

詳細(xì)介紹可參考:https://docs.microsoft.com/zhcn/sql/tsql/languageelements/killtransactsql view=sqlserver2017


文章推薦
Google Play支付失敗問題解決,鴻蒙系統(tǒng)怎么裝google play
德國大型二手挖掘機(jī)進(jìn)口報關(guān),日本二手挖掘機(jī)報關(guān)流程
刺繡機(jī)怎樣成功清關(guān)報關(guān)
Google增強(qiáng)型轉(zhuǎn)化跟蹤入門指南,google搜索引擎優(yōu)化指標(biāo)


特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進(jìn)群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進(jìn)群
美國賣家交流群
加入
美國賣家交流群
掃碼進(jìn)群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
ESG獨(dú)家招商-PHH GROUP賣家交流群
加入
ESG獨(dú)家招商-PHH GROUP賣家交流群
掃碼進(jìn)群
2025跨境電商營銷日歷
《2024年全球消費(fèi)趨勢白皮書——美國篇》
《2024TikTok出海達(dá)人營銷白皮書》
《Coupang自注冊指南》
《eMAG知識百科》
《TikTok官方運(yùn)營干貨合集》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《TikTok綜合運(yùn)營手冊》
《TikTok短視頻運(yùn)營手冊》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運(yùn)營實(shí)操指導(dǎo)
運(yùn)營提效資源福利
平臺官方專屬優(yōu)惠

立即登記,定期獲得更多資訊

訂閱
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機(jī)入駐更便捷

icon icon

返回頂部

【免費(fèi)領(lǐng)取】全球跨境電商運(yùn)營干貨 關(guān)閉
進(jìn)行中
進(jìn)行中
2025跨境電商營銷日歷
包括傳統(tǒng)中、外重要節(jié)日及重點(diǎn)電商營銷節(jié)點(diǎn)還對營銷關(guān)鍵市場、選品輔以說明,讓你的365天安排的明明白白!
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
【平臺干貨】eMAG知識百科
涵蓋從開店到大賣6個板塊:開店、運(yùn)營、廣告、選品、上架、物流
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
TikTok運(yùn)營必備干貨包
包含8個TikTok最新運(yùn)營指南(市場趨勢、運(yùn)營手冊、節(jié)日攻略等),官方出品,專業(yè)全面!
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
韓國coupang平臺自注冊指南
韓國Coupang電商平臺從注冊準(zhǔn)備、提交申請到完成注冊,開店全流程詳細(xì)指引。
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺詳解——全球合集
涵括全球100+個電商平臺的核心信息,包括平臺精煉簡介、競爭優(yōu)勢、熱銷品類、入駐要求以及入駐須知等關(guān)鍵內(nèi)容。
立即領(lǐng)取
進(jìn)行中
進(jìn)行中
韓國電商節(jié)日營銷指南
10+韓國電商重要營銷節(jié)點(diǎn)詳細(xì)解讀;2024各節(jié)日熱度選品助力引爆訂單增長;8大節(jié)日營銷技巧輕松撬動大促流量密碼。
免費(fèi)領(lǐng)取
進(jìn)行中
進(jìn)行中
全球平臺詳解——?dú)W洲篇
涵蓋20+歐洲電商平臺,詳細(xì)解讀優(yōu)勢、入駐條件、熱銷品等
立即領(lǐng)取