SQL Access Advisor 概要
當為複雜的、資料密集的查詢進行最優效能除錯資料庫時,物化檢視和索引(materialized views and indexes)是必要的。SQL訪問顧問透過為一個給定的工作量推薦的一個關於物化檢視、物化檢視日誌和索引的適當集合來幫助你達到最佳化目標。當最佳化SQL時,理解和使用這些結構是必要的,因為它們在資料讀取方面獲得重大效能的提升。但是,有得必有失。建立和維護這些物件需要花費時間,空間的要求也是很重要的。
SQL訪問顧問推薦使用點陣圖索引、基於函式的索引和B-樹索引。對於很多型別的專用查詢來說,點陣圖索引可以縮短相應時間,而且相對其他索引技術,它可以減少需要的儲存空間。B-樹索引在資料倉儲中最常用,主要用來索引唯一或接近唯一的關鍵字。
SQL訪問顧問的另一個元件也建議如何最佳化物化檢視,以便它們可以快速更新和利用一般查詢重寫(rewrite)。
SQL訪問顧問可以從Oracle企業管理器(Enterprise Manager)(從顧問中心(Advisor Central)頁訪問)中使用SQL訪問顧問嚮導(SQL Access Advisor Wizard)執行或透過DBMS_ADVISOR包呼叫。DBMS_ADVISOR包由一組分析和建議的函式與過程的集合組成,這些函式和過程可以由任何PL/SQL程式呼叫。下圖顯示了SQL訪問顧問如何對一個給定的工作量建議物化檢視的,這些工作量是從使用者定義的表或SQL快取中得到的。如果沒有提供工作量,它可以產生並使用一個理想的工作量。
使用SQL訪問顧問嚮導或API,你可以做以下事情:
1. 建議基於收集到的或理想工作量資訊的物化檢視和索引。
2. 管理工作量。
3. 標記、更新和刪除建議。
除此之外,你可以用SQL訪問顧問API來做以下事情:
1. 執行一個使用單個SQL語句的快速最佳化。
2. 展示如何使物化檢視快速重新整理。
3. 展示如何改變一個物化檢視來使得一般查詢的重寫成為可能。
如果你收集到關於表和索引的基數,以及每個維度層次欄位、JOIN KEY欄位和時間表的關鍵字欄位的不同值的基數,那麼SQL訪問顧問的建議更具有意義。你可以透過用DBMS_STATS包收集精確或估計的統計資訊來做到這些事情。因為收集統計資訊是要花費時間的,而且也不需要極度精確的統計資訊,所以一般更願意使用估計的統計資訊。沒有這些統計資訊的話,任何引用該表的查詢會在工作量中標記為無效的,從而導致對這些查詢沒有任何建議。同時,它也建議所有存在的索引和物化檢視都已經被分析過。
使用SQL訪問顧問的概況
使用SQL訪問顧問的最簡單的方式是呼叫它的嚮導,這可以在Oracle企業管理器的顧問中心頁面找到。如果你更願意透過DBMS_ADVISOR包來使用SQL訪問顧問的話,下面會介紹它的基本元件和必須呼叫的不同的過程。
第一步 建立一個任務
在作出任何建議之間,必須建立一個任務。這個任務很重要,因為它儲存了關於建議程式的所有資訊,包括建議程式的結果。如果你使用Oracle企業管理器的嚮導或DBMS_ADVISOR.QUICK_TUNE過程,任務會自動建立。其他情況,你必須使用DBMS_ADVISOR.CREATE_TASK過程來建立一個任務。
你可以用DBMS_ADVISOR.SET_TASK_PARAMETER過程來定義引數,從而控制任務要做什麼。
第二部 定義工作量(workload)
工作量是呼叫SQL訪問顧問的主要輸入之一,它由一個或多個SQL語句構成,加上完全描述每個語句的各種
統計資訊和屬性。如果工作量包含了一個目標商業應用的所有SQL語句,那麼這個工作量被認為是一個全
工作量;如果工作量包含所有SQL語句的一個子集,那麼它就被認為是部分工作量。全工作量和部分工作量之間的不同是全工作量下,如果SQL訪問顧問發現已存在的物化檢視和索引並沒有有效地使用,那麼它會建議刪除它們。
典型地,SQL訪問顧問使用工作量作為所有分析的基礎。儘管工作量包含非常廣泛的語句,它還是仔細地根據特定統計資訊,業務重要性,或統計資訊和業務重要性的組合進行分等級。這個等級是很關鍵的,它可以使SQL訪問顧問先處理最重要的SQL語句,然後是那些業務影響更小的語句。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2071826/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Access Advisor!SQL
- SQL Access Advisor(zt)SQL
- SQL Access Advisor 與SQL Tuning AdvisorSQL
- SQL Access Advisor、SQL Tuning Advisor 測試SQL
- sql tuning advisor和sql access advisor區別SQL
- 手工執行sql tuning advisor和sql access advisorSQL
- 使用dbms_advisor來執行sql access advisorSQL
- SQL Access Advisor的 DBMS_ADVISOR.QUICK_TUNE 使用SQLUI
- Oracle 11 sql tuning advisor sql access advisor關閉以及job檢視與停止OracleSQL
- 在EM中使用SQL Access Advisor(SQL訪問建議)優化SQLSQL優化
- Oracle OCP IZ0-053 Q232(sql access advisor)OracleSQL
- Oracle OCP 1Z0 053 Q123(SQL Access Advisor)OracleSQL
- SQL Repair AdvisorSQLAI
- SQL TUNING ADVISORSQL
- SQL Tuning Advisor簡介SQL
- 使用sql tuning advisor最佳化sqlSQL
- Oracle SQL優化之sql tuning advisorOracleSQL優化
- oracle實用sql(3)--sql tuning advisorOracleSQL
- access 轉 sql 之一SQL
- sql tuning advisor(STA) 建議 建立sql profileSQL
- Oracle SQL優化之sql tuning advisor(STA)OracleSQL優化
- sql tuning set/sql tuning advisor(待完善)SQL
- Sql Tuning Advisor 使用方法SQL
- 深入瞭解SQL Tuning AdvisorSQL
- SQL Tuning Advisor : dbms_sqltuneSQL
- oracle實用sql(4)--undo advisorOracleSQL
- oracle實用sql(2)--segment advisorOracleSQL
- SQL Tuning Advisor使用例項SQL
- oracle SQL最佳化器SQL Tuning Advisor (STA)OracleSQL
- Oracle SQL最佳化之sql tuning advisor(STA)OracleSQL
- ORACLE SQL TUNING ADVISOR 使用方法OracleSQL
- Guideline of SQL Tuning AdvisorGUIIDESQL
- Oracle優化案例-關閉auto space advisor和sql tuning advisor(十九)Oracle優化SQL
- Introduction to SQL Tuning Advisor zt自ITPUBSQL
- 使用SQL Profile及SQL Tuning Advisor固定執行計劃SQL
- 在EM中使用SQL Tuning Advisor(SQL優化建議)優化SQLSQL優化
- [原創]ORACLE SQL TUNING ADVISOR 使用方法OracleSQL
- Sql Tuning Advisor的大致過程測試!SQL