偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

從Oracle的SQL管理能力,看國產(chǎn)庫差距

原創(chuàng) 精選
數(shù)據(jù)庫 Oracle
SQL 解析,簡單描述就是將用戶提交的 SQL 語句,交由數(shù)據(jù)庫內(nèi)核,經(jīng)多個(gè)步驟后生成最終的執(zhí)行計(jì)劃,并交由執(zhí)行器來完成執(zhí)行。

SQL,作為與數(shù)據(jù)庫交互的主要方式,其管理能力對(duì)數(shù)據(jù)庫的安全穩(wěn)定運(yùn)行至關(guān)重要。作為數(shù)據(jù)庫的標(biāo)桿性產(chǎn)品,Oracle 在這方面能力非常全面;與之相對(duì)的是國產(chǎn)數(shù)據(jù)庫還存在一定的差距。當(dāng)前很多企業(yè)正面臨國產(chǎn)化替代的過程,更需正視這一差距,通過在生態(tài)工具、實(shí)施方案及自研增強(qiáng)等多種手段加以完善補(bǔ)充。下文從Oracle能力為基礎(chǔ),介紹相關(guān)能力作用及國產(chǎn)數(shù)據(jù)庫當(dāng)前現(xiàn)狀。文中選擇了部分國內(nèi)主流數(shù)據(jù)庫產(chǎn)品及開源產(chǎn)品作為對(duì)比,其相關(guān)能力取自官網(wǎng)和部分朋友的反饋。對(duì)比中加入了開源數(shù)據(jù)庫,主要是因?yàn)椴糠謬a(chǎn)數(shù)據(jù)庫是基于開源數(shù)據(jù)庫二次化開發(fā)而來,此處列入方便對(duì)比。這里特別感謝幾位的朋友大力支持。

1. SQL 管理能力大對(duì)比

在下文展開之前,我們先通過一張表格做個(gè)全局性的概覽。

圖片圖片

1).SQL 解析

SQL 解析,簡單描述就是將用戶提交的 SQL 語句,交由數(shù)據(jù)庫內(nèi)核,經(jīng)多個(gè)步驟后生成最終的執(zhí)行計(jì)劃,并交由執(zhí)行器來完成執(zhí)行。這其中關(guān)鍵能力有兩個(gè),一是執(zhí)行計(jì)劃緩存,一是解析過程的跟蹤。

? 計(jì)劃緩存

執(zhí)行計(jì)劃的緩存可以加速后續(xù)相同語句的執(zhí)行速度,大部分?jǐn)?shù)據(jù)庫都內(nèi)置了緩存能力,當(dāng)然有利就有弊,有了緩存能力就需考慮緩存的更新機(jī)制等問題。Oracle Shard Pool 中的 Library Cache,保存了SQL對(duì)應(yīng)的多個(gè)執(zhí)行計(jì)劃(以游標(biāo)的形式存在)??梢哉f Oracle 對(duì)執(zhí)行計(jì)劃的存儲(chǔ)控制,是我見過最為完善的,考慮到很多情況(如綁定變量、數(shù)據(jù)特征等等)。國產(chǎn)數(shù)據(jù)庫大多也支持了執(zhí)行計(jì)劃緩存,但管理粒度比較粗放且很多細(xì)節(jié)是未知的,相關(guān)文檔資料較少。

? 過程跟蹤

解析過程的跟蹤,作為 SQL 優(yōu)化的基礎(chǔ),理解執(zhí)行計(jì)劃的生成過程非常重要;數(shù)據(jù)庫自身是否提供了一個(gè)窗口可以去觀察內(nèi)部執(zhí)行機(jī)理,對(duì)于 DBA 優(yōu)化非常實(shí)用。優(yōu)化器生成執(zhí)行的計(jì)劃的過程是比較復(fù)雜的,當(dāng)一條語句的執(zhí)行計(jì)劃較差,一個(gè)很好的入口就是查看下優(yōu)化器生成執(zhí)行計(jì)劃的過程。Oracle 提供了等待事件10053,可以對(duì)整個(gè)執(zhí)行過程做了詳細(xì)的了解,通過對(duì)這個(gè)事件的閱讀可以幫我們回答很多問題。例如為什么選擇這個(gè)索引?多個(gè)近似成本的執(zhí)行計(jì)劃的選擇?等等。國產(chǎn)數(shù)據(jù)庫在這方面功能差距較大,大多沒有提供這一能力,很多時(shí)候是要靠 DBA 的經(jīng)驗(yàn)來評(píng)估判斷的。

圖片圖片

2).執(zhí)行計(jì)劃

執(zhí)行計(jì)劃,可以語句在數(shù)據(jù)庫中的執(zhí)行路徑,是了解數(shù)據(jù)庫運(yùn)行機(jī)理的重要窗口。在此部分需提供的能力包含幾個(gè),分別是執(zhí)行計(jì)劃的查看、固定、遷移和銷毀。

? 查看執(zhí)行計(jì)劃

可以說優(yōu)化SQL的第一步就是獲得一份準(zhǔn)確詳實(shí)的執(zhí)行計(jì)劃。這里要區(qū)分兩種情況,一種是根據(jù)用戶提交的語句生成的執(zhí)行計(jì)劃,一種是對(duì)執(zhí)行過或進(jìn)行中的語句獲得其執(zhí)行計(jì)劃。前者是優(yōu)化器新生成的執(zhí)行計(jì)劃,但不代表是真實(shí)執(zhí)行的,兩者可能會(huì)存在差異。Oracle提供了多種手段查看執(zhí)行計(jì)劃,而且可查詢當(dāng)前正在執(zhí)行的或已結(jié)束語句的執(zhí)行計(jì)劃。國產(chǎn)數(shù)據(jù)庫也都提供了查看執(zhí)行計(jì)劃的手段,但一般僅支持第一種方式且信息輸出粒度也較Oracle存在一定差距。

? 固定執(zhí)行計(jì)劃

令DBA一個(gè)非常頭疼的問題就是執(zhí)行計(jì)劃不穩(wěn)定,受多種因素影響會(huì)出現(xiàn)這一現(xiàn)象,對(duì)于前端業(yè)務(wù)來說就會(huì)出現(xiàn)忽慢忽快的問題。為了使SQL語句的執(zhí)行穩(wěn)定下來,可以考慮對(duì)一些關(guān)鍵語句進(jìn)行固定執(zhí)行計(jì)劃的工作。Oracle提供了多種手段達(dá)到這一目的。一種是常見的Hint方式,這種方式比較直接,但會(huì)導(dǎo)致失去其他優(yōu)化的可能性的同時(shí),需要手工修改語句;另外Oracle還提供了其他多種手段,從9i的Stored Outline、10g的SQL Profile到11g的SQL Plan Management,實(shí)現(xiàn)從被動(dòng)到主動(dòng)、從固定到靈活地實(shí)現(xiàn)了執(zhí)行計(jì)劃的穩(wěn)定性。這方面國產(chǎn)數(shù)據(jù)庫也都提供了一定的能力,但相對(duì)來說能力較少,還處于被動(dòng)補(bǔ)救的狀態(tài),尚不支持主動(dòng)防御性的能力。

? 遷移執(zhí)行計(jì)劃

當(dāng)數(shù)據(jù)庫需要遷移時(shí),除了數(shù)據(jù)本身遷移外,還有很重要的一部分就是執(zhí)行計(jì)劃的遷移,這對(duì)于在新環(huán)境的穩(wěn)定運(yùn)行很關(guān)鍵。Oracle提供了多種方式完成遷移過程,國產(chǎn)數(shù)據(jù)庫這方面比較缺失。

? 清理執(zhí)行計(jì)劃

如果一條語句的某個(gè)執(zhí)行計(jì)劃異常,常見的一個(gè)方式是讓其失效后,由優(yōu)化器重新生成一份執(zhí)行計(jì)劃。這時(shí)就需要能精準(zhǔn)銷毀到指定執(zhí)行計(jì)劃的能力。Oracle是提供了專有的命令來完成清理,當(dāng)然也可以通過權(quán)限變更等手段間接來清理掉執(zhí)行計(jì)劃。國產(chǎn)數(shù)據(jù)庫部分具備精確清理的能力,部分尚不具備。

圖片圖片

3).SQL 優(yōu)化

? 診斷優(yōu)化

當(dāng)出現(xiàn)某條語句性能比較差的情況,固然可以通過DBA人工來完成優(yōu)化,但更優(yōu)的方式是系統(tǒng)內(nèi)置的診斷優(yōu)化的能力。以O(shè)racle為例,就提供了一組這樣的能力,它通過對(duì)數(shù)據(jù)對(duì)象、統(tǒng)計(jì)信息、SQL語句本身等多維度評(píng)估,給出優(yōu)化建議,用戶更可以基于優(yōu)化建議一鍵完成優(yōu)化動(dòng)作。這邊可大大提高優(yōu)化效率、降低優(yōu)化成本,減輕DBA的工作壓力。這方面國產(chǎn)數(shù)據(jù)庫也具備一定能力,但一般都是通過外置工具來完成。

? 自動(dòng)優(yōu)化

上面談到的優(yōu)化動(dòng)作是指人為主動(dòng)干預(yù),診斷優(yōu)化指定語句,數(shù)據(jù)庫還可以提供自動(dòng)優(yōu)化能力。Oracle一方面通過將若干上述能力組合實(shí)現(xiàn)了批量自動(dòng)優(yōu)化;一方面還提供一種自適應(yīng)特性,即在語句執(zhí)行過程中,動(dòng)態(tài)根據(jù)執(zhí)行情況實(shí)時(shí)干預(yù)后面的執(zhí)行邏輯,修正執(zhí)行計(jì)劃達(dá)到最優(yōu)。部分國產(chǎn)數(shù)據(jù)庫也具備了類似的能力,但具體還待驗(yàn)證。

圖片圖片

4).執(zhí)行過程

? 查看過程

對(duì)SQL執(zhí)行過程的全方位追蹤,也非常重要,可以真實(shí)了解語句的執(zhí)行狀態(tài),根據(jù)執(zhí)行過程中暴露出的問題有針對(duì)性的進(jìn)行調(diào)整優(yōu)化。要做到對(duì)語句執(zhí)行追蹤是比較難的,需要兼顧效率、開銷、粒度等。Oracle在這方面做的非常突出,其提出的事件模型較好地解決了這一問題。其提供了豐富的手段可以對(duì)正在執(zhí)行或已經(jīng)執(zhí)行結(jié)束的語句實(shí)現(xiàn)過程查看。國產(chǎn)數(shù)據(jù)庫在這方面差距還是很明顯的,也看到有國內(nèi)產(chǎn)品在仿照Oracle的方式來實(shí)現(xiàn)這一能力。

? 慢SQL

慢SQL,是DBA優(yōu)化的入手點(diǎn),這里談到的慢SQL狹義上指執(zhí)行時(shí)長超過預(yù)期的SQL,廣義上是對(duì)更多資源粒度使用超出預(yù)期語句的集合。這方面Oracle基于AWR的存儲(chǔ)庫,提供了豐富的維度去檢索查詢語句。國產(chǎn)數(shù)據(jù)庫這方面做到稍顯單薄些,大多僅有對(duì)運(yùn)行時(shí)間超長語句的輸出。

圖片圖片

5).其他能力

除了上述能力外,還有些能力也有助于對(duì)SQL的管理。例如可以重點(diǎn)標(biāo)識(shí)語句的“著色”功能,用于升序遷移評(píng)估的SQL回放功能,用于調(diào)整對(duì)象進(jìn)而影響執(zhí)行計(jì)劃的不可見索引,用于應(yīng)急處理語句的雨具重寫功能等。這部分功能比較零散,大多根據(jù)實(shí)踐中不斷增強(qiáng),各廠商差異較大。

圖片圖片

2. 國產(chǎn)數(shù)據(jù)庫實(shí)施建議

針對(duì)國產(chǎn)庫現(xiàn)狀的不足,在實(shí)施過程中可根據(jù)以下幾個(gè)方面進(jìn)行準(zhǔn)備

1).制定開發(fā)規(guī)范

充分地了解國產(chǎn)數(shù)據(jù)庫的技術(shù)特點(diǎn),制定有針對(duì)性的設(shè)計(jì)開發(fā)規(guī)范。很多國產(chǎn)數(shù)據(jù)庫基于多年實(shí)踐,也都提供了開發(fā)規(guī)范,可以充分地予以吸納。特別是針對(duì)分布式數(shù)據(jù)庫,對(duì)開發(fā)有較多約束,要在系統(tǒng)設(shè)計(jì)、遷移之初就基于考慮。通常原則是盡量簡化對(duì)數(shù)據(jù)庫的使用,拒絕3B 大SQL(Big SQL) 大事務(wù)(Big transaction) 大批量(Big batch) 。

2).完善工具平臺(tái)

基于國產(chǎn)數(shù)據(jù)庫內(nèi)核能力的不足,還需要較長一段時(shí)間來完善升級(jí),可通過外部工具或平臺(tái)的方式補(bǔ)齊內(nèi)部短板。一方面可通過企業(yè)自研的方式增強(qiáng)對(duì)國產(chǎn)庫的管理能力,一方面也可利用一些外圍工具(如海信的DB Doctor、白鱔老師的D-Smart)來增強(qiáng)。

3).培養(yǎng)人與技能

要想使用好國產(chǎn)數(shù)據(jù)庫,更多是需要人員及技能。目前國產(chǎn)數(shù)據(jù)庫在生態(tài)建設(shè)方面還尚屬初期階段,需要企業(yè)內(nèi)部獨(dú)立培養(yǎng)更多的人并具備相應(yīng)的技能。只要充分地了解理解數(shù)據(jù)庫,才能更好地使用它。業(yè)內(nèi)有某公司使用國產(chǎn)數(shù)據(jù)庫,內(nèi)部超千人通過認(rèn)證培訓(xùn)的案例即說明了這點(diǎn)。

責(zé)任編輯:武曉燕 來源: 韓鋒頻道
相關(guān)推薦

2025-09-30 07:32:06

2011-05-24 13:39:49

SQL Server

2015-10-09 16:38:24

2025-01-09 07:30:49

SQL能力評(píng)測(cè)

2022-08-31 12:26:37

數(shù)據(jù)管理CDMC

2012-12-12 15:01:34

2024-12-10 07:30:46

2024-12-19 07:30:34

2023-11-30 08:42:15

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

2017-09-26 09:59:01

NAS2.0管理能力

2024-12-05 07:31:16

2024-12-26 07:33:02

2011-12-06 10:54:33

資金流控制運(yùn)營資金管理

2015-01-15 15:37:59

浪潮

2019-06-13 13:51:10

白山API大數(shù)據(jù)

2018-05-29 11:02:00

CommvaultMicrosoft O數(shù)據(jù)

2025-05-15 07:31:51

2015-11-16 17:22:29

2010-05-24 16:10:48

虛擬數(shù)據(jù)中心IT管理思科

2010-07-06 14:31:39

RationalJazz
點(diǎn)贊
收藏

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