婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > ORACLE數(shù)據(jù)庫(kù)查看執(zhí)行計(jì)劃的方法

ORACLE數(shù)據(jù)庫(kù)查看執(zhí)行計(jì)劃的方法

熱門(mén)標(biāo)簽:北京營(yíng)銷(xiāo)外呼系統(tǒng)廠家 貴陽(yáng)智能電銷(xiāo)機(jī)器人官網(wǎng) 外呼系統(tǒng)鄭州 外呼系統(tǒng)口號(hào) 北京外呼系統(tǒng)公司排名 地圖標(biāo)注付款了怎么找不到了 百度地圖標(biāo)注員是干什么 溫州人工外呼系統(tǒng) 沈陽(yáng)400電話是如何辦理
一、什么是執(zhí)行計(jì)劃(explain plan)

執(zhí)行計(jì)劃:一條查詢語(yǔ)句在ORACLE中的執(zhí)行過(guò)程或訪問(wèn)路徑的描述。

二、如何查看執(zhí)行計(jì)劃

1: 在PL/SQL下按F5查看執(zhí)行計(jì)劃。第三方工具toad等。

很多人以為PL/SQL的執(zhí)行計(jì)劃只能看到基數(shù)、優(yōu)化器、耗費(fèi)等基本信息,其實(shí)這個(gè)可以在PL/SQL工具里面設(shè)置的。可以看到很多其它信息,如下所示

2: 在SQL*PLUS(PL/SQL的命令窗口和SQL窗口均可)下執(zhí)行下面步驟

復(fù)制代碼 代碼如下:

SQL>EXPLAIN PLAN FOR
SELECT * FROM SCOTT.EMP; --要解析的SQL腳本
SQL>SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

3: 在SQL*PLUS下(有些命令在PL/SQL下無(wú)效)執(zhí)行如下命令:

復(fù)制代碼 代碼如下:

SQL>SET TIMING ON             --控制顯示執(zhí)行時(shí)間統(tǒng)計(jì)數(shù)據(jù)
SQL>SET AUTOTRACE ON EXPLAIN       --這樣設(shè)置包含執(zhí)行計(jì)劃、腳本數(shù)據(jù)輸出,沒(méi)有統(tǒng)計(jì)信息
SQL>執(zhí)行需要查看執(zhí)行計(jì)劃的SQL語(yǔ)句
SQL>SET AUTOTRACE OFF           --不生成AUTOTRACE報(bào)告,這是缺省模式
SQL> SET AUTOTRACE ON           --這樣設(shè)置包含執(zhí)行計(jì)劃、統(tǒng)計(jì)信息、以及腳本數(shù)據(jù)輸出
SQL>執(zhí)行需要查看執(zhí)行計(jì)劃的SQL語(yǔ)句
SQL>SET AUTOTRACE OFF
SQL> SET AUTOTRACE TRACEONLY      --這樣設(shè)置會(huì)有執(zhí)行計(jì)劃、統(tǒng)計(jì)信息,不會(huì)有腳本數(shù)據(jù)輸出
SQL>執(zhí)行需要查看執(zhí)行計(jì)劃的SQL語(yǔ)句
SQL>SET AUTOTRACE TRACEONLY STAT --這樣設(shè)置只包含有統(tǒng)計(jì)信息
SQL>執(zhí)行需要查看執(zhí)行計(jì)劃的SQL語(yǔ)句

SET AUTOT[RACE] {ON | OFF | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]

參考文檔:SQLPlus User's Guide and Reference Release 11.1

注意:PL/SQL Developer 工具并不完全支持所有的SQL*Plus命令,像SET AUTOTRACE ON 就如此,在PL/SQL Developer工具下執(zhí)行此命令會(huì)報(bào)錯(cuò)

SQL> SET AUTOTRACE ON;

Cannot SET AUTOTRACE

4:SQL_TRACE可以作為參數(shù)在全局啟用,也可以通過(guò)命令形式在具體SESSION啟用

4.1 在全局啟用,在參數(shù)文件(pfile/spfile)中指定SQL_TRACE =true,在全局啟用SQL_TRACE時(shí)會(huì)導(dǎo)致所有進(jìn)程活動(dòng)被跟蹤,包括后臺(tái)進(jìn)程以及用戶進(jìn)程,通常會(huì)導(dǎo)致比較嚴(yán)重的性能問(wèn)題,所以在生產(chǎn)環(huán)境要謹(jǐn)慎使用。

提示:通過(guò)在全局啟用SQL_TRACE, 我們可以跟蹤到所有后臺(tái)進(jìn)程的活動(dòng),很多在文檔中的抽象說(shuō)明,通過(guò)跟蹤文件的實(shí)時(shí)變化,我們可以清晰的看到各個(gè)進(jìn)程間的緊密協(xié)調(diào)。

4.2在當(dāng)前SESSION級(jí)別設(shè)置,通過(guò)跟蹤當(dāng)前進(jìn)程可以發(fā)現(xiàn)當(dāng)前操作的后臺(tái)數(shù)據(jù)庫(kù)遞歸活動(dòng)(這在研究數(shù)據(jù)庫(kù)新特性時(shí)尤其有效),研究SQL執(zhí)行時(shí),發(fā)現(xiàn)后臺(tái)

錯(cuò)誤等。

復(fù)制代碼 代碼如下:

SQL> ALTER SESSION SET SQL_TRACE=TRUE;
SQL> SELECT * FROM SCOTT.EMP;
SQL> ALTER SESSION SET SQL_TRACE =FALSE;

那么此時(shí)如何查看相關(guān)信息?不管你在SQL*PLUS抑或PL/SQL DEVELOPER工具里面執(zhí)行上面腳本過(guò)后都看不到什么信息,你可以通過(guò)下面腳本查詢到trace日志信息
復(fù)制代碼 代碼如下:

SELECT T.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' ||
P.SPID || '.trc' TRACE_FILE_NAME
FROM
( SELECT P.SPID
FROM V$MYSTAT M, V$SESSION S, V$PROCESS P
WHERE M.STATISTIC# =1
AND S.SID = M.SID
AND P.ADDR = S.PADDR
) P,
( SELECT T.INSTANCE
FROM V$THREAD T, V$PARAMETER V
WHERE V.NAME ='thread'
AND (V.VALUE = 0 OR T.THREAD# = TO_NUMBER(V.VALUE))
) I,
(SELECT VALUE FROM V$PARAMETER WHERE NAME='user_dump_dest') T

TKPROF的幫助信息如下

復(fù)制代碼 代碼如下:

TKPROF 選項(xiàng)
選項(xiàng) 說(shuō)明
TRACEFILE 跟蹤輸出文件的名稱
OUTPUTFILE 已設(shè)置格式的文件的名稱
SORT=option 語(yǔ)句的排序順序
PRINT=n 打印前 n 個(gè)語(yǔ)句
EXPLAIN=user/password 以指定的用戶名運(yùn)行 EXPLAIN PLAN
INSERT=filename 生成 INSERT 語(yǔ)句
SYS=NO 忽略作為用戶 sys 運(yùn)行的遞歸 SQL 語(yǔ)句
AGGREGATE=[Y|N] 如果指定 AGGREGATE = NO TKPROF 不聚集相同
SQL 文本的多個(gè)用戶
RECORD=filename 記錄在跟蹤文件中發(fā)現(xiàn)的語(yǔ)句
TABLE=schema.tablename 將執(zhí)行計(jì)劃放入指定的表而不是缺省的PLAN_TABLE

可以在操作系統(tǒng)中鍵入 tkprof 以獲得所有可用選項(xiàng)和輸出的列表
注 排序選項(xiàng)有

排序 選項(xiàng)說(shuō)明
prscnt execnt fchcnt 調(diào)用分析執(zhí)行提取的次數(shù)
prscpu execpu fchcpu 分析執(zhí)行提取所占用的 CPU 時(shí)間
prsela exela fchela 分析執(zhí)行提取所占用的時(shí)間
prsdsk exedsk fchdsk 分析執(zhí)行提取期間的磁盤(pán)讀取次數(shù)
prsqry exeqry fchqry 分析執(zhí)行提取期間用于持續(xù)讀取的緩沖區(qū)數(shù)
prscu execu fchcu 分析執(zhí)行提取期間用于當(dāng)前讀取的緩沖區(qū)數(shù)
prsmis exemis 分析執(zhí)行期間庫(kù)高速緩存未命中的次數(shù)
exerow fchrow 分析執(zhí)行期間處理的行數(shù)
userid 分析游標(biāo)的用戶的用戶 ID

TKPROF 統(tǒng)計(jì)數(shù)據(jù)
Count: 執(zhí)行調(diào)用數(shù)
CPU: CPU 的使用秒數(shù)
Elapsed: 總共用去的時(shí)間
Disk: 物理讀取次數(shù)
Query: 持續(xù)讀取的邏輯讀取數(shù)
Current: 當(dāng)前模式下的邏輯讀取數(shù)
Rows: 已處理行數(shù)
TKPROF 統(tǒng)計(jì)信息
統(tǒng)計(jì) 含義
Count 分析或執(zhí)行語(yǔ)句的次數(shù)以及為語(yǔ)句發(fā)出的提取調(diào)用數(shù)
CPU 每個(gè)階段的處理時(shí)間以秒為單位如果在共享池中找到該語(yǔ)句對(duì)于分析階段為 0
Elapsed 占用時(shí)間以秒為單位通常不是非常有用因?yàn)槠渌M(jìn)程影響占用時(shí)間
Disk 從數(shù)據(jù)庫(kù)文件讀取的物理數(shù)據(jù)塊如果該數(shù)據(jù)被緩沖則該統(tǒng)計(jì)可能很低
Query 為持續(xù)讀取檢索的邏輯緩沖區(qū)通常用于 SELECT 語(yǔ)句
Current 在當(dāng)前模式下檢索的邏輯緩沖區(qū)通常用于 DML 語(yǔ)句
Rows 外部語(yǔ)句所處理的行對(duì)于 SELECT 語(yǔ)句在提取階段顯示它對(duì)于 DML 語(yǔ)句在執(zhí)行階段顯示它

Query 和Current 的總和為所訪問(wèn)的邏輯緩沖區(qū)的總數(shù)

執(zhí)行下面命令:tkprof D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\TRACE/wgods_ora_3940.trc h:\out.txtoutputfile explain=etl/etl

執(zhí)行上面命令后,可以查看生成的文本文件
復(fù)制代碼 代碼如下:

TKPROF: Release 10.2.0.1.0 - Production on 星期三 5月 23 16:56:41 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\TRACE/wgods_ora_3940.trc
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
ALTER SESSION SET SQL_TRACE = TRUE
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: 89 (ETL)
********************************************************************************
begin :id := sys.dbms_transaction.local_transaction_id; end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 2 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 2
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 0 0 0 2
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: 89 (ETL)
********************************************************************************
SELECT *
FROM
SCOTT.EMP
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 2 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 7 0 14
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 0 7 0 14
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 89 (ETL)
Rows Execution Plan
------- ---------------------------------------------------
SELECT STATEMENT MODE: CHOOSE
TABLE ACCESS MODE: ANALYZED (FULL) OF 'EMP' (TABLE)
********************************************************************************
ALTER SESSION SET SQL_TRACE = FALSE
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 0 0 0
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 89 (ETL)
********************************************************************************
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 5 0.00 0.00 0 0 0 0
Execute 5 0.00 0.00 0 0 0 2
Fetch 1 0.00 0.00 0 7 0 14
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 11 0.00 0.00 0 7 0 16
Misses in library cache during parse: 2
Misses in library cache during execute: 1
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 0 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
user SQL statements in session.
internal SQL statements in session.
SQL statements in session.
statement EXPLAINed in this session.
********************************************************************************
Trace file: D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\TRACE/wgods_ora_3940.trc
Trace file compatibility: 10.01.00
Sort options: default
session in tracefile.
user SQL statements in trace file.
internal SQL statements in trace file.
SQL statements in trace file.
unique SQL statements in trace file.
SQL statements EXPLAINed using schema:
ETL.prof$plan_table
Default table was used.
Table was created.
Table was dropped.
lines in trace file.
elapsed seconds in trace file.

4.3跟蹤其它用戶的進(jìn)程,在很多時(shí)候我們需要跟蹤其它用戶的進(jìn)程,而不是當(dāng)前用戶,可以通過(guò)ORACLE提供的系統(tǒng)包
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION來(lái)完成。
例如:
復(fù)制代碼 代碼如下:

SELECT SID, SERIAL#, USERNAME FROM V$SESSION WHERE USERNAME = 'ETL'
EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(61,76,TRUE);
EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(61,76,FALSE);

5 利用10046事件
復(fù)制代碼 代碼如下:

ALTER SESSION SET TRACEFILE_IDENTIFIER = 10046;
ALTER SESSION SET EVENTS='10046 trace name context forever, level 8';
SELECT * FROM SCOTT.EMP;
ALTER SESSION SET EVENTS ='10046 trace name context off';
然后你可以用腳本查看追蹤文件的位置
SELECT T.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' ||
P.SPID || '.trc' TRACE_FILE_NAME
FROM
( SELECT P.SPID
FROM V$MYSTAT M, V$SESSION S, V$PROCESS P
WHERE M.STATISTIC# =1
AND S.SID = M.SID
AND P.ADDR = S.PADDR
) P,
( SELECT T.INSTANCE
FROM V$THREAD T, V$PARAMETER V
WHERE V.NAME ='thread'
AND (V.VALUE = 0 OR T.THREAD# = TO_NUMBER(V.VALUE))
) I,
(SELECT VALUE FROM V$PARAMETER WHERE NAME='user_dump_dest') T
查詢結(jié)果為wgods_ora_28279.trc文件, 但是去相應(yīng)目錄卻沒(méi)有找到對(duì)應(yīng)的追蹤文件,而是如下trace文件:wgods_ora_28279_10046.trc

6 利用10053事件

有點(diǎn)類(lèi)似10046,在此略過(guò)、

7 系統(tǒng)視圖

通過(guò)下面一些系統(tǒng)視圖,你可以看到一些零散的執(zhí)行計(jì)劃的相關(guān)信息,有興趣的話可以多去研究一下。
復(fù)制代碼 代碼如下:

SELECT * FROM V$SQL_PLAN
SELECT * FROM V$RSRC_PLAN_CPU_MTH
SELECT * FROM V$SQL_PLAN_STATISTICS
SELECT * FROM V$SQL_PLAN_STATISTICS_ALL
SELECT * FROM V$SQLAREA_PLAN_HASH
SELECT * FROM V$RSRC_PLAN_HISTORY

三、看懂執(zhí)行計(jì)劃

1.執(zhí)行順序

執(zhí)行順序的原則是:由上至下,從右向左

由上至下:在執(zhí)行計(jì)劃中一般含有多個(gè)節(jié)點(diǎn),相同級(jí)別(或并列)的節(jié)點(diǎn),靠上的優(yōu)先執(zhí)行,靠下的后執(zhí)行

從右向左:在某個(gè)節(jié)點(diǎn)下還存在多個(gè)子節(jié)點(diǎn),先從最靠右的子節(jié)點(diǎn)開(kāi)始執(zhí)行。

當(dāng)然,你在PL/SQL工具中也可以通過(guò)它提供的功能來(lái)查看執(zhí)行順序。如下圖所示:

2.執(zhí)行計(jì)劃中字段解釋

SQL>
名詞解釋:
recursive calls           遞歸調(diào)用
db block gets           從buffer cache中讀取的block的數(shù)量當(dāng)前請(qǐng)求的塊數(shù)目,當(dāng)前模式塊意思就是在操作中正好提取的塊數(shù)目,而不是在一致性讀的情況下而產(chǎn)生的正常情況下,一個(gè)查詢提取的塊是在查詢查詢開(kāi)始的那個(gè)時(shí)間點(diǎn)上存在的數(shù)據(jù)庫(kù),當(dāng)前塊是在這個(gè)時(shí)候存在數(shù)據(jù)塊,而不是這個(gè)時(shí)間點(diǎn)之前或者之后的的數(shù)據(jù)塊數(shù)目。
consistent gets          從buffer cache中讀取的undo數(shù)據(jù)的block的數(shù)量數(shù)據(jù)請(qǐng)求總數(shù)在回滾段Buffer中的數(shù)據(jù)一致性讀所需要的數(shù)據(jù)塊,,這里的概念是在你處理你這個(gè)操作的時(shí)侯需要在一致性讀狀態(tài)上處理多個(gè)塊,這些塊產(chǎn)生的主要原因是因?yàn)槟阍诓樵冞^(guò)程中,由于其它會(huì)話對(duì)數(shù)據(jù) 塊進(jìn)行操作,而對(duì)所要查詢的塊有了修改,但是由于我們的查詢是在這些修改之前調(diào)用的,所要需要對(duì)回滾 段中的數(shù)據(jù)塊的前映像進(jìn)行查詢,以保證數(shù)據(jù)的一致性。這樣就產(chǎn)生了一致性讀。

physical reads           物理讀 就是從磁盤(pán)上讀取數(shù)據(jù)塊的數(shù)量。其產(chǎn)生的主要原因是:
                  1:在數(shù)據(jù)庫(kù)高速緩存中不存在這些塊。
                  2:全表掃描
                  3:磁盤(pán)排序
redo size              DML生成的redo的大小
sorts (memory)           在內(nèi)存執(zhí)行的排序量
sorts (disk)            在磁盤(pán)執(zhí)行的排序量
2091 bytes sent via SQL*Net to client     從SQL*Net向客戶端發(fā)送了2091字節(jié)的數(shù)據(jù)
416 bytes received via SQL*Net from client  客戶端向SQL*Net發(fā)送了416字節(jié)的數(shù)據(jù)。
參考文檔:SQLPlus User's Guide and Reference Release 11.1

db block gets 、 consistent gets 、 physical reads這三者的關(guān)系可以概括為:邏輯讀指的是ORACLE從內(nèi)存讀到的數(shù)據(jù)塊塊數(shù)量,一般來(lái)說(shuō)是:
consistent gets + db block gets. 當(dāng)在內(nèi)存中找不到所需要的數(shù)據(jù)塊的話,就需要從磁盤(pán)中獲取,于是就產(chǎn)生了物理讀。
3.具體內(nèi)容查看
1> Plan hash Value
這一行是這一條語(yǔ)句的的hash值,我們知道ORACLE對(duì)每一條ORACLE語(yǔ)句產(chǎn)生的執(zhí)行計(jì)劃放在SHARE POOL里面,第一次要經(jīng)過(guò)硬解析,產(chǎn)生hash值。下次再執(zhí)行時(shí)比較hash值,如果相同就不會(huì)執(zhí)行硬解析。
2> COST

COST沒(méi)有單位,是一個(gè)相對(duì)值,是SQL以CBO方式解析執(zhí)行計(jì)劃時(shí),供ORACLE來(lái)評(píng)估CBO成本,選擇執(zhí)行計(jì)劃用的。沒(méi)有明確的含義,但是在對(duì)比是就非常有用。
公式:COST=(Single Block I/O COST + MultiBlock I/O Cost + CPU Cost)/ Sreadtim

3> 對(duì)上面執(zhí)行計(jì)劃列字段的解釋:
Id: 執(zhí)行序列,但不是執(zhí)行的先后順序。執(zhí)行的先后根據(jù)Operation縮進(jìn)來(lái)判斷(采用最右最上最先執(zhí)行的原則看層次關(guān)系,在同一級(jí)如果某個(gè)動(dòng)作沒(méi)有子ID就最先執(zhí)行。一般按縮進(jìn)長(zhǎng)度來(lái)判斷,縮進(jìn)最大的最先執(zhí)行,如果有2行縮進(jìn)一樣,那么就先執(zhí)行上面的。)
    Operation:當(dāng)前操作的內(nèi)容。
    Name:操作對(duì)象
    Rows:也就是10g版本以前的Cardinality(基數(shù)),Oracle估計(jì)當(dāng)前操作的返回結(jié)果集行數(shù)。
    Bytes:表示執(zhí)行該步驟后返回的字節(jié)數(shù)。
    Cost(CPU):表示執(zhí)行到該步驟的一個(gè)執(zhí)行成本,用于說(shuō)明SQL執(zhí)行的代價(jià)。
    Time:Oracle 估計(jì)當(dāng)前操作的時(shí)間。
4.謂詞說(shuō)明:
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("B"."MGR" IS NOT NULL)
4 - access("A"."EMPNO" = "B"."MGR")
    Access: 表示這個(gè)謂詞條件的值將會(huì)影響數(shù)據(jù)的訪問(wèn)路勁(全表掃描還是索引)。
    Filter:表示謂詞條件的值不會(huì)影響數(shù)據(jù)的訪問(wèn)路勁,只起過(guò)濾的作用。
    在謂詞中主要注意access,要考慮謂詞的條件,使用的訪問(wèn)路徑是否正確。
5、 動(dòng)態(tài)分析
如果在執(zhí)行計(jì)劃中有如下提示:
Note
------------
-dynamic sampling used for the statement
這提示用戶CBO當(dāng)前使用的技術(shù),需要用戶在分析計(jì)劃時(shí)考慮到這些因素。 當(dāng)出現(xiàn)這個(gè)提示,說(shuō)明當(dāng)前表使用了動(dòng)態(tài)采樣。我們從而推斷這個(gè)表可能沒(méi)有做過(guò)分析。
這里會(huì)出現(xiàn)兩種情況:
(1) 如果表沒(méi)有做過(guò)分析,那么CBO可以通過(guò)動(dòng)態(tài)采樣的方式來(lái)獲取分析數(shù)據(jù),也可以或者正確的執(zhí)行計(jì)劃。
(2) 如果表分析過(guò),但是分析信息過(guò)舊,這時(shí)CBO就不會(huì)在使用動(dòng)態(tài)采樣,而是使用這些舊的分析數(shù)據(jù),從而可能導(dǎo)致錯(cuò)誤的執(zhí)行計(jì)劃。

四、表訪問(wèn)方式

1.Full Table Scan (FTS) 全表掃描

2.Index Lookup 索引掃描
There are 5 methods of index lookup:
index unique scan --索引唯一掃描
通過(guò)唯一索引查找一個(gè)數(shù)值經(jīng)常返回單個(gè)ROWID,如果存在UNIQUE或PRIMARY KEY約束(它保證了語(yǔ)句只存取單行的話),ORACLE
經(jīng)常實(shí)現(xiàn)唯一性掃描
Method for looking up a single key value via a unique index. always returns a single value, You must supply AT LEAST the leading column of the index to access data via the index.
index range scan --索引局部掃描
Index range scan is a method for accessing a range values of a particular column. AT LEAST the leading column of the index must be supplied to access data via the index. Can be used for range operations (e.g. > > >= = between) .
使用一個(gè)索引存取多行數(shù)據(jù),在唯一索引上使用索引范圍掃描的典型情況是在謂詞(WHERE 限制條件)中使用了范圍操作符號(hào)(如>, >, >=, =,BWTEEN)
index full scan --索引全局掃描
Full index scans are only available in the CBO as otherwise we are unable to determine whether a full scan would be a good idea or not. We choose an index Full Scan when we have statistics that indicate that it is going to be more efficient than a Full table scan and a sort. For example we may do a Full index scan when we do an unbounded scan of an index and want the data to be ordered in the index order.
index fast full scan --索引快速全局掃描,不帶order by情況下常發(fā)生
Scans all the block in the index, Rows are not returned in sorted order, Introduced in 7.3 and requires V733_PLANS_ENABLED=TRUE and CBO, may be hinted using INDEX_FFS hint, uses multiblock i/o, can be executed in parallel, can be used to access second column of concatenated indexes. This is because we are selecting all of the index.
index skip scan --索引跳躍掃描,where條件列是非索引的前提情況下常發(fā)生
Index skip scan finds rows even if the column is not the leading column of a concatenated index. It skips the first column(s) during the search.
3.Rowid 物理ID掃描
This is the quickest access method available.Oracle retrieves the specified block and extracts the rows it is interested in. --Rowid掃描是最快的訪問(wèn)數(shù)據(jù)方式
您可能感興趣的文章:
  • Oracle中獲取執(zhí)行計(jì)劃的幾種方法分析
  • Oracle中使用DBMS_XPLAN處理執(zhí)行計(jì)劃詳解
  • 查看Oracle的執(zhí)行計(jì)劃一句話命令
  • Oracle中基于hint的3種執(zhí)行計(jì)劃控制方法詳細(xì)介紹
  • Oracle中直方圖對(duì)執(zhí)行計(jì)劃的影響詳解

標(biāo)簽:潮州 衡水 定西 包頭 淮北 衢州 通遼 溫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ORACLE數(shù)據(jù)庫(kù)查看執(zhí)行計(jì)劃的方法》,本文關(guān)鍵詞  ORACLE,數(shù)據(jù)庫(kù),查看,執(zhí)行,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ORACLE數(shù)據(jù)庫(kù)查看執(zhí)行計(jì)劃的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于ORACLE數(shù)據(jù)庫(kù)查看執(zhí)行計(jì)劃的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产欧美一区二区精品婷婷| 男人的天堂亚洲一区| 欧美性色黄大片手机版| 国产午夜亚洲精品午夜鲁丝片 | 日韩精品一区二区三区四区| 色哟哟国产精品| 久久久美女毛片| 久久精品99国产国产精| 欧美激情一区在线观看| 精品视频999| 日韩精品一区二区三区视频在线观看| 3atv一区二区三区| 国产精品美女久久久久久久久久久| 激情综合色播五月| 欧美专区日韩专区| 亚洲男人的天堂网| 色天天综合久久久久综合片| 欧美绝品在线观看成人午夜影视| 五月激情综合色| 成人免费看片app下载| 国产精品国产三级国产aⅴ原创| 欧美另类一区二区三区| 中文字幕国产精品一区二区| 成人激情校园春色| 欧美少妇性性性| 亚洲韩国一区二区三区| 久久久www成人免费毛片麻豆| 激情欧美一区二区| 欧美三区在线观看| 精品国产网站在线观看| 不卡的电影网站| 久久丁香综合五月国产三级网站 | 欧美日韩一级二级三级| 亚洲一区二区三区四区五区中文 | 国产视频不卡一区| 久久精工是国产品牌吗| 91精品国产综合久久小美女| 91视视频在线直接观看在线看网页在线看| 丰满放荡岳乱妇91ww| 久久国产福利国产秒拍| 亚洲午夜精品网| 国产日产欧产精品推荐色| 午夜日韩在线电影| 亚洲精品日韩专区silk| 亚洲视频狠狠干| 成人午夜av影视| 国产欧美一区二区三区网站| 26uuu久久综合| 久久久精品天堂| 国产丝袜在线精品| 亚洲高清视频的网址| 欧美久久久久久久久| 久久精品免费在线观看| 日韩一区欧美一区| 日韩国产精品大片| 久久99热99| av在线播放一区二区三区| 在线亚洲一区二区| 在线电影院国产精品| 国产精品久久久久精k8| 亚洲精品在线观| 亚洲va天堂va国产va久| 在线精品视频小说1| 在线观看网站黄不卡| 久久精品久久久精品美女| 91精品国产综合久久精品app| 狠狠色狠狠色综合系列| 日本一区二区三区免费乱视频| 国产精品理伦片| 一区二区三区日韩精品| 国产日韩欧美不卡| 婷婷开心激情综合| 国产精品初高中害羞小美女文| 欧美另类一区二区三区| 99在线视频精品| 国产在线国偷精品产拍免费yy| 亚洲精品第1页| 日韩欧美国产午夜精品| 欧美中文字幕一二三区视频| 中文字幕欧美日本乱码一线二线 | 91麻豆国产自产在线观看| 日韩av电影天堂| www亚洲一区| 国产视频在线观看一区二区三区 | 国产在线一区二区综合免费视频| av电影天堂一区二区在线观看| 国产精品国产三级国产aⅴ中文| 久久久久久久久久久电影| 一区二区国产视频| 亚洲影视资源网| 2021久久国产精品不只是精品| wwwwxxxxx欧美| 26uuu久久天堂性欧美| 欧美性xxxxxxxx| 国产美女精品在线| 亚洲自拍都市欧美小说| 日韩欧美在线观看一区二区三区| 99视频在线观看一区三区| 高清成人在线观看| 美女一区二区视频| 亚洲一级二级在线| 亚洲综合在线观看视频| 欧美在线视频不卡| 懂色一区二区三区免费观看| 国产ts人妖一区二区| 成人av在线资源网站| 国产福利一区在线| 美女在线视频一区| 丰满白嫩尤物一区二区| 久久超级碰视频| 亚洲成a人片综合在线| 奇米影视一区二区三区小说| 久久嫩草精品久久久久| 欧美精选午夜久久久乱码6080| 国产精品18久久久久| 一区二区三区免费网站| 欧美日韩一区二区在线视频| 成人性生交大片免费| 精品一区二区在线看| 久久综合狠狠综合久久综合88| 欧美系列亚洲系列| 国产精品自拍一区| 一区二区免费看| 精品国产91乱码一区二区三区| 99v久久综合狠狠综合久久| 亚洲成人免费在线| 亚洲一区在线电影| 欧美激情综合网| 欧美日韩国产综合久久| 国产一区二区三区黄视频| 3d动漫精品啪啪1区2区免费| 亚洲成在人线免费| 欧美日韩亚洲另类| 狠狠色2019综合网| 午夜久久久久久电影| 国产精品嫩草影院av蜜臀| 91免费视频网| av在线不卡观看免费观看| 久久精品国产亚洲a| 一区二区三区影院| 综合色中文字幕| 精品国产青草久久久久福利| 91麻豆精品国产91久久久更新时间| 日韩一区二区免费高清| 91精品一区二区三区在线观看| 欧美性受xxxx黑人xyx| 欧美系列日韩一区| 日韩欧美综合在线| 在线观看欧美精品| 色94色欧美sute亚洲13| 五月天国产精品| 一区二区三区四区不卡在线| 精品剧情在线观看| 欧美人伦禁忌dvd放荡欲情| 欧美电视剧在线看免费| 欧美视频一区二区在线观看| 欧美日韩美女一区二区| 日韩一级二级三级| 国产亚洲视频系列| 一级中文字幕一区二区| 天天做天天摸天天爽国产一区| 性做久久久久久久免费看| 五月婷婷久久丁香| 日韩电影在线免费| 麻豆精品国产传媒mv男同| 美女看a上一区| 99久久精品一区二区| 欧美精品丝袜久久久中文字幕| 欧美一卡二卡在线观看| 国产精品三级视频| 亚洲色欲色欲www| 亚洲一区二区中文在线| 国产酒店精品激情| 欧美日韩一区视频| 欧美日韩亚洲综合一区二区三区| 久久久影视传媒| 亚洲综合另类小说| 亚洲狠狠爱一区二区三区| 成人激情午夜影院| 精品国产1区二区| 亚洲电影欧美电影有声小说| 亚洲女子a中天字幕| 97精品国产露脸对白| 精品国产伦一区二区三区免费| 亚洲h动漫在线| 久久 天天综合| 色94色欧美sute亚洲线路一ni| 欧美性大战久久久久久久| 欧美国产激情二区三区| 亚洲五码中文字幕| 国产精品白丝av| 国产精品久久久久久久久动漫| 亚洲123区在线观看| 一本久道久久综合中文字幕| 2020国产精品自拍| 亚洲一级在线观看| 欧美亚洲动漫精品| 亚洲主播在线观看| 日本福利一区二区| 日本在线不卡一区|