国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一個真實案例,教會你數(shù)據(jù)庫性能調(diào)優(yōu)

數(shù)據(jù)庫
微軟工程師的一個工程師曾經(jīng)對性能調(diào)優(yōu)有一個非常形象的比喻:剝洋蔥 。我也非常認可,讓我們來一層一層撥開外面它神秘的面紗。

前言

微軟工程師的一個工程師曾經(jīng)對性能調(diào)優(yōu)有一個非常形象的比喻:剝洋蔥 。我也非常認可,讓我們來一層一層撥開外面它神秘的面紗。

[[217135]]

六大因素

下面祭出的是我們在給客戶分析數(shù)據(jù)庫性能問題最常用的圖。

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

看完這個圖,你是不是對性能調(diào)優(yōu)有了個基本的概念了。通常來講,我們會依照下面的順序來進行分析:

  • 硬件能力

  • 系統(tǒng)規(guī)模

  • 數(shù)據(jù)庫內(nèi)部因素

  • 軟件環(huán)境

這4個的順序可以有所調(diào)整或者交換,但是對于系統(tǒng)的性能優(yōu)化一定要從全局出發(fā)切勿一來就深入到某一個SQL語句的優(yōu)化,因為可能你花費大量的時間把一個SQL從20s 優(yōu)化到1s,但是整個系統(tǒng)的卡慢仍然存在。

***才是:

  • 業(yè)務(wù)模型及架構(gòu)

  • 代碼設(shè)計

實戰(zhàn)案例

不廢話了,開整開整,直接上干貨。

時間:2018年1月某天

事件:某醫(yī)院客戶 下午4點 突然出現(xiàn)大面積的卡慢。整個系統(tǒng)出現(xiàn)嚴重問題,信息中心電話打爆,醫(yī)院工程師手足無措。

萬幸的是我們給數(shù)據(jù)庫裝了‘攝像頭’,下面就從監(jiān)控錄像來看看發(fā)送了什么。然后加以解決。

硬件能力

CPU

在問題發(fā)生時間段內(nèi)CPU使用率在20%以下,正常。

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

Memory

從下面的圖像顯示,內(nèi)存使用正常。

頁生命周期

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

可用內(nèi)存

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

IO

IO隊列平均值很低,15.48 左右有個瞬時的高點,可留意這段時間有沒有批量的寫入。

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

總的來看,硬件資源是足夠的。

系統(tǒng)規(guī)模

問題發(fā)生時,每秒的批請求數(shù)并不是一個上升趨勢,反而有所下降。這是因為系統(tǒng)的擁堵,等待 ,影響了系統(tǒng)的吞吐量。

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

數(shù)據(jù)庫內(nèi)部因素

等待

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

慢語句

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

從會話和慢語句的趨勢圖可以看到,問題發(fā)生的時間和客戶描述完全吻合,我們可以斷定本身事故的確是慢在數(shù)據(jù)庫。

什么導(dǎo)致的慢

檢查者個時間段運行中的語句,可以發(fā)現(xiàn)下午15.58左右,數(shù)據(jù)庫中開始出現(xiàn)越來越多的CMEMTHREAD等待。

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

一直到1900頁16.08分的時候,出現(xiàn)了***達100個并發(fā)同時出現(xiàn)CMEMTHREAD等待。

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

什么是CMEMTHREAD等待

微軟官方的描述:在任務(wù)正在等待線程安全的內(nèi)存對象時發(fā)生。 當多個任務(wù)嘗試從同一個內(nèi)存對象分配內(nèi)存導(dǎo)致爭用時,等待時間可能會增加。

這個描述很晦澀,感覺還是完全不知道等待類型是怎么回事,應(yīng)該怎么處理這類問題。

實際上,從官方描述來看是內(nèi)存爭用的問題,但是實際上這個問題的關(guān)鍵在于多個任務(wù)的爭用,實際上是并發(fā)的執(zhí)行的問題。

場景

  1. 出現(xiàn)在數(shù)據(jù)庫編譯或重編譯時,將即席執(zhí)行計劃ad hoc plans 插入到計劃緩存中的時候

  2. NUMA架構(gòu)下,內(nèi)存對象是按照節(jié)點來分區(qū)的

內(nèi)存對象有三種類型的(Global,Per Numa Node,Per CPU)。 SQL Server將允許對內(nèi)存對象進行分段,以便只有同一節(jié)點或CPU上的線程具有相同的底層CMemObj,從而減少來自其他節(jié)點或cpu的線程交互,從而提高性能和可伸縮性。減少內(nèi)存的并發(fā)爭用。

  1. SELECT  
  2. type, pages_in_bytes,  
  3. CASE 
  4.  
  5. WHEN (0x20 = creation_options & 0x20) THEN 'Global PMO. Cannot be partitioned by CPU/NUMA Node. TF 8048 not applicable.'  
  6. WHEN (0x40 = creation_options & 0x40) THEN 'Partitioned by CPU.TF 8048 not applicable.'  
  7. WHEN (0x80 = creation_options & 0x80) THEN 'Partitioned by Node. Use TF 8048 to further partition by CPU' 
  8.  
  9. ELSE 'UNKNOWN'  
  10. END 
  11.  
  12. from sys.dm_os_memory_objects  
  13. order by pages_in_bytes desc 

如果你發(fā)現(xiàn),Partitioned by Node 的內(nèi)存開銷是排在前面的,可以使用TRACE FLAG 8048來減少CMEMTHREAD等待。

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

從圖中可以看到,客戶的 Partitioned by Node 是比較靠后的,排在14位。

3. 補丁

這類場景是最常見的。如果在系統(tǒng)中發(fā)現(xiàn)出現(xiàn)大量的CMEMTHREAD等待,優(yōu)先考慮數(shù)據(jù)庫是不是已經(jīng)安裝***的補丁。

2008 r2: FIX: SQL Server 2008 R2 performs poorly when most threads wait for the CMEMTHREAD wait type if the threads use table variables or temp tables to load or update rowsets

2012 ,2014 當您執(zhí)行許多特殊查詢在 SQL Server 2012年或 SQL Server 2014 CMEMTHREAD 等待。

軟硬件環(huán)境

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

目前數(shù)據(jù)庫的版本是 11.0.5556.0 而前面提到的補丁,安裝后的版本是:11.0.5623.0

代碼設(shè)計

是什么語句產(chǎn)生了等待。

都是類似下面的語句,***時,并發(fā)超過100。

SELECT

* INTO #Tmp from TB where 1=2

特點如下:

1.語句簡單 開銷都小于5不會產(chǎn)生并行。

2.都采用了select into #temptable的形式。

就像上面分析的一樣,CMEMTHREAD等待是一個并發(fā)問題,而不是一個內(nèi)存問題。在其他方案行不通的時候,我們可以通過調(diào)整此類語句的寫法,減少CMEMTHREAD等待.

業(yè)務(wù)模型及架構(gòu)

目前系統(tǒng)是單機運行的狀態(tài),這其實是很少見的。存在少量OLAP 和OLTP業(yè)務(wù)混合的情況。后續(xù)我們會給客戶規(guī)劃 讀寫分離 或者負載均衡的解決方案。

解決方案

安裝***的補丁

至少需要安裝前面發(fā)的解決等待問題的FIX。建議是直接安裝到目前為止***的2012 SP4補丁。

修改參數(shù)

optimize for ad hoc workloads 從0修改為1 。針對將即席執(zhí)行計劃ad hoc plans 插入到計劃緩存中的時候場景,減少ad hoc 查詢占用的內(nèi)存。

增加TEMPDB數(shù)據(jù)文件的個數(shù)

select * into #temptable 會產(chǎn)生大量的閂鎖爭用,防止在CMEMTHREAD 等待消除后,出現(xiàn)大量的pagelatch 閂鎖爭用。我經(jīng)歷過很多案例,解決了前面的一個擁堵之后,后面有產(chǎn)生了新的等待,導(dǎo)致性能更差了。請記住,優(yōu)化是一個長期的,循序漸進的過程。

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

遷移TEMPDB數(shù)據(jù)文件的位置

目前部分tempdb文件放在S,一般分放在D盤。建議都遷移到S盤(存儲上面),增加tempdb的響應(yīng)速度。如果可能的話,使用SSD來***化tempdb的性能,將會是不錯的選擇。

優(yōu)化程序的代碼

修改代碼通常都是放在***面的,因為要牽涉的情況比較多。前面的手段80%的情況下,都可以解決問題。剩下的20%,我們需要,檢查程序中的邏輯,看看這些的語句都是什么業(yè)務(wù)產(chǎn)生的。什么條件會觸發(fā)這類業(yè)務(wù).對應(yīng)下面類似的語句都使用存儲過程,或者參數(shù)化后的方式,減少編譯和重編譯的次數(shù)。另外此類語句都會并發(fā)創(chuàng)建臨時表,可能通過調(diào)整tempdb的設(shè)置,加快此類語句的執(zhí)行速度,減少同一時間此類語句的并發(fā)數(shù)量。

優(yōu)化效果

經(jīng)過前面的幾個優(yōu)化手段,第二天開始,沒有再出現(xiàn)過一次CMEMTHREAD的等待。

等待

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

慢語句

一個真實案例 教會你數(shù)據(jù)庫性能調(diào)優(yōu)

總結(jié)

通過這篇文件你應(yīng)該已經(jīng)完全學會了數(shù)據(jù)庫性能調(diào)優(yōu)的思想。他告訴了我們出現(xiàn)問題時,怎么動手一步一步的排查問題,就像剝洋蔥一樣一層一層的剝開。

參考

微軟官方博客對這類等待的原理和如何調(diào)試:How It Works: CMemThread and Debugging Them

SQL Server 2016 對這里問題進行了進一步的優(yōu)化,詳細參考:SQL 2016 – It Just Runs Faster: Dynamic Memory Object (CMemThread) Partitioning 

責任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2011-07-08 16:02:54

HBase

2023-04-03 10:25:00

數(shù)據(jù)庫性能調(diào)優(yōu)

2021-01-25 09:20:04

數(shù)據(jù)庫架構(gòu)分布式

2010-05-04 17:08:24

Oracle數(shù)據(jù)庫

2019-08-13 08:32:14

MySQL數(shù)據(jù)庫性能調(diào)優(yōu)

2010-04-07 13:32:39

Oracle調(diào)優(yōu)

2022-05-10 10:02:51

openGauss性能調(diào)優(yōu)數(shù)據(jù)庫

2011-04-25 09:12:47

LinuxIO數(shù)據(jù)庫

2022-03-24 10:57:18

數(shù)據(jù)庫MySQLSQL

2023-06-05 09:17:50

SQLAlchemy關(guān)系型數(shù)據(jù)庫

2021-12-29 08:21:01

Performance優(yōu)化案例工具

2010-03-10 11:29:47

MySQL數(shù)據(jù)庫性能調(diào)

2022-08-13 12:28:11

MySQL性能調(diào)優(yōu)Explain

2011-04-18 13:46:24

數(shù)據(jù)庫設(shè)計

2020-11-09 07:34:49

JVM性能監(jiān)控

2011-08-15 18:09:46

查詢性能調(diào)優(yōu)索引優(yōu)化

2017-07-21 08:55:13

TomcatJVM容器

2023-02-07 08:00:00

MySQL數(shù)據(jù)庫技巧

2011-04-18 13:12:01

數(shù)據(jù)庫索引

2011-04-18 13:23:46

數(shù)據(jù)庫查詢
點贊
收藏

51CTO技術(shù)棧公眾號

久久久久久久欧美精品| 久久久久久黄色| 亚洲国产天堂久久综合网| av动漫在线免费观看| 色婷婷热久久| 精品国产91久久久久久浪潮蜜月| 高清一区二区三区日本久| 国产在线视频网| 国产成人av电影在线观看| 91亚洲国产成人久久精品网站| 色香欲www7777综合网| 欧美视频在线免费看| 无码人妻精品一区二区三区66| 日韩中文字幕不卡| 91久久精品国产| 97se亚洲| 国产香蕉一区二区三区在线视频 | 久久综合久久88| 黄色免费在线看| 亚洲一区精品在线| 国产免费黄色av| 麻豆91小视频| 久久草视频在线看| 亚洲先锋影音| 日本精品在线视频| 成年永久一区二区三区免费视频| 欧美肥胖老妇做爰| 国产毛片视频| 国产精品蜜臀av| 日韩小视频在线播放| 精品一区二区三区在线播放 | 欧美专区在线观看一区| 国产日韩欧美久久| 国产亚洲综合av| 隔壁人妻偷人bd中字| 麻豆精品一区二区av白丝在线| 国产日韩欧美精品| 欧美黄色免费| 97人人模人人爽人人少妇| 国产探花一区在线观看| 久久久人成影片一区二区三区观看| 欧美最新精品| 国产一区二区三区在线观看网站| 理论不卡电影大全神| 精品日韩一区二区三区| 日本福利专区在线观看| 在线视频一区二区三| 色视频在线看| 欧美专区日韩专区| 午夜视频在线看| 日韩视频一区二区三区在线播放| 91精选在线| 日韩黄在线观看| 深夜福利视频一区二区| 国产一区二区三区四区福利| 亚洲一区站长工具| 欧美精品一级| 日本久久亚洲电影| 色天天综合网| 国产精品一级久久久| 亚洲片区在线| 国产一区在线免费| 美女日韩在线中文字幕| 日本日本精品二区免费| 亚洲每日更新| 免费观看日韩毛片| 亚洲精品视频在线观看免费| 怡红院在线播放| 精品国产一区二区三区久久久狼| 国产精品久久久久久妇女| 欧美床上激情在线观看| 精品久久美女| 亚洲免费在线精品一区| 成人av免费观看| 毛片av免费在线观看| 亚洲一区二区三区四区在线| 久草免费在线| 欧美制服第一页| 国产农村妇女精品一区二区| 青草青青在线视频| 一区二区成人在线视频 | 日本视频在线观看| 亚洲欧美精品一区二区| 成人在线免费视频观看| 欧美日韩精品久久久免费观看| 国产欧美日韩综合| sese在线视频| 在线播放国产精品| 狠狠噜噜久久| 国产毛片久久久久久国产毛片| 日本韩国欧美在线| 日韩av懂色| 国产日韩精品视频| 黄一区二区三区| 91福利电影| 中文字幕一区电影| 欧美福利一区| 青青在线视频免费| 91国偷自产一区二区三区成为亚洲经典 | 欧美一级大片在线观看| 日本亚洲天堂网| 鲁一鲁一鲁一鲁一av| 婷婷综合久久一区二区三区| 国产高清视频一区二区| 国产精品久久久久久久免费大片| 自拍偷拍欧美激情| av漫画网站在线观看| 国产精品青草久久久久福利99| 天堂va蜜桃一区二区三区漫画版| 国产日韩成人内射视频| 7777精品伊人久久久大香线蕉超级流畅 | 2019中文字幕在线| 噜噜噜在线观看免费视频日韩| 久久网站免费视频| 欧美精品乱码久久久久久| 久久三级中文| 精品一区二区久久久久久久网站| 久久久亚洲精品石原莉奈 | 97福利电影| 日韩精品在线视频观看| 午夜av一区| 97视频在线免费播放| 欧美裸体一区二区三区| 77成人影视| 日韩精品欧美一区二区三区| 亚洲日本一区二区| 日韩美女在线看免费观看| 99久久国产免费免费| 日韩理论片中文av| 国产成人精品一区二区三区免费| 国产亚洲午夜高清国产拍精品| 国产欧洲在线| 51成人做爰www免费看网站| 激情成人中文字幕| 全国精品免费看| 欧美lavv| 欧美剧在线免费观看网站| 国产伦一区二区三区| 最近中文字幕mv第三季歌词| 欧美大片大片在线播放| 国产日韩欧美一区二区三区乱码 | 国产精品美女久久久久av爽李琼 | 国产精品一区二区久久| 玉米视频成人免费看| 国产精品久久久久久久久久辛辛 | 午夜在线激情影院| 亚洲综合av影视| 中文字幕欧美三区| 粉嫩91精品久久久久久久99蜜桃 | 99不卡视频| 国产精品吴梦梦| 91福利精品第一导航| 亚洲久久成人| 丁香花在线高清完整版视频| 亚洲国产一二三精品无码| 色yeye香蕉凹凸一区二区av| www成人在线观看| 国产探花在线精品| av中文天堂在线| 国产成人一二三区| 性欧美xxxx| 欧洲一区在线电影| 国产一区二区三区综合| 成人永久在线| 一级视频在线免费观看| 日韩三级电影| 国内精品模特av私拍在线观看| 欧美日韩免费在线观看| 日韩中文字幕不卡| 91国产精品| 在线观看av每日更新免费| 亚洲精品人成| 欧美激情欧美激情在线五月| 色婷婷精品大在线视频| 国产麻豆欧美日韩一区| 欧美三级午夜理伦三级小说| 久久免费高清| 久久久欧美精品sm网站| 久久久99免费| 5月婷婷6月丁香| 国产欧美精品久久久| 制服丝袜激情欧洲亚洲| 成人av在线影院| 成人激情免费视频| 福利小视频在线| 成人黄色影视| 亚洲国产日韩美| 日本91av在线播放| 91精品国产91久久久久久一区二区| 狠狠色狠狠色合久久伊人| 免费成人高清在线视频theav| 超碰最新在线| 亚洲精品自拍网| 欧美一级爽aaaaa大片| 欧美激情一区二区三区高清视频| 欧美日韩aaa| 一区二区三区不卡视频在线观看| 奇米色一区二区三区四区| 国产成人久久| 午夜不卡一区|