日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

從Oracle新特性看數據庫發展

雖說近些年來,從國內數據庫市場來看,Oracle是有些勢衰;但從全球角度來說,其霸主地位依然不可撼動。其技術的演講變化,仍然對行業數據庫發展有著頗大的指導引領意義。下面是我對其近三年來發布的新特性加以盤點,進而洞察行業變化,挖掘技術趨勢。材料部分內容引用自蓋總的《Oracle新特性》系列文章,感謝!

1. 數據庫智能管理 — “自治”

Oracle最早在2017年提出了自治的概念,其提出并倡導的”Autonomous Database,100% Self-Driving”理念開創了數據庫智能管理之先河。其公開的新特性包含以下內容:

  • 自動化索引創建與管理

    索引是查詢加速的重要優化手段,如何創建、管理索引,長期以來是DBA的一項繁重工作。從Oracle 19c開始,自動化索引創建和實施技術被引入進來。Oracle預置的專家系統,通過捕獲、識別、驗證、決策、在線驗證、監控的全流程管控索引自動化的過程。這一特性將會自動幫助用戶創建有效的索引,并通過提前驗證確保其性能和有效性,并且在實施之后進行監控,這一特效將極大緩解數據庫索引維護工作。此外,其還支持刪除長時間未使用的索引。

  • 內存對象管理

    Oracle的內存管理,經歷了數代的發展。從早期的各組件分別控制、到SGA、PGA分別控制、再到MEM整體的全局控制。如何滿足不同負載情況下內存的管理要求,如何更精細地管理內存,成為Oracle內存管理重點。特別隨著12c引入了列式內存結構,內部管理更加復雜。Oracle正通過內置的機器學習算法自動實現內存管理,減少人為干預。例如,自動壓縮較少訪問的內存列數據等等。

解讀

  • 數據庫智能管理,是近些年來很火的一個課題。特別是,隨著AI技術的逐步成熟,如何利用人工智能更好的管理數據庫,減少人為干預管理的工作量成為熱點。

  • 不僅在大型商業數據庫如此,開源數據庫也有不少實踐。以2017年馬遜和卡內基梅隆大學一起開發的一套名“OtterTune”的機器學習自動化調整DBMS的系統為代表。國內BAT等大廠也有很多在智能管理上的實踐。例如通過參數調整節省內存,進而減低整體成本。

  • 智能管理,在云數據庫方面,有著更為重要的意義。作為一種“開箱即用”的產品,如何減低用戶對云數據庫使用門檻,是各家著力去解決的問題。例如阿里的CloudDBA、騰訊的DBbrain等,這些附加在數據內核之外的產品,正通過增值的周邊生態服務,吸引用戶,增加自身競爭力。

2. 數據庫架構能力 — “靈活

Oracle的架構能力,我認為一直以來是比較薄弱的。這與其原來的產品理念有關。隨著開源數據庫(特別是MySQL)的大熱,其靈活多變的架構方式,滿足了客戶的多種需求。Oracle也嘗試在這方面有所改進。

  • 分片(Sharding)

Oracle在12c中推出了分片的概念,其提出了“表家族”的概念。表家族中的所有Sharded table都按照相同的sharding key(主鍵)來分片。在19c中,進一步增強了此功能,允許存在多個表家族。此外,Oracle還提供了跨地域和混合云的的自動Sharding能力。

  • 讀寫分離

在讀寫分離方面,Oracle 19c中支持自動重定向備庫DML。在使用ADG作為備庫進行讀寫分離部署時,可能因為應用的原因,會有偶然的DML操作發送到備庫上。通過這一特性,ADG會話的ACID一致性得以保持,同時透明的支持“多數讀,偶爾更新”應用的自然讀寫分離配置。這個特性的引入,將進一步的增加ADG的靈活性,幫助用戶將備庫應用的更加充分。

解讀

  • 數據庫的架構是否靈活,滿足用戶的各異需求,對數據庫產品來說很重要。早前的一些做法,更多是通過”中間件+數據庫”的配合來完成。但現在的趨勢是更多在數據庫端解決,或者向上包住一層,給客戶整體化解決方案的感覺。

  • 對于分片、讀寫分離等問題,很多廠商正試圖引入AI技術,自動化處理,減少客戶干預。讓產品內部足夠靈活,對外提供統一訪問方式,減少客戶對產品的細節了解,降低使用門檻。

3. 數據一致性

數據一致性,是數據庫最為核心的能力要求之一。看看Oracle近幾年都做了哪些改進。

  • 增強同步

    在ADG中支持對Nologging數據的復制同步。

  • 多實例并行重做日志應用增強

    在Oracle Data Guard環境中,備庫的日志應用速度一直是一個重要挑戰,如果備庫不能夠及時跟上主庫的步調,則可能影響備庫的使用。自Oracle 12.2版本開始,支持多實例并行應用,這極大加快了恢復進度;在18c中,開始支持In-Memory列式存儲;在19c中,并行應用開始支持In-Memory列式存儲。

  • 增加數據檢查函數checksum

    在20c中,Oracle增加了CHECKSUM函數,用于檢測數據的完整性。

解讀

  • 數據一致性要求,是對數據庫的基本要求,但也是頗有難度的挑戰。例如MySQL的數據一致性,一直是個繞不過去的梗。解決這一問題取巧的方式,是通過底層存儲同步或如云原生的那般處理。

  • 從原理上看,數據保存一份,是最完美的一致性。隨著HTAP技術的成熟、數據庫承載能力的提升,對數據一致性的要求,是可能通過一體式方案在一定程度上解決的。

4. 業務連續性 — SLA

如何保證數據庫的可用性,保證變更時不影響業務,是數據庫能夠承載核心業務的重要標志。Oracle無疑在這方面走在各家的前面。

  • 透明的應用連續性支持增強

    在Oracle RAC集群中,支持對于查詢的自動切換。當一個節點失效,轉移到另外一個節點,在19c中Oracle持續改進和增強了連續性保持,數據庫會自動記錄會話狀態,捕獲用于重演的信息,以便在切換時,在新節點自動恢復事務,使DML事務同樣可以獲得連續性支持。

  • 在線維護操作增強

    在不同版本中, Oracle 持續增強在線維護操作, 例如在12.2 開始支持的Online Move、在線修改普通表為分區表等特性。在19c中,持續增強了智能的、細粒度的游標失效控制,將DDL操作對于游標失效的影響降至最低等等。

  • 編譯游標增強

    第一個看到需要重新編譯SQL游標的會話(例如,由于新的優化器統計信息)執行重新編譯。其他會話繼續使用舊的SQL游標,直到編譯完成避免因重新編譯而導致大量會話停頓。

  • 零影響的計劃停機維護

    在20c中,對于計劃停機維護或者滾動升級等,Oracle通過Smart DRM等特性以實現對應用的零影響。對于維護操作,數據庫可以在實例關閉前進行動態的資源重分配,這一特性被稱為Smart DRM,通過GRD的動態資源重組織,重新選出的Master節點不需要進行任何的恢復和維護,對于應用做到了完全無感知、無影響。

  • 備庫的Result Cache支持

    在Oracle12.2和18c中,已經實現了ADG的會話連接保持和Buffer Cache保持;在20c中,Result Cache在備庫上進一步得以保留,以確保這個細節特性的主備性能通過。在做切換時,可盡快承載起業務。

解讀

  • 對于業務可用性來說,Oracle的確做到的前面。不僅僅在實例級別、會話級別實現連續可用,Oracle在方方面面為連續可用做了大量工作,來保證對業務的平滑體驗。

  • 分布式數據庫,在處理上述問題時有其天然的優勢,特別是無master的模式。配合上前端的接入層,已經可以實現較為完美的平滑體驗。

5. 混合負載 — HTAP

混合負載類型,是未來數據庫發展的重要方向之一。Oracle這方面的重點投入就是引入了”in-memory選件”,并盡量使其完美內置,對用戶無感。

  • In-memory

    In-Memory技術引入之后,為Oracle數據庫帶來了基于內存的列式存儲能力,支持OLTP和OLAP混合的計算。在20c 中, Oracle 支持了自主的In-Memory 管理, DBA將不再需要人工指定將哪些數據表放置在內存中,數據庫將自動判斷需要將哪些對象加入或驅逐出In-Memory的列式存儲中。

解讀

  • HTAP,看起來是很美好,但實現起來難度很大。其核心還是要將數據按場景做多份存儲,由不同的計算引擎來處理。Oracle的in-memory如此,TiDB的TiFlash亦如此?;旌县撦d類型的難點在于,數據同步、資源隔離等。目前各大廠也都紛紛提出了HTAP的方案,至于解決如何還需拭目以待。

6. 性能加速 — Fast

追求更高的性能,是各數據庫一直以來的追求。這方面場景有幾類做法:

  • 硬件上的提升,例如引入更快的存儲、網絡設備。

  • 存儲模式的變化,例如引入列存滿足特定場景、引入LSM結構由同步改異步等。

  • 算法的改進,例如提供bloom filter提升過濾效率;提供近似計算,在精度要求不高的情況下,提供更大的性能。

解讀

  • 關系模型,對于性能有其天然的短板。在維護一個復雜功能上,其性能必然有所損失,這也是很多nosql或特定場景數據庫(如時序)的特長所在。

  • 分布式數據庫,性能方面尤其值得注意,在跨網絡條件下,其性能表現一般較單機數據庫還是有所差距。

  • 這里需要區分下,吞吐量<>高性能。在很大程度上,數據庫的吞吐量指標更有價值。極致性能,只在某些特定場景才有需求。

7. 數據分層、虛擬化、生命周期

  • 數據分層

    Oracle在12c中引入了數據生命周期的概念。其通過對數據使用的監控,實現了一定程度上的數據分層,最大程度利用資源。

  • 外部表(in-memory,inline)

    外部表的引入,使得Oracle對外部數據操作更加靈活,并且基于內存列式存儲壓縮,能夠更快的支持大數據量的運算,對于數據倉庫環境將會是極大的增強。而Inline外部表,可以通過SQL直接調用,無需創建僅需一次使用的外部表,這使得開發靈活了很多,也減少了大量元數據的處理。

  • 混合分區表支持

    在19c中,Oracle增強了分區特性,可以將外部對象存儲上的文件,以外部表的方式鏈接到分區中,形成混合分區表,借助這個特性,Oracle將數據庫內外整合打通,冷數據可以剝離到外部存儲,熱數據在數據庫中在線存儲。

解讀

  • 個人認為,這是Oracle做到比較強的方面。其憑借多年的積累,對數據使用特征的掌握,可以做到數據全生命周期管理。這一點有些平臺也是通過外部表方式支持,但其使用體驗及順滑度,較Oracle還是有所差距。

  • 這方面是數據庫的未來發展重點。在用戶已經滿足了基本的存儲、計算能力后,如何更好地使用數據成為重點。分層、虛擬化等技術,可以更好地降低用戶成本,提升數據利用率。

8. 易用性 — 使用方便

使用Oracle的DBA,都有種感覺,就是Oracle太方便了。的確是,Oracle在易用性方面做了大量的工作。

  • 分析視圖

    12c引入的分析視圖,實現了將底層各種數據對接,在提供給簡化SQL訪問,最終輸出給應用,將復雜性通過分析視圖遮蔽。

  • 多維表達式

    多維表達式查詢支持。

  • 多態表

    支持自描述,全動態SQL。是ANSI 2016標準的一部分。

  • SQL宏

    宏的作用在于讓SQL獲得進一步的概括和抽象能力,允許開發者將復雜的處理邏輯通過宏進行定義,然后在后續程序處理中可以反復引用這一定義。

  • SQL擴展

    在Oracle 20c中,關于SQL的函數擴展很多,包括對于ANSI 2011標準的部分支持,進一步的提升了SQL的處理能力。

解讀

  • 這一方面,國產數據庫或開源數據庫還任重而道遠。Oracle的易用,也成為很多去O項目的核心難點。這也是很多國內數據庫一直致力于Oracle兼容性工作的初衷。

9. 優化器 — 更加智能

  • 統計信息近實時刷新。

    隨著表數據的變化,優化器表數據統計數據將近實時刷新,以防止次優執行計劃。統計的在線維護內置于直接路徑加載操作中當數據顯著變化時運行自動統計信息收集作業。例如,自上次收集統計信息以來,表中超過10%的行被添加/更改。

  • 執行計劃自動管理

    在19c中,數據庫缺省的就會啟用對于所有可重用SQL的執行計劃捕獲,然后進行自動的執行計劃評估,評估可以針對AWR中的TOP SQL、SGA、STS中的SQL進行。如果被評估的執行計劃優于當前執行計劃(一般是要有效率 50%以上的提升),會被加入到執行計劃基線庫中,作為后續的執行選擇,而不佳的執行計劃則會被標記為不可接受。有了這個特性,SQL執行計劃的穩定性將更進一步。

  • SQL增強

    在19c中,SQL 功能獲得了進一步的增強,這其中包括對于COUNT DISTINCT的進一步優化,在12c中引入的近似 Distinct操作已經可以為特定SQL帶來極大性能提升,現在基于位圖的COUNT DISTINCT操作繼續為查詢加速。

解讀

  • 優化器方面,一直是Oracle最令人稱道的地方。這一點,還需要國內廠商奮起直追。

  • 優化器后續發展方向是更加智能地管理SQL,減少執行抖動的情況。

10. 軟硬件結合

近些年來,新興硬件的出現對數據庫的發展影響很大。如何利用好這些硬件,甚至從底層架構去適配這些硬件,是后續的發展重點。

  • 基于NVRAM的多級緩存增強

    在數據庫中NVRAM又被作為一級高性能緩存用于加速數據庫,這是非常強大的軟硬結合優化。這一特性應該率先被用于Exadata環境,Exadata將NVRAM放置在了Flash Memory前面,計算節點可以通過RDMA協議,繞過軟件棧,實現高性能的訪問,較傳統協議路徑提速20倍。NVRAM用作Cache和作為直接存儲使用,綜合能力提升了10倍。

  • 持久化內存存儲支持

    自Oracle 19c開始,Oracle就已經開始修改程序以更好的配合持久化內存,提升數據庫性能。在20c中,Oracle明確支持了持久化內存 - Persistent Memory,雖然目前發布的信息是在Exadata中支持,但是軟件的提升是通過的,在各類一體機中,或者是傳統架構中使用持久化內存是毫無障礙的。持久化內存的引入,讓Oracle的存儲多達6級:SATA、SAS、SSD、Flash、PMEM、RAM,冷熱數據分離,分層存儲,可以進行更加精細化的架構設計。整體架構提供小于19個微秒的IO延時。

  • 100Gb以太網和RoCE

    在Oracle新發布的Exadata X8M一體機中,100Gb的以太網和RoCE獲得支持,這是第一次在Oracle一體機中引入了基于RoCE的架構;存儲服務器上,通過PMEM在Flash之前進行加速,RoCE和PMEM提供了極速性能。

11. 多模支持

  • 原生的區塊鏈支持

    隨著區塊鏈技術的不斷成熟和發展,Oracle在其多模的數據庫支持中,引入了原生的區塊鏈表支持。區塊鏈表使客戶可以在需要高度防篡改的數據管理,而又無需在多個組織中分布分類帳或依靠分散的信任模型時使用Oracle數據庫。為了遵循區塊鏈的可信和安全機制,區塊鏈表只能INSERT記錄,而不能修改,同時鏈可以被多方參與者驗證。區塊鏈表,可以和其他常規表進行關聯,進行事務處理或者查詢。

  • 地理信息與全文檢索

    針對Oracle數據庫內置的多模特性,地理信息-Spatial和全文檢索-Text組件,在20c中,通過In-Memory的內存特性,獲得了進一步的支持。對于空間數據,Oracle在內存中為空間列增加空間摘要信息(僅限于內存中,無需外部存儲),通過SIMD矢量快速過濾、替換R-Tree索引等手段,以加速空間數據查詢檢索,可以將查詢速度提升10倍。針對全文檢索(Text,在內存中將倒排索引添加到每個文本列,同時通過將單詞映射到包含單詞的文檔,以內存替換原來的磁盤索引,從而加速全文檢索的性能。通過結合關系數據和文本的混合查詢,全文檢索可以獲得3倍以上的性能提升。

解讀

  • 多模的趨勢,是為了充分利用現有成熟的數據庫生態,實現在單一平臺對多類數據的加工處理的需求。

12. 機器學習

  • 增加機器學習算法

    在Oracle的新版本中,更多的機器學習算法被加進來,進而實現更廣泛的算法支持。如分類、回歸、排行、異常檢測等等。

分享到:
標簽:Oracle
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定