Oracle 12.2新特性掌上手冊 - 第七卷 Big Data and Data Warehousing
編輯手記:也許Oracle 12.2在內核上的智能改進隻能讓你眼前一亮,那今天基於Big Data和數據倉庫的性能優化增強則會讓你伸手觸Oracle的強大靈魂。細膩中霸氣側漏,這就是Oracle 12.2.
1Partitioning:External Tables(外部表)
外部分區表提供了將分區的Hive表映射到Oracle數據庫生態係統以及在基於Hadoop分布式文件係統(HDFS)的數據存儲之上提供聲明分區的功能。
Oracle數據庫基於外部HDFS的數據存儲功能,使得數據庫分區能夠實現更高級別的查詢性能和增強的數據維護。
2Enhancing Declarative Constraint Support(增強聲明約束支持)
在內部和外部表上定義為聲明性和非強製性的約束更全麵地用於查詢處理優化,同時增加了內部和外部表的聲明性NOT NULL約束以及外部表的所有聲明性約束(唯一性,主鍵和主鍵 - 外鍵關係)的支持。
允許外部數據的聲明性約束定義有助於提高查詢性能,同時優化任何複雜SQL操作的資源消耗,而不管數據是否駐留在數據庫內。
3Oracle Parallel Query Services on Oracle RAC Read-Only Nodes(Oracle RAC隻讀節點上的Oracle並行查詢服務)
Oracle RAC隻讀節點上的Oracle並行查詢服務表示可擴展的並行數據處理體係結構。 該架構允許分配專用於並行執行查詢的大量處理引擎。
Oracle並行處理服務器場允許用戶在大型集群係統上部署可擴展的處理架構,專門用於並行查詢操作。
4Dimensional In-Database Analysis
分析視圖通過星型模式提供商業智能層,從而可以輕鬆地使用層次結構、級別、聚合數據和計算的度量擴展數據集。
及其相關的ALTER和DROP語句,新計算度量表達式語法和新數據字典視圖。CREATE ATTRIBUTE DIMENSION
CREATE HIERARCHY
CREATE ANALYTIC VIEW
分析視圖允許數據倉庫和商業智能應用程序開發人員使用時間序列和其他計算來擴展星型模式,使數據對於業務用戶更有價值,並且無需在應用程序中定義計算。
可以使用簡單的SQL查詢來查詢分析視圖,從而通過消除對複雜SQL生成器的需求來簡化應用程序開發。計算可以在分析視圖中定義,可以通過在SQL選擇列表中包括度量名稱來選擇。
分析視圖提高了應用程序的一致性。通過在數據庫中集中定義聚合和計算規則,可以減少或消除不同報告工具中不一致結果的風險。
5Enhancing SQL Plan Management(增強SQL執行計劃管理)
SQL執行計劃管理(SPM)利用更大的計劃信息池(包括自動工作負載存儲庫(AWR))作為SQL計劃基準的源。 SPM還得到增強,為客戶提供更具選擇性的計劃捕獲和更容易的驗證。客戶可以利用SQL計劃管理來滿足其特定的應用程序需求。
獲取執行計劃的方式:從自動工作負載存儲庫(AWR)快照加載計劃。您必須指定快照範圍的開始和結束。或者,您可以應用過濾器以僅裝入滿足指定條件的計劃。默認情況下,優化程序在下次數據庫執行SQL語句時使用加載的計劃。
直接從位於SGA的共享池中的共享SQL區域加載語句的計劃。通過對模塊名稱,模式或SQL ID應用過濾器,可以標識要捕獲的SQL語句或SQL語句集。下次數據庫執行SQL語句時,優化程序將使用這些計劃。
當使用提示手動調整應用程序SQL時,直接從共享SQL區域裝載計劃很有用。因為您可能無法更改SQL以包括提示,填充SQL計劃基線可確保應用程序SQL使用最佳計劃。
將SQL工作負載的計劃捕獲到STS中,然後將計劃加載到SQL計劃基準中。下次數據庫執行SQL語句時,優化程序將使用這些計劃。從STS批量裝載執行計劃是防止數據庫升級後計劃回退的有效方法。
使用DBMS_SPM軟件包定義登台表DBMS_SPM.PACK_STGTAB_BASELINE以將基準複製到登台表中,並使用Oracle數據泵將表轉移到另一個數據庫。在目標數據庫上,使用DBMS_SPM.UNPACK_STGTAB_BASELINE從暫存表中解壓縮計劃,並將基準放入SMB。
一個用例是從新的應用程序模塊向數據庫中引入新的SQL語句。供應商可以使用SQL計劃基準為新的SQL運送應用程序軟件。以這種方式,新SQL使用已知的計劃,以在標準測試配置下提供最佳性能。或者,如果您在內部開發或測試應用程序,請從測試數據庫導出正確的計劃並將其導入生產數據庫。
將存儲的大綱遷移到SQL計劃基準。遷移後,您可以使用存儲的概要保持相同的計劃穩定性,同時可以使用SQL計劃管理提供的更高級的功能,例如計劃演進。
6Scan Rate and In-Memory Columnar Statistics(掃描速率和內存中列的統計)
DBMS_STATS現在支持外部表掃描速率和內存列存儲(IM列存儲)統計。
如果數據庫使用內存中列存儲,則可以將im_imcu_count設置為表或分區中的內存壓縮單元(IMCU)的數量,並將im_block_count設置為表或分區中的塊數。 對於外部表,掃描速率指定以MB /秒為單位掃描數據的速率。
7Band Join Enhancements(帶加入增強)
帶連接是一種特殊類型的非連字符,其中一個數據集中的鍵值必須落在第二數據集的指定範圍(也就是“帶”)內。 當數據庫檢測到帶連接時,數據庫更有效地評估帶連接的成本,避免不必要的掃描落在定義的帶外的行。在大多數情況下,優化的性能與等值連接的效果差不多。
以下示例查詢每個員工與其他員工相比,工資差距範圍在$100之間的。 因此,帶具有$ 200的寬度。 這些例子假設可以比較每個雇員的工資與自己的工資。 以下查詢包括部分樣本輸出:
在不使用帶連接優化的時候,執行計劃如下:
使用帶連接的執行計劃如下:
我們看到,在12.2中,不再具有單獨的filter的操作。
8Parallel Recursive WITH Enhancements(並行遞歸WITH增強)
Oracle數據庫通過使用專有CONNECT BY子句和符合ANSI標準的遞歸WITH子句來支持遞歸查詢。並行遞歸WITH子句允許此類型的查詢以並行方式運行。
遞歸with查詢原理
遞歸WITH類型查詢是典型的在社交圖中找到的圖形數據,例如Twitter圖形或通話記錄。遞歸WITH類型查詢也常用於交通網絡(例如,用於飛行路徑,道路等)。圖形數據本質上是循環的,因此,遞歸查詢是圖形數據的分析處理的自然候選者。遞歸WITH確保在圖中從單個源節點到單個或多個目的地節點的最短路徑的有效計算。雙向搜索用於確保從圖形中從單個源節點到單個或多個目的地節點的最短路徑的有效計算。雙向搜索從源節點和目的地節點開始,然後在兩個方向上前進搜索。實現諸如貪婪搜索,無中斷中間路徑的修剪和雙向搜索的技術以優化性能。
9Cursor-Duration Temporary Tables Cached in Memory(遊標持續時間臨時表在內存中緩存)
複雜查詢通常會多次處理相同的SQL片段(查詢塊)以回答業務問題。 這些查詢的結果可以在內部存儲,以避免對同一查詢片段進行多重處理,實現為光標持續時間臨時表。 使用這個新功能,這些臨時表可以完全駐留在緩存中,而無需將它們寫入磁盤。
對於部分較複雜的關鍵操作,緩存中間結果集有助於提高係統性能,降低I/O資源消耗
10Local TEMP Tablespaces(本地臨時表空間)
hub-leaf cluster 環境中的單個葉節點可能溢出到本地TEMP表空間。此功能減少了傳輸到hub nodes和公共基礎架構的數據量,為大量節點實現更好的可擴展性。
11Oracle Database Can Contain Both Read/Write and Read-Only Instances(Oracle數據庫可以包含讀取/寫入和隻讀實例)
Oracle 12.2在同一數據庫中提供兩種類型的實例:讀/寫和隻讀。
讀/寫實例是常規的Oracle數據庫實例,可以處理對數據的更新(例如,DML語句UPDATE,DELETE,INSERT和MERGE),分區維護操作等。可以直接連接到讀/寫實例。
隻讀實例隻能處理查詢,不能直接更新數據。不能直接連接到隻讀實例。請注意,存在包含更新和查詢數據的並行SQL語句(例如,INSERT INTO <select query>)。在這種情況下,語句的<select query>部分在讀/寫和隻讀實例上處理,而INSERT部分僅在讀/寫實例上處理。
要將實例指定為隻讀,請將INSTANCE_MODE參數設置為READ_ONLY。 (參數的默認值為READ_WRITE。)
隻讀實例的引入顯著提高了數據倉庫工作負載的並行查詢的可擴展性,並允許Oracle數據庫在數百個物理節點上運行。
12Oracle Advanced Analytics Association Rules Enhancements(Oracle高級分析關聯規則增強)
Oracle Advanced Analytics關聯規則算法有許多增強功能,包括計算與規則相關聯的值,例如銷售額。
收集關聯規則的補充信息可以幫助識別每個規則對業務的價值是有價值的。 此功能使Oracle Advanced Analytics在構建模型時執行此類計算,這比要求作為後處理步驟執行此計算更簡單和更高效。
13Improving Token Management for Binary XML(改進二進製XML的令牌管理)
此功能通過允許以比數據庫更低的粒度級別管理令牌表來提高基於客戶端的XML編碼和解碼的效率。 這使得可傳輸表空間和交換分區等操作更有效率。
通過減少在編碼和解碼操作期間需要重新加載的令牌的更改,提高了客戶端編碼和解碼二進製XML的效率。 此功能還使得可以使用可傳輸表空間執行交換分區操作,而不需要重新編碼移動的XML。
文章轉自數據和雲公眾號,原文鏈接
最後更新:2017-07-18 10:33:37