成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

以Oracle為例聊聊DBA需要的常用數據庫TRACE

數據庫 Oracle
從tree dump里,我們可以看到枝節點和葉節點的信息,了解樹的高度(level),從而了解樹的傾斜情況。如果Level過大了,那么肯定是存在問題的。一般情況下,索引樹的高度頂多也就是3-4層,如果索引很小,層數很高,那么你就可以試試是否能通過rebulid來優化索引了。

端午假期外加孩子高考正好這幾天出成績,因此幾天都沒有動筆了。這幾天確實很焦慮,心比較亂,所以也沒有心思寫東西。昨天廣東高考分數發布,一塊大石頭也落了地。孩子不是學霸型的,所以期望也沒有那么高,總的來說還算是正常發揮。接下來的志愿填寫工作量還是不小的,雖然提前研究了一些學校,到了要真正報考的時候,還是有大量的工作要做的。

圖片

這兩天除了在網上查看電子資料外,“大厚本”也是必須去認真翻閱的資料。對于如此眾多的數據需要人工分析,我都有了一種寫個PYTHON工具來分析這些數據的沖動。后來考慮到只有一個孩子,這幾天報考時間,等我寫出來黃花菜都涼了,就打消了這個念頭。不過我想如果有人把這些數據都收集起來,訓練一個大語言模型,用來對外提供咨詢服務,也許還真的能賺到錢。

還是回歸正題,前兩天在談數據庫可觀測性中的TRACE,可能有些朋友對TRACE關注不多,甚至對于TRACE和日志這兩種數據庫可觀測性能力也有點模糊。數據庫的TRACE很可能在日志中生成,而且TRACE也可能是在數據庫出現某種現象時產生的,但是TRACE和日志是數據庫可觀測性方面的兩個不同的領域。

數據庫日志是記錄數據庫的正常行為的,包括數據庫遇到BUG,遇到故障時,都是通過記錄日志的方式讓使用者了解情況。而TRACE往往是記錄一些特殊的信息,在數據庫正常運行時并不輸出這些信息,只有主動要求輸出日志,或者在分析某個問題或者調試某種應用時,才主動設置或者主動要求數據庫輸出這些信息。

從一個DBA的角度,我們需要數據庫擁有什么樣的TRACE能力呢?實際上Oracle數據庫為我們提供了一個十分好的樣板。這些年來,處理各種疑難雜癥的時候,我經常會用到TRACE,因此在這方面也有些經驗,今天我把這些經驗總結一下,一方面也為DBA們提供一些分析Oracle數據庫的思路,另外一方面也給我們的國產數據庫提一些需求。

作為DBA,我們最需要的TRACE能力可能就是知道SQL語句是如何運行的,執行計劃是如何產生的。如果我們遇到某條SQL,訪問的數據也沒啥變化,不過今天突然執行變慢了,我們需要了解慢的原因。這時候我們就需要了解這條SQL的執行的詳細情況了。Oracle數據庫的10046 trace是二十年前DBA擁有的核武器級別的TRACE工具,哪個DBA掌握了10046 trace,就能夠分析與解決一些別的DBA解決不了的問題。

圖片

10046 trace可以把SQL執行的黑匣子打開,讓DBA知道一條SQL是如何執行的,調用了哪些遞歸調用,執行過程中掃描了哪些數據塊,掃描效率如何,哪些地方產生了等待。另外還可以看到SQL的完整執行計劃,了解SQL的執行計劃是否出現了問題。

除此之外,在SQL解析的時候,有時候會選擇錯誤的執行計劃,因此我們需要去了解某種錯誤的執行計劃是如何產生的,因此我們需要類似Oracle 10053 trace這樣的分析能力。Oracle 10053可以讓我們知道一條SQL的執行計劃產生的細節,通過這些細節,我們可以發現數據庫選擇錯誤執行計劃的原因,從而讓我們找到解決此類問題的方法。

SQL TRACE的功能可以讓我們從SQL實際執行情況和SQL產生執行計劃的過程來了解數據庫SQL執行的詳細情況,從而幫我們定位問題。對于國產數據庫來說,SQL及SQL優化是十分重要的工作,因此這個功能是國產數據庫中急需的功能。目前有些國產數據庫已經具有了此類TRACE的能力,比如MogDB中目前已經實現了類似Oracle 10046、10053 trace的功能。

除了SQL TRACE的功能之外,還有一個DBA十分需要的trace工具就是treedump。Treedump是用來DUMP索引的樹信息的。與表不同,索引組織的數據結構經常會出現節點分裂,因此很容易出現碎片。當索引碎片嚴重的時候,索引掃描的性能會受到很大的影響。因此了解索引碎片的情況,從而制定重建計劃對于DBA來說十分重要。十年前我曾經和一個銀行的IT主管談到過這個話題,后來他組織了一次核心賬務系統的索引重建。重建后效果十分驚人,他們發現核心交易的延時都提高了15%左右。做索引treedump的命令如下:

ALTER SESSION SET EVENTS 'immediate trace name TREEDUMP level            '。     

我們可以在會話上直接DUMP某個索引的樹結構,參數是需要dump的索引的OBJECT ID。今天早上我沒時間做實驗了,所以直接從網上找了一個數據展示給大家:

圖片

從tree dump里,我們可以看到枝節點和葉節點的信息,了解樹的高度(level),從而了解樹的傾斜情況。如果Level過大了,那么肯定是存在問題的。一般情況下,索引樹的高度頂多也就是3-4層,如果索引很小,層數很高,那么你就可以試試是否能通過rebulid來優化索引了。

除了上面的幾個日常經常會用到的TRACE工具外,DBA經常還需要分析數據庫中是否存在一些不合理的等待事件鏈。Hanganalyze是我在運維Oracle數據庫的時候最經常使用的TRACE工具。當用戶的數據庫變慢,出現卡頓,鎖死等情況的時候,我都會首先建議用戶做一個3級的Hanganalyze,通過做幾個Hanganalyze可以看出系統是否真正鎖死,還是處于緩慢等待狀態。主要的等待是什么,從而找到進一步分析問題的方法。

圖片

我貼的這張圖已經比較老了,是十多年前的,現在的HANGANALYZE REPORT的可讀性要好了很多。不過從老版本的報告中我們也很容易發現系統中出現的一場等待。

除了上面所說的幾個TRACE工具外,會話DUMP,內存使用情況DUMP,數據塊DUMP等也是運維人員十分常用的數據庫診斷分析工具。實際上TRACE工具都是DBA遇到一些復雜問題的時候需要使用的工具。目前國產數據庫在一些國產化替代的場景中已經是能用了,不過談不上能讓用戶用得很好。要想讓用戶用得好,除了加強核心的穩定性與能力外,外圍工具也十分重要。一個數據庫產品想要在短時間內大幅提升核心的水平,難度很大,而把這些外圍工具做好實際上是力所能及的。我也十分希望國產數據庫廠商能在這些TRACE工具上面多下點工夫,讓用戶能夠從國產數據庫的黑盒子里獲得一些有用的運維數據。

責任編輯:武曉燕 來源: 白鱔的洞穴
相關推薦

2011-08-04 09:57:03

dbmonsterMySQL

2010-04-27 13:49:04

Oracle數據庫

2010-04-06 16:50:07

Oracle數據庫

2011-02-25 15:31:19

MySQL數據庫DBA

2010-04-06 13:07:45

Oracle數據庫

2010-04-06 11:02:30

Oracle 數據庫

2018-03-08 18:00:21

數據庫MySQL數據庫軍規

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2011-05-26 14:31:57

Oracle數據庫

2011-08-18 16:42:04

Oracle數據庫維護SQL代碼示例

2010-04-22 09:42:00

2023-12-26 07:40:34

2010-04-15 10:51:52

2010-04-06 13:22:24

Oracle數據庫

2010-04-23 17:55:25

Oracle數據庫

2010-04-19 15:01:10

Oracle數據庫

2010-04-15 15:52:12

Oracle數據庫

2023-01-06 08:31:53

數據庫基準測試

2024-10-12 15:29:56

2023-01-26 00:18:53

云原生數據庫云資源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美综合自拍 | 久久久久久久91 | 毛片电影 | 亚洲一区二区在线播放 | 欧美日韩国产高清视频 | 亚洲综合色视频在线观看 | 黄色片a级 | 国产欧美精品一区二区三区 | 在线a视频网站 | 一级做a| 久久av网站 | 国产精品欧美一区喷水 | 久久网一区二区 | 黄色成人在线网站 | 亚洲成人日韩 | 中文在线日韩 | 一区二区三区免费 | 精品久久影院 | 国产精品一区二区视频 | 日本一二区视频 | 亚洲精品一区中文字幕 | 国产成人a亚洲精品 | 国产精品视频999 | 91精品国产色综合久久不卡蜜臀 | 国产精品成人一区二区三区 | 午夜精品久久久久久久星辰影院 | 免费在线色| 午夜精品一区 | 亚洲视频一区在线观看 | 91精品久久久久久久久 | 免费在线黄 | 精品国产鲁一鲁一区二区张丽 | 欧美一区二区三区国产精品 | 亚洲综合天堂 | 精品欧美一区二区三区久久久 | 狠狠撸在线视频 | 久久久精品一区 | 精品久久一区 | 日韩国产一区二区三区 | 久久成人综合 | 久草免费在线视频 |