sql執行計劃基本命令
檢視執行計劃的命令:
SET AUTOT[RACE] OFF 停止AutoTrace
SET AUTOT[RACE] ON 開啟AutoTrace,顯示AUTOTRACE資訊和SQL執行結果
SET AUTOT[RACE] TRACEONLY 開啟AutoTrace,僅顯示AUTOTRACE資訊
SET AUTOT[RACE] ON EXPLAIN 開啟AutoTrace,僅顯示AUTOTRACE的EXPLAIN資訊
SET AUTOT[RACE] ON STATISTICS開啟AutoTrace,僅顯示AUTOTRACE的STATISTICS資訊
set autotrace trace exp stat; 前面幾個的簡寫
資料庫讀的三個概念:
針對以上3個概念進行的說明解釋及關係如下: 1、DB Block Gets(當前請求的塊數目)當前模式塊意思就是在操作中正好提取的塊數目,而不是在一致性讀的情況下而產生的塊數。正常的情況下,一個查詢提取的塊是在查詢開始的那個時間點上存在的資料塊,當前塊是在這個時刻存在的資料塊,而不是在這個時間點之前或者之後的資料塊數目。
2、Consistent Gets(資料請求總數在回滾段Buffer中的資料一致性讀所需要的資料塊)這裡的概念是在處理你這個操作的時候需要在一致性讀狀態上處理多少個塊,這些塊產生的主要原因是因為由於在你查詢的過程中,由於其他會話對資料塊進行操 作,而對所要查詢的塊有了修改,但是由於我們的查詢是在這些修改之前呼叫的,所以需要對回滾段中的資料塊的前映像進行查詢,以保證資料的一致性。這樣就產 生了一致性讀。
3、Physical Reads(物理讀)就是從磁碟上讀取資料塊的數量,其產生的主要原因是: 1、 在資料庫快取記憶體中不存在這些塊 2、 全表掃描 3、 磁碟排序
它們三者之間的關係大致可概括為:邏輯讀指的是Oracle從記憶體讀到的資料塊數量。一般來說是'consistent gets' + 'db block gets'。當在記憶體中找不到所需的資料塊的話就需要從磁碟中獲取,於是就產生了'phsical reads'。
分析表命令:
SQL>exec dbms_stats.gather_table_stats(user,'t');
分析表索引命令:
SQL>exec dbms_stats.gather_index_stats(user,'ind_t');
SET AUTOT[RACE] OFF 停止AutoTrace
SET AUTOT[RACE] ON 開啟AutoTrace,顯示AUTOTRACE資訊和SQL執行結果
SET AUTOT[RACE] TRACEONLY 開啟AutoTrace,僅顯示AUTOTRACE資訊
SET AUTOT[RACE] ON EXPLAIN 開啟AutoTrace,僅顯示AUTOTRACE的EXPLAIN資訊
SET AUTOT[RACE] ON STATISTICS開啟AutoTrace,僅顯示AUTOTRACE的STATISTICS資訊
set autotrace trace exp stat; 前面幾個的簡寫
資料庫讀的三個概念:
針對以上3個概念進行的說明解釋及關係如下: 1、DB Block Gets(當前請求的塊數目)當前模式塊意思就是在操作中正好提取的塊數目,而不是在一致性讀的情況下而產生的塊數。正常的情況下,一個查詢提取的塊是在查詢開始的那個時間點上存在的資料塊,當前塊是在這個時刻存在的資料塊,而不是在這個時間點之前或者之後的資料塊數目。
2、Consistent Gets(資料請求總數在回滾段Buffer中的資料一致性讀所需要的資料塊)這裡的概念是在處理你這個操作的時候需要在一致性讀狀態上處理多少個塊,這些塊產生的主要原因是因為由於在你查詢的過程中,由於其他會話對資料塊進行操 作,而對所要查詢的塊有了修改,但是由於我們的查詢是在這些修改之前呼叫的,所以需要對回滾段中的資料塊的前映像進行查詢,以保證資料的一致性。這樣就產 生了一致性讀。
3、Physical Reads(物理讀)就是從磁碟上讀取資料塊的數量,其產生的主要原因是: 1、 在資料庫快取記憶體中不存在這些塊 2、 全表掃描 3、 磁碟排序
它們三者之間的關係大致可概括為:邏輯讀指的是Oracle從記憶體讀到的資料塊數量。一般來說是'consistent gets' + 'db block gets'。當在記憶體中找不到所需的資料塊的話就需要從磁碟中獲取,於是就產生了'phsical reads'。
分析表命令:
SQL>exec dbms_stats.gather_table_stats(user,'t');
分析表索引命令:
SQL>exec dbms_stats.gather_index_stats(user,'ind_t');
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29196873/viewspace-1136334/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle sql執行計劃OracleSQL
- 如何檢視SQL的執行計劃SQL
- Oracle檢視執行計劃的命令Oracle
- Oracle SQL Profile固定執行計劃的方法OracleSQL
- 執行計劃-1:獲取執行計劃
- MySQL——通過EXPLAIN分析SQL的執行計劃MySqlAI
- SQL優化案例-從執行計劃定位SQL問題(三)SQL優化
- SQL最佳化案例-從執行計劃定位SQL問題(三)SQL
- .Oracle固定執行計劃之SQL PROFILE概要檔案OracleSQL
- SQL執行計劃異常引起的效能問題SQL
- SQL執行計劃異常 引起的效能問題SQL
- SQLServer統計監控SQL執行計劃突變的方法SQLServer
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- 獲取oracle sql語句詳細些執行計劃OracleSQL
- Oracle資料庫關於SQL的執行計劃(轉)Oracle資料庫SQL
- spark sql語句效能最佳化及執行計劃SparkSQL
- 檢視SQL執行計劃的幾種常用方法YQSQL
- 達夢資料庫SQL執行計劃檢視方法資料庫SQL
- 【TUNE_ORACLE】定製化執行計劃SQL參考OracleSQL
- 在MySQL中使用explain查詢SQL的執行計劃MySqlAI
- Oracle檢視sql_id 的歷史執行計劃OracleSQL
- MySQL執行計劃MySql
- SYBASE執行計劃
- MySQL 執行計劃MySql
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- Oracle DB 相關常用sql彙總7【手工繫結sql執行計劃】OracleSQL
- 檢視一個正在執行的sql的執行計劃(explain for connection processlist_id)SQLAI
- Oracle優化案例-從執行計劃定位SQL問題(三)Oracle優化SQL
- TiDB與MySQL的SQL差異及執行計劃簡析TiDBMySql
- 微課sql最佳化(9)、如何獲取執行計劃SQL
- 微課sql最佳化(11) 、如何檢視執行計劃SQL
- 利用SSIS在SQL Azure中執行計劃任務(下)KCSQL
- 利用SSIS在SQL Azure中執行計劃任務(上)DJSQL
- MySQL執行計劃解析MySql
- mysql explain 執行計劃MySqlAI
- explain執行計劃分析AI
- mysql執行計劃explainMySqlAI
- oracle 固定執行計劃Oracle
- 執行計劃執行步驟原則