成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Oracle之系統(tǒng)統(tǒng)計信息

IT那活兒 / 2063人閱讀
Oracle之系統(tǒng)統(tǒng)計信息

點擊上方“IT那活兒”,關注后了解更多精彩內容?。。?/span>

指縫太寬,時光太瘦。轉眼間,我們又迎來了天寒地凍的冷冬—小雪。你,還記得小時候看到雪的樣子嗎?

雪后,放下手中的電腦,陪家人做一餐飯,逛一逛街;約上三五好友聚上一聚,豈不美哉!

該醒醒了,起來干活!

事件背景

2021年11月1日月初保障,某營業(yè)商業(yè)務側反饋凌晨營業(yè)B庫某進程執(zhí)行效率較營業(yè)A庫慢很多,經(jīng)分析是同一個SQL(sql_id:  gucsa3276bhgx)在營業(yè)AB庫執(zhí)行計劃不一樣,營業(yè)A該SQL走了TBCS.SUBS_PRODUCT的PRODID列的索引,而營業(yè)B的執(zhí)行計劃卻走了全表掃描(453GB),在RAC的一個節(jié)點去掃描一個453GB的表導致數(shù)據(jù)庫性能嚴重下降。
在這里說明一下,營業(yè)A庫和營業(yè)B庫業(yè)務邏輯完全一樣,只是地市不同而已。
進一步分析檢查營業(yè)A、營業(yè)B 都是相同的采樣比(5%),在BCV測試環(huán)境嘗試收集30%的采樣后,依然不走索引,經(jīng)分析因為營業(yè)B庫Oracle 的優(yōu)化器CBO 系統(tǒng)統(tǒng)計信息過于陳舊,導致CBO無法精確的評估cpu和io的cost,導致優(yōu)化器選擇錯誤的表連接方式(營業(yè)A 選擇了NL、營業(yè)B選擇了HASH連接)以及執(zhí)行計劃錯誤。最終導致AB庫的執(zhí)行計劃不一樣。

系統(tǒng)統(tǒng)計信息和優(yōu)化器概念

分析之前,我們來看下oracle系統(tǒng)統(tǒng)計信息和優(yōu)化器的概念。
oracle優(yōu)化器(optimizer)是oracle數(shù)據(jù)庫內置的一個核心子系統(tǒng)。優(yōu)化器的目的是按照一定的判斷原則來得到它認為的目標SQL在當前的情形下的最高效的執(zhí)行路徑,也就是最佳執(zhí)行計劃。以目前最常用的CBO為例,CBO以目標SQL成本為判斷原則,通過目標SQL語句所涉及的表、索引、列、系統(tǒng)等的統(tǒng)計信息算出各條執(zhí)行路徑的成本,從而選擇成本最小的執(zhí)行計劃作為SQL的執(zhí)行計劃。
Oracle優(yōu)化器統(tǒng)計信息包括:
No1. 表的統(tǒng)計信息
  • 行數(shù)
  • Block數(shù)
  • 行平均長度
No2. 列的統(tǒng)計信息
  • 列中不同值的數(shù)量
  • 列中null的數(shù)量
  • 數(shù)據(jù)分布(柱狀圖/直方圖)
No3. 索引的統(tǒng)計信息
  • 葉子塊的數(shù)量
  • 索引的高度
  • 聚簇因子(clustering factor)
No4. 系統(tǒng)的統(tǒng)計信息
  • I/O性能和利用
  • CPU性能和利用
其中系統(tǒng)統(tǒng)計信息背后的概念是衡量系統(tǒng) CPU 和存儲子系統(tǒng)(如 NAS、SAN、JBOD 或閃存)的性能,并在計算替代 SQL 執(zhí)行計劃的成本時使用這些信息。當數(shù)據(jù)庫知道存儲和 CPU 的實際速度有多快,它才可以對每個替代計劃的成本做出更精細的判斷。

問題分析

下面是重頭戲,看分析過程。
1  營業(yè)AB庫執(zhí)行計劃對比
營業(yè)A庫
營業(yè)B
營業(yè)AB庫執(zhí)行計劃確實不一致,按經(jīng)驗可以確定是某一塊統(tǒng)計信息有誤導致。
2  營業(yè)AB庫統(tǒng)計信息采樣對比
營業(yè)A
營業(yè)B
AB庫統(tǒng)計信息采樣比是一樣的,但執(zhí)行計劃卻不一樣,在BCV庫嘗試收集了30%的采樣比,B庫仍然不會走索引,說明表和列本身的統(tǒng)計信息應該沒有問題,于是做了一個優(yōu)化器的trace。
營業(yè)A
營業(yè)B
從優(yōu)化器的trace來看,經(jīng)過復雜的cost計算后,營業(yè)A庫認為NL關聯(lián)為最優(yōu),而營業(yè)B庫則認為Hash關聯(lián)為最優(yōu)。
3  嘗試強制指定hint 
嘗試強制去指定驅動表,更改營業(yè)B庫表的連接方式:
執(zhí)行計劃:
可以看到執(zhí)行計劃走了正確的索引,說明索引的統(tǒng)計信息也無問題。
4  嘗試修改IO的cost
通過修改參數(shù)db_file_multiblock_read_count為8(原先為16),嘗試重新評估IO的cost,如下:
可以發(fā)現(xiàn)已走正確的執(zhí)行計劃,說明IO的統(tǒng)計信息可能有誤,檢查CBO的系統(tǒng)統(tǒng)計信息,發(fā)現(xiàn)B庫是2018年收集的,統(tǒng)計信息過于陳舊。
檢查營業(yè)A庫的系統(tǒng)統(tǒng)計信息是2014年收集的。
--重新收集CBO優(yōu)化器系統(tǒng)統(tǒng)計信息
EXEC DBMS_STATS.GATHER_SYSTEM_STATS;
再次查看執(zhí)行計劃:
營業(yè)B庫該SQL已經(jīng)可以走正確的執(zhí)行計劃。

問題總結

綜上所述,可以看出由于營業(yè)B庫優(yōu)化器的系統(tǒng)統(tǒng)計信息不準,引起SQL語句(sql_id:  gucsa3276bhgx)執(zhí)行計劃產(chǎn)生偏差
一般來說,數(shù)據(jù)庫的系統(tǒng)統(tǒng)計信息只有在主機cpu、內存、存儲、操作系統(tǒng)等有進行升級替換的時候才需要重新收集,如下圖,可以使用命令進行手動收集,在BCV庫測試后,可以發(fā)現(xiàn)IOSEEKTIM(IO尋址時間(毫秒))由6變?yōu)?0,IOTFRSPEED(IO傳輸速率(字節(jié)/毫秒))由54682變?yōu)?096,和營業(yè)A庫一致。但如無異常情況,不建議手動收集系統(tǒng)統(tǒng)計信息,避免帶來未知的風險??紤]到系統(tǒng)統(tǒng)計信息重新收集后,可能影響較多的SQL執(zhí)行計劃,建議可以先對問題SQL進行sqlprofile綁定執(zhí)行計劃。

參數(shù)解釋如下:

FLAGS:標志

CPUSPEEDNW:非工作量統(tǒng)計模式下CPU主頻,直接來自硬件

IOSEEKTIM:IO尋址時間(毫秒),直接來自硬件

IOTFRSPEED:IO傳輸速率(字節(jié)/毫秒)

SREADTIM:讀取單個數(shù)據(jù)塊的平均時間

MREADTIM:讀取多個數(shù)據(jù)塊的平均時間

CPUSPEED:工作量統(tǒng)計模式下CPU主頻,根據(jù)當前工作量評估出一個合理值

MBRC:oracle收集完統(tǒng)計信息后評估出的一次多塊讀可以讀幾個數(shù)據(jù)塊db_file_multiblock_read_count

MAXTHR:最大IO吞吐量(字節(jié)/秒)

SLAVETHR:平均IO吞吐量(字節(jié)/秒)

END



更多精彩干貨分享

點擊下方名片關注

IT那活兒

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/129738.html

相關文章

  • 程序員筆記|循序漸進解讀Oracle AWR性能分析報告

    摘要:表示用戶操作花費的時間,包括時間和等待事件。當內存中排序空間不足時,使用臨時表空間進行排序,這個是內存排序對總排序的百分比。過低說明有大量排序在臨時表空間進行。要確保,否則存在嚴重的性能問題,比如綁定等會影響該參數(shù)。 Oracle中的AWR,全稱為Automatic Workload Repository,自動負載信息庫。它收集關于特定數(shù)據(jù)庫的操作統(tǒng)計信息和其他統(tǒng)計信息,Oracle以...

    honhon 評論0 收藏0
  • 開源|性能優(yōu)化利器:數(shù)據(jù)庫審核平臺Themis的選型與實踐

    摘要:正是存在問題,促使我們考慮引入數(shù)據(jù)庫審核平臺。的確,與很多互聯(lián)網(wǎng)公司相比,數(shù)據(jù)庫數(shù)十套的估摸并不是太大但與互聯(lián)網(wǎng)類公司不同,類似宜信這類金融類公司對數(shù)據(jù)庫的依賴性更大,大量的應用是重數(shù)據(jù)庫類的,且其使用復雜程度也遠比互聯(lián)網(wǎng)類的復雜。 作者:韓鋒 出處:DBAplus社群分享 Themis開源地址:https://github.com/CreditEaseDBA 拓展閱讀:宜信開源|數(shù)...

    wenhai.he 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<