自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

以O(shè)racle為例聊聊DBA需要的常用數(shù)據(jù)庫(kù)TRACE

數(shù)據(jù)庫(kù) Oracle
從tree dump里,我們可以看到枝節(jié)點(diǎn)和葉節(jié)點(diǎn)的信息,了解樹(shù)的高度(level),從而了解樹(shù)的傾斜情況。如果Level過(guò)大了,那么肯定是存在問(wèn)題的。一般情況下,索引樹(shù)的高度頂多也就是3-4層,如果索引很小,層數(shù)很高,那么你就可以試試是否能通過(guò)rebulid來(lái)優(yōu)化索引了。

端午假期外加孩子高考正好這幾天出成績(jī),因此幾天都沒(méi)有動(dòng)筆了。這幾天確實(shí)很焦慮,心比較亂,所以也沒(méi)有心思寫東西。昨天廣東高考分?jǐn)?shù)發(fā)布,一塊大石頭也落了地。孩子不是學(xué)霸型的,所以期望也沒(méi)有那么高,總的來(lái)說(shuō)還算是正常發(fā)揮。接下來(lái)的志愿填寫工作量還是不小的,雖然提前研究了一些學(xué)校,到了要真正報(bào)考的時(shí)候,還是有大量的工作要做的。

圖片

這兩天除了在網(wǎng)上查看電子資料外,“大厚本”也是必須去認(rèn)真翻閱的資料。對(duì)于如此眾多的數(shù)據(jù)需要人工分析,我都有了一種寫個(gè)PYTHON工具來(lái)分析這些數(shù)據(jù)的沖動(dòng)。后來(lái)考慮到只有一個(gè)孩子,這幾天報(bào)考時(shí)間,等我寫出來(lái)黃花菜都涼了,就打消了這個(gè)念頭。不過(guò)我想如果有人把這些數(shù)據(jù)都收集起來(lái),訓(xùn)練一個(gè)大語(yǔ)言模型,用來(lái)對(duì)外提供咨詢服務(wù),也許還真的能賺到錢。

還是回歸正題,前兩天在談數(shù)據(jù)庫(kù)可觀測(cè)性中的TRACE,可能有些朋友對(duì)TRACE關(guān)注不多,甚至對(duì)于TRACE和日志這兩種數(shù)據(jù)庫(kù)可觀測(cè)性能力也有點(diǎn)模糊。數(shù)據(jù)庫(kù)的TRACE很可能在日志中生成,而且TRACE也可能是在數(shù)據(jù)庫(kù)出現(xiàn)某種現(xiàn)象時(shí)產(chǎn)生的,但是TRACE和日志是數(shù)據(jù)庫(kù)可觀測(cè)性方面的兩個(gè)不同的領(lǐng)域。

數(shù)據(jù)庫(kù)日志是記錄數(shù)據(jù)庫(kù)的正常行為的,包括數(shù)據(jù)庫(kù)遇到BUG,遇到故障時(shí),都是通過(guò)記錄日志的方式讓使用者了解情況。而TRACE往往是記錄一些特殊的信息,在數(shù)據(jù)庫(kù)正常運(yùn)行時(shí)并不輸出這些信息,只有主動(dòng)要求輸出日志,或者在分析某個(gè)問(wèn)題或者調(diào)試某種應(yīng)用時(shí),才主動(dòng)設(shè)置或者主動(dòng)要求數(shù)據(jù)庫(kù)輸出這些信息。

從一個(gè)DBA的角度,我們需要數(shù)據(jù)庫(kù)擁有什么樣的TRACE能力呢?實(shí)際上Oracle數(shù)據(jù)庫(kù)為我們提供了一個(gè)十分好的樣板。這些年來(lái),處理各種疑難雜癥的時(shí)候,我經(jīng)常會(huì)用到TRACE,因此在這方面也有些經(jīng)驗(yàn),今天我把這些經(jīng)驗(yàn)總結(jié)一下,一方面也為DBA們提供一些分析Oracle數(shù)據(jù)庫(kù)的思路,另外一方面也給我們的國(guó)產(chǎn)數(shù)據(jù)庫(kù)提一些需求。

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

圖片

10046 trace可以把SQL執(zhí)行的黑匣子打開(kāi),讓DBA知道一條SQL是如何執(zhí)行的,調(diào)用了哪些遞歸調(diào)用,執(zhí)行過(guò)程中掃描了哪些數(shù)據(jù)塊,掃描效率如何,哪些地方產(chǎn)生了等待。另外還可以看到SQL的完整執(zhí)行計(jì)劃,了解SQL的執(zhí)行計(jì)劃是否出現(xiàn)了問(wèn)題。

除此之外,在SQL解析的時(shí)候,有時(shí)候會(huì)選擇錯(cuò)誤的執(zhí)行計(jì)劃,因此我們需要去了解某種錯(cuò)誤的執(zhí)行計(jì)劃是如何產(chǎn)生的,因此我們需要類似Oracle 10053 trace這樣的分析能力。Oracle 10053可以讓我們知道一條SQL的執(zhí)行計(jì)劃產(chǎn)生的細(xì)節(jié),通過(guò)這些細(xì)節(jié),我們可以發(fā)現(xiàn)數(shù)據(jù)庫(kù)選擇錯(cuò)誤執(zhí)行計(jì)劃的原因,從而讓我們找到解決此類問(wèn)題的方法。

SQL TRACE的功能可以讓我們從SQL實(shí)際執(zhí)行情況和SQL產(chǎn)生執(zhí)行計(jì)劃的過(guò)程來(lái)了解數(shù)據(jù)庫(kù)SQL執(zhí)行的詳細(xì)情況,從而幫我們定位問(wèn)題。對(duì)于國(guó)產(chǎn)數(shù)據(jù)庫(kù)來(lái)說(shuō),SQL及SQL優(yōu)化是十分重要的工作,因此這個(gè)功能是國(guó)產(chǎn)數(shù)據(jù)庫(kù)中急需的功能。目前有些國(guó)產(chǎn)數(shù)據(jù)庫(kù)已經(jīng)具有了此類TRACE的能力,比如MogDB中目前已經(jīng)實(shí)現(xiàn)了類似Oracle 10046、10053 trace的功能。

除了SQL TRACE的功能之外,還有一個(gè)DBA十分需要的trace工具就是treedump。Treedump是用來(lái)DUMP索引的樹(shù)信息的。與表不同,索引組織的數(shù)據(jù)結(jié)構(gòu)經(jīng)常會(huì)出現(xiàn)節(jié)點(diǎn)分裂,因此很容易出現(xiàn)碎片。當(dāng)索引碎片嚴(yán)重的時(shí)候,索引掃描的性能會(huì)受到很大的影響。因此了解索引碎片的情況,從而制定重建計(jì)劃對(duì)于DBA來(lái)說(shuō)十分重要。十年前我曾經(jīng)和一個(gè)銀行的IT主管談到過(guò)這個(gè)話題,后來(lái)他組織了一次核心賬務(wù)系統(tǒng)的索引重建。重建后效果十分驚人,他們發(fā)現(xiàn)核心交易的延時(shí)都提高了15%左右。做索引treedump的命令如下:

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

我們可以在會(huì)話上直接DUMP某個(gè)索引的樹(shù)結(jié)構(gòu),參數(shù)是需要dump的索引的OBJECT ID。今天早上我沒(méi)時(shí)間做實(shí)驗(yàn)了,所以直接從網(wǎng)上找了一個(gè)數(shù)據(jù)展示給大家:

圖片

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

除了上面的幾個(gè)日常經(jīng)常會(huì)用到的TRACE工具外,DBA經(jīng)常還需要分析數(shù)據(jù)庫(kù)中是否存在一些不合理的等待事件鏈。Hanganalyze是我在運(yùn)維Oracle數(shù)據(jù)庫(kù)的時(shí)候最經(jīng)常使用的TRACE工具。當(dāng)用戶的數(shù)據(jù)庫(kù)變慢,出現(xiàn)卡頓,鎖死等情況的時(shí)候,我都會(huì)首先建議用戶做一個(gè)3級(jí)的Hanganalyze,通過(guò)做幾個(gè)Hanganalyze可以看出系統(tǒng)是否真正鎖死,還是處于緩慢等待狀態(tài)。主要的等待是什么,從而找到進(jìn)一步分析問(wèn)題的方法。

圖片

我貼的這張圖已經(jīng)比較老了,是十多年前的,現(xiàn)在的HANGANALYZE REPORT的可讀性要好了很多。不過(guò)從老版本的報(bào)告中我們也很容易發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的一場(chǎng)等待。

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

責(zé)任編輯:武曉燕 來(lái)源: 白鱔的洞穴
相關(guān)推薦

2011-08-04 09:57:03

dbmonsterMySQL

2010-04-27 13:49:04

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

2010-04-06 16:50:07

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

2011-02-25 15:31:19

MySQL數(shù)據(jù)庫(kù)DBA

2010-04-06 11:02:30

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

2010-04-06 13:07:45

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

2018-03-08 18:00:21

數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)軍規(guī)

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2010-04-22 09:42:00

2011-08-18 16:42:04

Oracle數(shù)據(jù)庫(kù)維護(hù)SQL代碼示例

2011-05-26 14:31:57

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

2010-04-15 10:51:52

2010-04-06 13:22:24

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

2023-12-26 07:40:34

2010-04-15 15:52:12

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

2010-04-23 17:55:25

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

2010-04-19 15:01:10

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

2010-04-21 14:11:56

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

2024-10-29 11:32:33

2023-01-26 00:18:53

云原生數(shù)據(jù)庫(kù)云資源
點(diǎn)贊
收藏

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