隨著信息技術(shù)的快速發(fā)展,數(shù)據(jù)庫管理系統(tǒng)已成為各個(gè)領(lǐng)域中不可或缺的一部分。作為全球領(lǐng)先的數(shù)據(jù)庫管理系統(tǒng)供應(yīng)商,Oracle的開發(fā)團(tuán)隊(duì)不斷推出各種新功能,以滿足不同客戶的需求。Oracle 19c和20c作為最新版本,又給數(shù)據(jù)庫管理帶來了不少創(chuàng)新和改變。
在Oracle 19c中,新增加了很多有趣的功能,其中最吸引人的是自動(dòng)索引(Auto Indexing)。幾乎所有Oracle DBAs都有經(jīng)驗(yàn)修改SQL查詢來提高性能的。然而,在許多情況下,DBA會(huì)因各種原因(注意隨著時(shí)間的推移,想要找到原始SQL是越來越難的)而無法處理所有查詢。這時(shí),自動(dòng)索引就會(huì)有用武之地。它可以自動(dòng)創(chuàng)建和刪除索引,并根據(jù)負(fù)載進(jìn)行調(diào)整,以維護(hù)性能并促進(jìn)表現(xiàn)的成本效益。
--啟用自動(dòng)索引 SQL>exec dbms_auto_index.internal_trigger(‘PUB’);
在Oracle 20c中,我們還可以看到更多有趣的特性,其中最具影響力的是實(shí)時(shí)統(tǒng)計(jì)信息(Real-Time Statistics)。傳統(tǒng)上,統(tǒng)計(jì)信息的更新是通過執(zhí)行統(tǒng)計(jì)信息作業(yè)或以分區(qū)方式進(jìn)行的。但這種方式在面對(duì)涉及成千上萬個(gè)分區(qū)的操作時(shí),可能會(huì)對(duì)性能產(chǎn)生很大負(fù)擔(dān)。
--在20c中使用實(shí)時(shí)統(tǒng)計(jì)信息 SQL>ALTER TABLE t1 ENABLE REAL-TIME STATISTICS;
實(shí)時(shí)統(tǒng)計(jì)信息提供了一種新的方式來獲取當(dāng)前和準(zhǔn)確的統(tǒng)計(jì)數(shù)據(jù),尤其是在高負(fù)載環(huán)境中。通過這種方式,Oracle可以通過收到實(shí)時(shí)信息來維護(hù)基于自適應(yīng)最大PSM的執(zhí)行計(jì)劃。
最后,在Oracle 20c中,我們還可以使用Polymorphic Tables函數(shù)來輕松地將JSON數(shù)據(jù)轉(zhuǎn)換為表。JSON是一種流行的數(shù)據(jù)格式,已成為互聯(lián)網(wǎng)上交換數(shù)據(jù)的標(biāo)準(zhǔn),而Oracle 20c實(shí)現(xiàn)了對(duì)JSON數(shù)據(jù)進(jìn)行處理的能力。
--將JSON數(shù)據(jù)轉(zhuǎn)換為表 SQL>SELECT * FROM POLYMORPHIC TABLE (JSON_OBJECT_T (…));
總而言之,Oracle的新版本不斷推出創(chuàng)新的功能,以幫助DBAs實(shí)現(xiàn)數(shù)據(jù)庫管理的更高效和更推動(dòng)業(yè)務(wù)流程。自動(dòng)索引和實(shí)時(shí)統(tǒng)計(jì)信息等功能都是以O(shè)racle數(shù)據(jù)庫管理綱要的重要一部分,值得我們掌握并用于實(shí)踐。