查詢最佳化器
在資料庫管理系統領域,查詢最佳化器在確保資料庫查詢的高效執行方面發揮關鍵作用。 查詢最佳化器,一個組成部分IBM® watsonx.data,提高了處理的查詢的效能Presto(C++) 引擎。 如果分析最佳化可行,則對查詢進行重寫;否則,本機引擎優化優先。
查詢最佳化器不支援Presto(Java)。
之內watsonx.data,查詢最佳化器作為一個元件運行,負責最佳化查詢。 它接受標準 SQL 查詢作為輸入,並產生最佳化的 SQL 等效項,該查詢是為增強執行而自訂的Presto(C++)。在最佳化不可行的情況下,系統將恢復使用原始查詢。
查詢最佳化器出現作為一個有價值的補充watsonx.data,使用戶能夠優化其查詢並提高引擎的效能。
你可以看到 啟動查詢最佳化器管理器 部分了解更多。
優點查詢最佳化器
查詢最佳化功能Db2被槓桿化於watsonx.data考慮的關鍵因素包括:
-
watsonx.data用途Db2作為數十年磨礪的最佳效能查詢最佳化。
利用廣泛的開發、查詢最佳化功能Db2分析您的 SQL 查詢並產生最佳執行計劃。 考慮的關鍵因素包括:
- 準確的統計數據:RUNSTATS 收集資料分佈和基數估計,以做出明智的決策。
- 精心設計的索引和限制:它們引導優化器走向高效的存取路徑並強制資料完整性。
- 複雜查詢的先進技術:基於成本的最佳化和基數估計確保高效處理。
-
增強的查詢效能:查詢最佳化器有效優化查詢,從而顯著提高效能。
-
無縫整合:查詢最佳化器與現有的無縫集成watsonx.data基礎設施,確保順利採用流程。
-
靈活優化:查詢最佳化器操作靈活,因為使用者可以在全域或會話層級啟用和停用該功能。
-
查詢優化器支援 Hive 和 Iceberg 資料表。
限制查詢最佳化器
- 查詢最佳化器只支持PrestoC++。
- 同步元儲存時,所有架構和表格均為大寫。 例如,
"catalog".SCHEMA.TABLE。 - 三部分名稱查詢需要用引號將小寫的目錄名稱引起來 (
"catalog".SCHEMA.TABLE)。否則查詢傳回錯誤。 - 為了獲得最佳效能,您必須在中定義 NOT NULL、主鍵和外鍵等約束
Query Optimizer engine表同步後。 - 啟用後查詢最佳化器,目前連接到任何目錄的所有目錄的元數據Presto引擎將自動與優化器引擎同步。 但是,啟用優化器後隨後新增目錄或模式將需要使用者手動進行元資料同步。 參考 同步查詢最佳化器 取得詳細說明。
- 如果目錄或架構在執行期間無法存取或損壞查詢最佳化器部署時,優化器引擎中將不存在其元資料。 為了確保所有物件按預期出現,使用者應使用上概述的命令 同步查詢最佳化器 手動驗證並可能同步遺失的元資料。
- 查詢最佳化器功能取決於至少一種活性物質的存在Presto您的 C++ 引擎Watsonx.data實例。 試圖刪除最後剩下的PrestoC++ 引擎同時查詢最佳化器啟用將觸發停用查詢最佳化器本身。 使用者介面中將出現確認提示,以防止意外停用。
- 查詢最佳化器不支持觀點。
- 投影清單中的小數列和浮點列可能會互換,並可能導致資料類型不符。
- 某些查詢(全外連接、反連接)不會回傳正確的結果。
- 標識符中的特殊字元無法正常運作。
- 查詢優化器目前僅支援
SELECT聲明。