日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【性能优化】 之 10053 事件

發布時間:2024/4/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【性能优化】 之 10053 事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.驗證全表掃描的成本計算公式,貼出執行計劃和計算公式。<br>
2.給出B-tree索引 Unique scan的成本計算公式,貼出執行計劃和計算公式。<br>
3.通過10053事件分析一個SQL執行計劃的產生過程,需要貼出trace中的相關信息和必要的文字說明。<br>
4.當統計信息不準確時,CBO可能產生錯誤的執行計劃,請給出這樣的一個例子,在10053 trace中找到CBO出錯的位置,并給出必要的文字說明。<br>

========================================================================================================
1.驗證全表掃描的成本計算公式,貼出執行計劃和計算公式。<br>

答:


C:\Users\Administrator>sqlplus tang/sa@orcl

SQL*Plus: Release 11.2.0.1.0 Production on Thu Dec 19 15:35:55 2013

Copyright (c) 1982, 2010, Oracle.? All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create table t12 as select * from dba_objects;

Table created.

SQL>
--對表t12進行統計分析,不做直方圖
SQL> begin
? 2? dbms_stats.gather_table_stats(user,'T12',CASCADE=>TRUE,ESTIMATE_PERCENT=> NULL,
? 3? METHOD_OPT=>'for all columns size 1');
? 4? end;
? 5? /

PL/SQL procedure successfully completed.

SQL>

SQL> set linesize 800;
SQL> set pagesize 400;

--數據庫塊大小8K
SQL>show parameter db_block_size
?
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
db_block_size??????????????????????? integer???? 8192

--查看一次IO讀多少個塊
SQL> show parameter db_file;

NAME?? ??? ??? ??? ??? ??? ??? ??? ?TYPE?? ??? ??? ??? ??? ??? ??? ??? ?VALUE
-------?? ??? ??? ??? ??? ??? ??? ??? ?-------------?? ??? ??? ??? ??? ??? ?----------------------

db_file_multiblock_read_count??????? integer?????????????????????????????? 128
db_file_name_convert???????????????? string
db_files???????????????????????????? integer?????????????????????????????? 200
SQL>

--查看t表所用塊數
SQL> select blocks from user_tables where table_name='T12';

??? BLOCKS
----------
????? 1115

SQL>


SQL>select * from sys.aux_stats$

? ??? ?SNAME?? ??? ??? ?PNAME?? ??? ?PVAL1?? ??? ??? ?PVAL2
?? ?-----------------------------------------------------
1?? ?SYSSTATS_INFO?? ?STATUS?? ??? ??? ??? ??? ??? ?COMPLETED
2?? ?SYSSTATS_INFO?? ?DSTART?? ??? ??? ??? ??? ??? ?11-03-2011 06:38
3?? ?SYSSTATS_INFO?? ?DSTOP?? ??? ??? ??? ??? ??? ?11-03-2011 06:38
4?? ?SYSSTATS_INFO?? ?FLAGS?? ??? ?1?? ?
5?? ?SYSSTATS_MAIN?? ?CPUSPEEDNW?? ?1720.20725388601?? ?
6?? ?SYSSTATS_MAIN?? ?IOSEEKTIM?? ?10?? ?
7?? ?SYSSTATS_MAIN?? ?IOTFRSPEED?? ?4096?? ?
8?? ?SYSSTATS_MAIN?? ?SREADTIM?? ??? ?
9?? ?SYSSTATS_MAIN?? ?MREADTIM?? ??? ?
10?? ?SYSSTATS_MAIN?? ?CPUSPEED?? ??? ?
11?? ?SYSSTATS_MAIN?? ?MBRC?? ??? ?
12?? ?SYSSTATS_MAIN?? ?MAXTHR?? ??? ?
13?? ?SYSSTATS_MAIN?? ?SLAVETHR?? ??? ?



SQL> set autot trace exp;
SQL> select * from t12;

Execution Plan
----------------------------------------------------------
Plan hash value: 2727786061

--------------------------------------------------------------------------
| Id? | Operation???????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
--------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT? |????? | 76437 |? 7315K|?? 306?? (1)| 00:00:04 |
|?? 1 |? TABLE ACCESS FULL| T12? | 76437 |? 7315K|?? 306?? (1)| 00:00:04 |
--------------------------------------------------------------------------

SQL>

成本計算公式:
?Cost = (
???????? #SRds +
???????? #MRds * mreadtim/sreadtim +
???????? CPUCycles / (cpuspeed*sreadtim)
???????? )
?--注釋:
?#SRDs - number of single block reads?? ?單塊讀 的塊數
?#MRDs - number of multi block reads?? ?多塊多 的塊數
?#CPUCycles - number of CPU Cycles?? ??? ?CPU頻率
?sreadtim? - single block read time?? ??? ?單塊讀的時間
?mreadtim - multi block read time?? ??? ?多塊讀的時間
?cpuspeed? -? CPU cycles per second?? ??? ?CPU當前速度


1.#SRds=0 因為是全表掃描;
2.#MRds=塊數/多塊讀參數值=1115/128 =8.7109375 ?


SELECT TABLE_NAME,T.BLOCKS
FROM DBA_TABLES T WHERE T.TABLE_NAME='T12'
? ??? ?TABLE_NAME?? ?BLOCKS
?? ?-----------------------
1?? ?T12?? ?1115



3.#mreadtim

mreadtim =ioseektim+db_file_multiblock_count*db_block_size/iotftspeed=10+128*8192/4096=266



?? ?相關參數查詢:
?? ?SQL> select pval1 from sys.aux_stats$ where pname = 'IOSEEKTIM';

?? ??? ? PVAL1
?? ?----------
?? ??? ??? ?10

?? ?SQL> select value from v$parameter? where name='db_file_multiblock_read_count';
?? ??? ?VALUE
?? ??? ?---------------------------------------------------------------------------------------
?? ??? ?128

?? ?SQL> select value from v$parameter where name='db_block_size';

?? ?VALUE
?? ?--------------------------------------------------------------------------------
?? ?8192



?? ?SQL>? select pval1 from SYS.aux_stats$ where pname='IOTFRSPEED';

?? ??? ? PVAL1
?? ?----------
?? ??? ?? 4096





sreadtim =ioseektim+db_block_size/iotfrspeed=10+8192/4096=12

?相關參數數值:
??? SQL> select pval1 from sys.aux_stats$ where pname = 'IOSEEKTIM';
????? PVAL1
?----------
???????? 10
???? SQL> select value from v$parameter where name='db_block_size';
???? VALUE
???? --------------------------------------------------------------------------------------
???? 8192
???? SQL> select pval1 from sys.aux_stats$ where pname = 'IOTFRSPEED';
????? PVAL1
??? ----------
?????? 4096
?


CPUCycles? = 40808.316
CPUCycles等于 PLAN_TABLE里面的CPU_COST數值。

?? ?SQL> explain plan for select * from t12;
?? ?Explained.
?? ?
?? ?SQL> select cpu_cost from plan_table;
?? ? CPU_COST
?? ? --------------
?? ?40808316

?? ??? ?所以CPUCycles數值為40808316 ms,換算成s為 40808.316。
?? ?
6、cpuspeed
?? ??? ? cpuspeed 等于 CPUSPEEDNW的數值。
?? ??? ? SQL> select pval1 from sys.aux_stats$ where pname='CPUSPEEDNW';
?? ??? ?? PVAL1
?? ? ----------
?? ? 1720.20725

cpuspeed =? 1720.20725
?



Cost =#SRds+#MRds* mreadtim/sreadtim+#CPUCycles/(cpuspeed*sreadtim)

=0+(1115/128) * 266 / 12+? 40808.316/(1720.20725* 12)

?SQL> select ceil(0+1115/128 * 266 / 12+? 40808.316/(1720.20725* 12)) from dual;
?=196
?
196 與執行計劃的306 差異為? 113,差異很大。還得再找原因。

經測試,如果把參數db_file_multiblock_read_count修改成 16以后,

上面的公式計算出的成本 為:

mreadtim =ioseektim+db_file_multiblock_count*db_block_size/iotftspeed=10+16*8192/4096=42



Cost = ceil(0+(1115/16) * 42 / 12+? 40808.316/(1720.20725* 12)) =246

倒是很執行計劃的計算沒有多少差別了。

SQL> alter session set db_file_multiblock_read_count=16;

Session altered.

SQL> show parameter db_file_multi;

NAME?? ??? ??? ??? ??? ??? ??? ??? ?TYPE?? ????? VALUE
------ ------------------------------------------------------
db_file_multiblock_read_count??????? integer????? 16
SQL> set autot trace exp;
SQL> select * from t12;

Execution Plan
----------------------------------------------------------
Plan hash value: 2727786061

--------------------------------------------------------------------------
| Id? | Operation???????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
--------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT? |????? | 76437 |? 7315K|?? 248?? (1)| 00:00:03 |
|?? 1 |? TABLE ACCESS FULL| T12? | 76437 |? 7315K|?? 248?? (1)| 00:00:03 |
--------------------------------------------------------------------------


--------------------------------------------------------------------------------------------------
2.給出B-tree索引 Unique scan的成本計算公式,貼出執行計劃和計算公式。<br>

?? ?SQL>
?? ?SQL> set autot trace exp;
?? ?SQL> select * from t12;

?? ?Execution Plan
?? ?----------------------------------------------------------
?? ?Plan hash value: 2727786061

?? ?--------------------------------------------------------------------------
?? ?| Id? | Operation???????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
?? ?--------------------------------------------------------------------------
?? ?|?? 0 | SELECT STATEMENT? |????? | 76437 |? 7315K|?? 306?? (1)| 00:00:04 |
?? ?|?? 1 |? TABLE ACCESS FULL| T12? | 76437 |? 7315K|?? 306?? (1)| 00:00:04 |
?? ?--------------------------------------------------------------------------

?? ?SQL> show parameter version;
?? ?SQL>
?? ?SQL>
?? ?SQL> create unique index pk_t12_id on t12(object_id);

?? ?Index created.

?? ?SQL> set linesize 200;
?? ?SQL> set pagesize 500;
?? ?SQL> set autot trace exp
?? ?SQL> ;
?? ?? 1* create unique index pk_t12_id on t12(object_id)
?? ?SQL> select * from t12 where object_id=1000;

?? ?Execution Plan
?? ?----------------------------------------------------------
?? ?Plan hash value: 1871783013

?? ?-----------------------------------------------------------------------------------------
?? ?| Id? | Operation?????????????????? | Name????? | Rows? | Bytes | Cost (%CPU)| Time???? |
?? ?-----------------------------------------------------------------------------------------
?? ?|?? 0 | SELECT STATEMENT??????????? |?????????? |???? 1 |??? 98 |???? 2?? (0)| 00:00:01 |
?? ?|?? 1 |? TABLE ACCESS BY INDEX ROWID| T12?????? |???? 1 |??? 98 |???? 2?? (0)| 00:00:01 |
?? ?|*? 2 |?? INDEX UNIQUE SCAN???????? | PK_T12_ID |???? 1 |?????? |???? 1?? (0)| 00:00:01 |
?? ?-----------------------------------------------------------------------------------------

?? ?Predicate Information (identified by operation id):
?? ?---------------------------------------------------

?? ??? 2 - access("OBJECT_ID"=1000)

?? ?SQL> set autot off;
?? ?SQL> select index_name,blevel,leaf_blocks,clustering_factor,num_rows from user_indexes where index_name='PK_T12_ID';

?? ?INDEX_NAME????????? BLEVEL LEAF_BLOCKS CLUSTERING_FACTOR?? NUM_ROWS
?? ?------------------ ---------- ----------- ----------------- ----------
?? ?PK_T12_ID????????? 1???????? 159????????????? 1299????? 76430

?? ?SQL>

?? ?--計算Unique scan成本
?? ? Unique scan的成本計算公式=blevel+1=1+1=2
?? ? --小結:
?? ? 手工計算的Unique scan的成本為1與執行計劃的Cost相同





--------------------------------------------------------------------------------------------------
3.通過10053事件分析一個SQL執行計劃的產生過程,需要貼出trace中的相關信息和必要的文字說明。<br>


3.1為了查看有索引時的執行計劃,先建立一個索引
SQL> create index idx_t12_owner on t12(owner);

Index created.

SQL>


SQL> execute dbms_stats.gather_table_stats(user,'T12',cascade=>true,estimate_percent=>null,method_opt=>'for all columns size 1');
PL/SQL procedure successfully completed


SQL>
SQL> create table t12_owner as select * from (select distinct owner from t12 ) where rownum<=10;

Table created.


SQL> execute dbms_stats.gather_table_stats(user,'T12_OWNER',cascade=>true,estimate_percent=>null,method_opt=>'for all columns size 1');
PL/SQL procedure successfully completed


SQL> alter system flush shared_pool;

System altered.

SQL> /

System altered.

SQL> /

System altered.

SQL> set linesize 400;
SQL> set pagesize 400;
SQL> select count(*) from t12_owner o,t12? t where o.owner=t.owner;

Execution Plan
----------------------------------------------------------
Plan hash value: 1246238126

-------------------------------------------------------------------------------------
| Id? | Operation?????????? | Name????????? | Rows? | Bytes | Cost (%CPU)| Time???? |
-------------------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT??? |?????????????? |???? 1 |??? 15 |??? 53?? (0)| 00:00:01 |
|?? 1 |? SORT AGGREGATE???? |?????????????? |???? 1 |??? 15 |??????????? |????????? |
|?? 2 |?? NESTED LOOPS????? |?????????????? | 24657 |?? 361K|??? 53?? (0)| 00:00:01 |
|?? 3 |??? TABLE ACCESS FULL| T12_OWNER???? |??? 10 |??? 90 |???? 3?? (0)| 00:00:01 |
|*? 4 |??? INDEX RANGE SCAN | IDX_T12_OWNER |? 2466 | 14796 |???? 5?? (0)| 00:00:01 |
-------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

?? 4 - access("O"."OWNER"="T"."OWNER")

SQL>

SQL> set autot off;
SQL> alter system flush shared_pool;

System altered.

SQL> alter system flush shared_pool;

System altered.

SQL> alter system flush shared_pool;

System altered.

SQL> alter session set events '10053 trace name context forever, level 2';

Session altered.

SQL> select count(*) from t12_owner o,t12? t where o.owner=t.owner;

? COUNT(*)
----------
????? 6162

SQL> alter session set events '10053 trace name context off';

Session altered.

SQL>EXIT





trace file contect:
-------------------------------------------------------------------------------------------------
跟蹤文件內容解讀


? ***************************************
? PARAMETERS IN OPT_PARAM HINT
? ****************************
***************************************
Column Usage Monitoring is ON: tracking level = 1
***************************************

Considering Query Transformations on query block SEL$1 (#0)
**************************
Query transformations (QT)
**************************
JF: Checking validity of join factorization for query block SEL$1 (#0)
JF: Bypassed: not a UNION or UNION-ALL query block.
ST: not valid since star transformation parameter is FALSE
TE: Checking validity of table expansion for query block SEL$1 (#0)
TE: Bypassed: No partitioned table in query block.
CBQT bypassed for query block SEL$1 (#0): no complex view, sub-queries or UNION (ALL) queries.
CBQT: Validity checks failed for 530jrynjh1h0c.
CSE: Considering common sub-expression elimination in query block SEL$1 (#0)
*************************
Common Subexpression elimination (CSE)
*************************
CSE:???? CSE not performed on query block SEL$1 (#0).
OBYE:?? Considering Order-by Elimination from view SEL$1 (#0)
***************************
Order-by elimination (OBYE)
***************************
OBYE:???? OBYE bypassed: no order by to eliminate.
JE:?? Considering Join Elimination on query block SEL$1 (#0)
*************************
Join Elimination (JE)?? ?
*************************
SQL:******* UNPARSED QUERY IS *******
SELECT COUNT(*) "COUNT(*)" FROM "TANG"."T12_OWNER" "O","TANG"."T12" "T" WHERE "O"."OWNER"="T"."OWNER"
JE:?? cfro: T12_OWNER objn:98415 col#:1 dfro:T12 dcol#:1
JE:?? cfro: T12 objn:98532 col#:1 dfro:T12_OWNER dcol#:1
SQL:******* UNPARSED QUERY IS *******
SELECT COUNT(*) "COUNT(*)" FROM "TANG"."T12_OWNER" "O","TANG"."T12" "T" WHERE "O"."OWNER"="T"."OWNER"
Query block SEL$1 (#0) unchanged
CVM: Considering view merge in query block SEL$1 (#0)
OJE: Begin: find best directive for query block SEL$1 (#0)
OJE: End: finding best directive for query block SEL$1 (#0)
CNT:?? Considering count(col) to count(*) on query block SEL$1 (#0)
*************************
Count(col) to Count(*) (CNT)
*************************
CNT:???? COUNT() to COUNT(*) not done.
JE:?? Considering Join Elimination on query block SEL$1 (#0)
*************************
Join Elimination (JE)?? ?
*************************
SQL:******* UNPARSED QUERY IS *******
SELECT COUNT(*) "COUNT(*)" FROM "TANG"."T12_OWNER" "O","TANG"."T12" "T" WHERE "O"."OWNER"="T"."OWNER"
JE:?? cfro: T12_OWNER objn:98415 col#:1 dfro:T12 dcol#:1
JE:?? cfro: T12 objn:98532 col#:1 dfro:T12_OWNER dcol#:1
SQL:******* UNPARSED QUERY IS *******
SELECT COUNT(*) "COUNT(*)" FROM "TANG"."T12_OWNER" "O","TANG"."T12" "T" WHERE "O"."OWNER"="T"."OWNER"
Query block SEL$1 (#0) unchanged
query block SEL$1 (#0) unchanged
Considering Query Transformations on query block SEL$1 (#0)
**************************
Query transformations (QT)
**************************
JF: Checking validity of join factorization for query block SEL$1 (#0)
JF: Bypassed: not a UNION or UNION-ALL query block.
ST: not valid since star transformation parameter is FALSE
TE: Checking validity of table expansion for query block SEL$1 (#0)
TE: Bypassed: No partitioned table in query block.
CBQT bypassed for query block SEL$1 (#0): no complex view, sub-queries or UNION (ALL) queries.
CBQT: Validity checks failed for 530jrynjh1h0c.
CSE: Considering common sub-expression elimination in query block SEL$1 (#0)
*************************
Common Subexpression elimination (CSE)
*************************
CSE:???? CSE not performed on query block SEL$1 (#0).
SU: Considering subquery unnesting in query block SEL$1 (#0)
********************
Subquery Unnest (SU)
********************
SJC: Considering set-join conversion in query block SEL$1 (#0)
*************************
Set-Join Conversion (SJC)
*************************
SJC: not performed
JE:?? Considering Join Elimination on query block SEL$1 (#0)
*************************
Join Elimination (JE)?? ?
*************************
SQL:******* UNPARSED QUERY IS *******
SELECT COUNT(*) "COUNT(*)" FROM "TANG"."T12_OWNER" "O","TANG"."T12" "T" WHERE "O"."OWNER"="T"."OWNER"
JE:?? cfro: T12_OWNER objn:98415 col#:1 dfro:T12 dcol#:1
JE:?? cfro: T12 objn:98532 col#:1 dfro:T12_OWNER dcol#:1
SQL:******* UNPARSED QUERY IS *******
SELECT COUNT(*) "COUNT(*)" FROM "TANG"."T12_OWNER" "O","TANG"."T12" "T" WHERE "O"."OWNER"="T"."OWNER"
Query block SEL$1 (#0) unchanged
PM: Considering predicate move-around in query block SEL$1 (#0)
**************************
Predicate Move-Around (PM)
**************************
PM:???? PM bypassed: Outer query contains no views.
PM:???? PM bypassed: Outer query contains no views.
query block SEL$1 (#0) unchanged
FPD: Considering simple filter push in query block SEL$1 (#0)
"O"."OWNER"="T"."OWNER"
try to generate transitive predicate from check constraints for query block SEL$1 (#0)
finally: "O"."OWNER"="T"."OWNER"

apadrv-start sqlid=5873318390038315020
? :
??? call(in-use=2056, alloc=16344), compile(in-use=58144, alloc=62216), execution(in-use=3352, alloc=4032)

*******************************************
Peeked values of the binds in SQL statement
*******************************************

Final query after transformations:******* UNPARSED QUERY IS *******
SELECT COUNT(*) "COUNT(*)" FROM "TANG"."T12_OWNER" "O","TANG"."T12" "T" WHERE "O"."OWNER"="T"."OWNER"
kkoqbc: optimizing query block SEL$1 (#0)
?????? ?
??????? :
??? call(in-use=2112, alloc=16344), compile(in-use=59408, alloc=62216), execution(in-use=3352, alloc=4032)

kkoqbc-subheap (create addr=0x000000001F2CFAA0)
****************
QUERY BLOCK TEXT
****************
select count(*) from t12_owner o,t12? t where o.owner=t.owner
---------------------
QUERY BLOCK SIGNATURE
---------------------
signature (optimizer): qb_name=SEL$1 nbfros=2 flg=0
? fro(0): flg=0 objn=98532 hint_alias="O"@"SEL$1"
? fro(1): flg=0 objn=98415 hint_alias="T"@"SEL$1"

-----------------------------
SYSTEM STATISTICS INFORMATION
-----------------------------
? Using NOWORKLOAD Stats
? CPUSPEEDNW: 1720 millions instructions/sec (default is 100)
? IOTFRSPEED: 4096 bytes per millisecond (default is 4096)
? IOSEEKTIM:? 10 milliseconds (default is 10)
? MBRC:?????? NO VALUE blocks (default is 8)

***************************************
BASE STATISTICAL INFORMATION

基礎統計信息
***********************
Table Stats::
? Table: T12? Alias:? T
#? 表:T12 統計信息中的: 行數:76437,數據塊:1115;平均行長度

#Column? 字段OWNER 的統計信息(直方圖中的字段統計信息)
#AvgLen:6? 平均長度
#NDV: 31 (NUM_DISTINCT 列的不重復值數)
# Nulls: 0 (NUM_NULLS? 列的空行數)
# Density: 0.032258 (DENSITY 列密度,沒有直方圖的情況下= 1/NDV)


??? #Rows: 76437? #Blks:? 1115? AvgRowLen:? 98.00? ChainCnt:? 0.00


? Column (#1): OWNER(
??? AvgLen: 6 NDV: 31 Nulls: 0 Density: 0.032258

索引的統計信息
#LVLS: 1? (BLEVEL BTREE索引高度)
#LB: 180 (LEAF_BLOCKS 索引葉塊數)
#DK: 31 (DISTINCT_KEYS 不重復索引關鍵字)
#LB/K: 5.00 (AVG_LEAF_BLOCKS_PER_KEY 葉塊/關鍵字)
#DB/K: 65.00 (AVG_DATA_BLOCKS_PER_KEY 數據塊/關鍵字)
#CLUF: 2031.00 (CLUSTERING_FACTOR 索引聚合因子)
#主要內容:索引幾層;葉子塊數;多少個唯一鍵值; 每個鍵值有多少個葉塊;每個鍵值有多少個數據塊聚簇因子

Index Stats::
? Index: IDX_T12_OWNER? Col#: 1
??? LVLS: 1? #LB: 180? #DK: 31? LB/K: 5.00? DB/K: 65.00? CLUF: 2031.00
? Index: PK_T12_ID? Col#: 4
??? LVLS: 1? #LB: 159? #DK: 76430? LB/K: 1.00? DB/K: 1.00? CLUF: 1299.00
***********************
表T12_OWNER 的統計信息
Table Stats::
? Table: T12_OWNER? Alias:? O
??? #Rows: 10? #Blks:? 4? AvgRowLen:? 9.00? ChainCnt:? 0.00
關聯字段OWNER 的統計信息(直方圖中的字段統計信息)
? Column (#1): OWNER(
??? AvgLen: 9 NDV: 10 Nulls: 0 Density: 0.100000
Access path analysis for T12_OWNER
***************************************
#分析單表的訪問路徑,有些信息來自于dba_tables
#原始行數 近似值 精確值 非修正值
SINGLE TABLE ACCESS PATH
? Single Table Cardinality Estimation for T12_OWNER[O]
? Table: T12_OWNER? Alias: O
? #(Computed=Card: Original *FF Filter Factor? FF在沒有直方圖的情況下=Density)


??? Card: Original: 10.000000? Rounded: 10? Computed: 10.00? Non Adjusted: 10.00
? Access Path: TableScan
??? Cost:? 3.00? Resp: 3.00? Degree: 0
????? Cost_io: 3.00? Cost_cpu: 29986
????? Resp_io: 3.00? Resp_cpu: 29986

#全表掃描成本
? Best:: AccessPath: TableScan ?
???????? Cost: 3.00? Degree: 1? Resp: 3.00? Card: 10.00? Bytes: 0

Access path analysis for T12
***************************************
SINGLE TABLE ACCESS PATH
? Single Table Cardinality Estimation for T12[T]#單表基數估計
? Table: T12? Alias: T
??? Card: Original: 76437.000000? Rounded: 76437? Computed: 76437.00? Non Adjusted: 76437.00
? Access Path: TableScan?? ??? ??? ??? ??? ??? ?#全表掃描代價
??? Cost:? 304.94? Resp: 304.94? Degree: 0
????? Cost_io: 304.00? Cost_cpu: 19405956
????? Resp_io: 304.00? Resp_cpu: 19405956
? Access Path: index (index (FFS))?? ??? ??? ??? ?#索引快速全掃描
??? Index: IDX_T12_OWNER
??? resc_io: 51.00? resc_cpu: 10454299?? ??? ??? ??? ?#串行訪問代價=51(因為索引是串行存儲的)
??? ix_sel: 0.000000? ix_sel_with_filters: 1.000000? #帶過濾條件索引選擇率
? Access Path: index (FFS)
??? Cost:? 51.51? Resp: 51.51? Degree: 1?? ??? ?#索引并行訪問代價=51.51>51(串行訪問代價)
????? Cost_io: 51.00? Cost_cpu: 10454299
????? Resp_io: 51.00? Resp_cpu: 10454299
? Access Path: index (FullScan)?? ??? ??? ??? ??? ?#索引全掃描
??? Index: IDX_T12_OWNER
??? resc_io: 181.00? resc_cpu: 16576381
??? ix_sel: 1.000000? ix_sel_with_filters: 1.000000 #ix_sel索引選擇率 ix_sel_with_filters帶過濾條件索引選擇率
??? Cost: 181.80? Resp: 181.80? Degree: 1
******** Begin index join costing ********
? ****** trying bitmap/domain indexes ******?? ?#索引關聯掃描
? Access Path: index (FullScan)
??? Index: IDX_T12_OWNER
??? resc_io: 181.00? resc_cpu: 16576381
??? ix_sel: 1.000000? ix_sel_with_filters: 1.000000
??? Cost: 181.80? Resp: 181.80? Degree: 0
? Access Path: index (FullScan)?? ??? ??? ??? ??? ?#全索引掃描
??? Index: IDX_T12_OWNER
??? resc_io: 181.00? resc_cpu: 16576381
??? ix_sel: 1.000000? ix_sel_with_filters: 1.000000
??? Cost: 181.80? Resp: 181.80? Degree: 0
? Bitmap nodes:?? ??? ??? ??? ??? ??? ??? ??? ??? ?#BITMAP 掃描
??? Used IDX_T12_OWNER
????? Cost = 227.253778, sel = 1.000000
? ****** finished trying bitmap/domain indexes ******
******** End index join costing ********
? Best:: AccessPath: IndexFFS
? Index: IDX_T12_OWNER
???????? Cost: 51.51? Degree: 1? Resp: 51.51? Card: 76437.00? Bytes: 0

***************************************
#關聯查詢—驅動表的選擇
#優化器的統計和計算
#把各種情況羅列出來,選擇最優的查詢路徑
#分別用兩個表做驅動表,及各種關聯方式的成本 對比。

OPTIMIZER STATISTICS AND COMPUTATIONS
***************************************
GENERAL PLANS?? ??? ?選擇執行計劃
***************************************
Considering cardinality-based initial join order.
Permutations for Starting Table :0
Join order[1]:? T12_OWNER[O]#0? T12[T]#1 #關聯的表對象

***************
Now joining: T12[T]#1?? ??? ?#1 現在要用T12_OWNER小表關聯T12大表
***************
NL Join?? ??? ??? ??? ??? ??? ?#NL Join嵌套循環關聯? OUTER TABLE 驅動表

#確定一個驅動表(outer table),另一個表為inner table,驅動表中的每一行與inner表中的相應記錄JOIN


? Outer table: Card: 10.00? Cost: 3.00? Resp: 3.00? Degree: 1? Bytes: 9
Access path analysis for T12?? ??? ?
? Inner table: T12? Alias: T?? ??? ?#inner TABLE 內表 T12
? Access Path: TableScan
??? NL Join:? Cost: 3034.40? Resp: 3034.40? Degree: 1?? ??? ?#全表掃描-嵌套循環關聯COST=3034.40
????? Cost_io: 3025.00? Cost_cpu: 194089542
????? Resp_io: 3025.00? Resp_cpu: 194089542
? Access Path: index (index (FFS))?? ??? ??? ??? ??? ??? ??? ?#快速索引掃描
??? Index: IDX_T12_OWNER
??? resc_io: 48.90? resc_cpu: 10454299?? ??? ??? ??? ??? ??? ?#串行訪問代價
??? ix_sel: 0.000000? ix_sel_with_filters: 1.000000
? Inner table: T12? Alias: T
? Access Path: index (FFS)?? ??? ??? ??? ??? ??? ??? ??? ??? ?#并行訪問代價
??? NL Join:? Cost: 497.07? Resp: 497.07? Degree: 1
????? Cost_io: 492.00? Cost_cpu: 104572978
????? Resp_io: 492.00? Resp_cpu: 104572978
? Access Path: index (AllEqJoinGuess)
??? Index: IDX_T12_OWNER
??? resc_io: 5.00? resc_cpu: 529657
??? ix_sel: 0.032258? ix_sel_with_filters: 0.032258
??? NL Join : Cost: 53.26? Resp: 53.26? Degree: 1
????? Cost_io: 53.00? Cost_cpu: 5326558
????? Resp_io: 53.00? Resp_cpu: 5326558

? Best NL cost: 53.26?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?#最優NL JOIN? 嵌套循環關聯 成本 :53.26
????????? resc: 53.26? resc_io: 53.00? resc_cpu: 5326558?? ?#串行方式的代價 IO代價+CPU代價?? ?
????????? resp: 53.26? resp_io: 53.00? resc_cpu: 5326558?? ?#并行方式的代價
Join Card:? 24657.096774 = outer (10.000000) * inner (76437.000000) * sel (0.032258)
Join Card - Rounded: 24657 Computed: 24657.10
? Outer table:? T12_OWNER? Alias: O
??? resc: 3.00? card 10.00? bytes: 9? deg: 1? resp: 3.00
? Inner table:? T12? Alias: T
??? resc: 51.51? card: 76437.00? bytes: 6? deg: 1? resp: 51.51
??? using dmeth: 2? #groups: 1
??? SORT ressource???????? Sort statistics
????? Sort width:???????? 980 Area size:???? 1048576 Max Area size:?? 171642880
????? Degree:?????????????? 1
????? Blocks to Sort: 1 Row size:???? 20 Total Rows:???????????? 10
????? Initial runs:?? 1 Merge passes:? 0 IO Cost / pass:????????? 0
????? Total IO sort cost: 0????? Total CPU sort cost: 20643984
????? Total Temp space used: 0
??? SORT ressource???????? Sort statistics
????? Sort width:???????? 980 Area size:???? 1048576 Max Area size:?? 171642880
????? Degree:?????????????? 1
????? Blocks to Sort: 160 Row size:???? 17 Total Rows:????????? 76437
????? Initial runs:?? 2 Merge passes:? 1 IO Cost / pass:???????? 88
????? Total IO sort cost: 248????? Total CPU sort cost: 80448497
????? Total Temp space used: 1860000
? SM join: Resc: 307.41? Resp: 307.41? [multiMatchCost=0.00]
SM Join?? ?#先排序后合并關聯
? SM cost: 307.41
???? resc: 307.41 resc_io: 302.00 resc_cpu: 111576765
???? resp: 307.41 resp_io: 302.00 resp_cpu: 111576765
? Outer table:? T12_OWNER? Alias: O
??? resc: 3.00? card 10.00? bytes: 9? deg: 1? resp: 3.00
? Inner table:? T12? Alias: T
??? resc: 51.51? card: 76437.00? bytes: 6? deg: 1? resp: 51.51
??? using dmeth: 2? #groups: 1
??? Cost per ptn: 0.87? #ptns: 1
??? hash_area: 256 (max=41905) buildfrag: 1? probefrag: 168? ppasses: 1
? Hash join: Resc: 55.38? Resp: 55.38? [multiMatchCost=0.00]
HA Join?? ?
? HA cost: 55.38 ?
???? resc: 55.38 resc_io: 54.00 resc_cpu: 28450728
???? resp: 55.38 resp_io: 54.00 resp_cpu: 28450728
Best:: JoinMethod: NestedLoop
?????? Cost: 53.26? Degree: 1? Resp: 53.26? Card: 24657.10 Bytes: 15
***********************
Best so far:? Table#: 0? cost: 3.0015? card: 10.0000? bytes: 90
????????????? Table#: 1? cost: 53.2580? card: 24657.0968? bytes: 369855
***********************
Join order[2]:? T12[T]#1? T12_OWNER[O]#0

***************
Now joining: T12_OWNER[O]#0
***************
NL Join?? ?#NL Join 嵌套循環關聯?? ?與T12為驅動表
? Outer table: Card: 76437.00? Cost: 51.51? Resp: 51.51? Degree: 1? Bytes: 6
Access path analysis for T12_OWNER
? Inner table: T12_OWNER? Alias: O
? Access Path: TableScan
??? NL Join:? Cost: 82971.54? Resp: 82971.54? Degree: 1
????? Cost_io: 82860.00? Cost_cpu: 2302475836
????? Resp_io: 82860.00? Resp_cpu: 2302475836

? Best NL cost: 82971.54
????????? resc: 82971.54? resc_io: 82860.00? resc_cpu: 2302475836
????????? resp: 82971.54? resp_io: 82860.00? resc_cpu: 2302475836
Join Card:? 24657.096774 = outer (76437.000000) * inner (10.000000) * sel (0.032258)
Join Card - Rounded: 24657 Computed: 24657.10
? Outer table:? T12? Alias: T
??? resc: 51.51? card 76437.00? bytes: 6? deg: 1? resp: 51.51
? Inner table:? T12_OWNER? Alias: O
??? resc: 3.00? card: 10.00? bytes: 9? deg: 1? resp: 3.00
??? using dmeth: 2? #groups: 1
??? SORT ressource???????? Sort statistics
????? Sort width:???????? 980 Area size:???? 1048576 Max Area size:?? 171642880
????? Degree:?????????????? 1
????? Blocks to Sort: 160 Row size:???? 17 Total Rows:????????? 76437
????? Initial runs:?? 2 Merge passes:? 1 IO Cost / pass:???????? 88
????? Total IO sort cost: 248????? Total CPU sort cost: 80448497
????? Total Temp space used: 1860000
??? SORT ressource???????? Sort statistics
????? Sort width:???????? 980 Area size:???? 1048576 Max Area size:?? 171642880
????? Degree:?????????????? 1
????? Blocks to Sort: 1 Row size:???? 20 Total Rows:???????????? 10
????? Initial runs:?? 1 Merge passes:? 0 IO Cost / pass:????????? 0
????? Total IO sort cost: 0????? Total CPU sort cost: 20643984
????? Total Temp space used: 0
? SM join: Resc: 307.41? Resp: 307.41? [multiMatchCost=0.00]
SM Join
? SM cost: 307.41
???? resc: 307.41 resc_io: 302.00 resc_cpu: 111576765
???? resp: 307.41 resp_io: 302.00 resp_cpu: 111576765
SM Join (with index on outer)
? Access Path: index (FullScan)
??? Index: IDX_T12_OWNER
??? resc_io: 181.00? resc_cpu: 16576381
??? ix_sel: 1.000000? ix_sel_with_filters: 1.000000
??? Cost: 181.80? Resp: 181.80? Degree: 1
? Outer table:? T12? Alias: T
??? resc: 181.80? card 76437.00? bytes: 6? deg: 1? resp: 181.80
? Inner table:? T12_OWNER? Alias: O
??? resc: 3.00? card: 10.00? bytes: 9? deg: 1? resp: 3.00
??? using dmeth: 2? #groups: 1
??? SORT ressource???????? Sort statistics
????? Sort width:???????? 980 Area size:???? 1048576 Max Area size:?? 171642880
????? Degree:?????????????? 1
????? Blocks to Sort: 1 Row size:???? 20 Total Rows:???????????? 10
????? Initial runs:?? 1 Merge passes:? 0 IO Cost / pass:????????? 0
????? Total IO sort cost: 0????? Total CPU sort cost: 20643984
????? Total Temp space used: 0
? SM join: Resc: 185.80? Resp: 185.80? [multiMatchCost=0.00]
? Outer table:? T12? Alias: T
??? resc: 51.51? card 76437.00? bytes: 6? deg: 1? resp: 51.51
? Inner table:? T12_OWNER? Alias: O
??? resc: 3.00? card: 10.00? bytes: 9? deg: 1? resp: 3.00
??? using dmeth: 2? #groups: 1
??? Cost per ptn: 1.06? #ptns: 1
??? hash_area: 256 (max=41905) buildfrag: 168? probefrag: 1? ppasses: 1
? Hash join: Resc: 55.68? Resp: 55.68? [multiMatchCost=0.12]
? Outer table:? T12_OWNER? Alias: O
??? resc: 3.00? card 10.00? bytes: 9? deg: 1? resp: 3.00
? Inner table:? T12? Alias: T
??? resc: 51.51? card: 76437.00? bytes: 6? deg: 1? resp: 51.51
??? using dmeth: 2? #groups: 1
??? Cost per ptn: 0.87? #ptns: 1
??? hash_area: 256 (max=41905) buildfrag: 1? probefrag: 168? ppasses: 1
? Hash join: Resc: 55.38? Resp: 55.38? [multiMatchCost=0.00]
HA Join?? ?哈希關聯
? HA cost: 55.38 swapped?? ?
???? resc: 55.38 resc_io: 54.00 resc_cpu: 28450728
???? resp: 55.38 resp_io: 54.00 resp_cpu: 28450728
Join order aborted: cost > best plan cost
***********************
(newjo-stop-1) k:0, spcnt:0, perm:2, maxperm:2000

*********************************
Number of join permutations tried: 2
*********************************
Consider using bloom filter between O[T12_OWNER] and T[T12] with ??
kkoBloomFilter: join ndv:0 reduction:1.000000 (limit:0.500000)? rejected because not a hash join
Enumerating distribution method (advanced)
--- Distribution method for
join between O[T12_OWNER](serial) and T[T12](serial); jm = 12; right side access path = IndexRange
---- NLJ default -> BROADCAST-LEFT

(newjo-save)??? [1 0 ]
Trying or-Expansion on query block SEL$1 (#0)
Transfer Optimizer annotations for query block SEL$1 (#0)
id=0 frofkks[i] (index start key) predicate="O"."OWNER"="T"."OWNER"
id=0 frofkke[i] (index stop key) predicate="O"."OWNER"="T"."OWNER"
Final cost for query block SEL$1 (#0) - All Rows Plan:?? ??? ??? ??? ??? ?#最后得出最佳成本 執行計劃
? Best join order: 1
? Cost: 53.2580? Degree: 1? Card: 24657.0000? Bytes: 369855
? Resc: 53.2580? Resc_io: 53.0000? Resc_cpu: 5326558
? Resp: 53.2580? Resp_io: 53.0000? Resc_cpu: 5326558
kkoqbc-subheap (delete addr=0x000000001F2CFAA0, in-use=27840, alloc=32840)
kkoqbc-end:
??????? :
??? call(in-use=14400, alloc=65656), compile(in-use=60960, alloc=62216), execution(in-use=3352, alloc=4032)

kkoqbc: finish optimizing query block SEL$1 (#0)
apadrv-end
????????? :
??? call(in-use=14400, alloc=65656), compile(in-use=61944, alloc=62216), execution(in-use=3352, alloc=4032)


Starting SQL statement dump

user_id=84 user_name=TANG module=SQL*Plus action=
sql_id=530jrynjh1h0c plan_hash_value=1246238126 problem_type=3
----- Current SQL Statement for this session (sql_id=530jrynjh1h0c) -----
select count(*) from t12_owner o,t12? t where o.owner=t.owner
sql_text_length=62
sql=select count(*) from t12_owner o,t12? t where o.owner=t.owner
----- Explain Plan Dump -----
----- Plan Table -----
?
============
Plan Table
============
--------------------------------------------+-----------------------------------+
| Id? | Operation??????????? | Name???????? | Rows? | Bytes | Cost? | Time????? |
--------------------------------------------+-----------------------------------+
| 0?? | SELECT STATEMENT???? |????????????? |?????? |?????? |??? 53 |?????????? |
| 1?? |? SORT AGGREGATE????? |????????????? |???? 1 |??? 15 |?????? |?????????? |
| 2?? |?? NESTED LOOPS?????? |????????????? |?? 24K |? 361K |??? 53 |? 00:00:01 |
| 3?? |??? TABLE ACCESS FULL | T12_OWNER??? |??? 10 |??? 90 |???? 3 |? 00:00:01 |
| 4?? |??? INDEX RANGE SCAN? | IDX_T12_OWNER|? 2466 |?? 14K |???? 5 |? 00:00:01 |
--------------------------------------------+-----------------------------------+
Predicate Information:
----------------------
4 - access("O"."OWNER"="T"."OWNER")
?
Content of other_xml column
===========================
? db_version???? : 11.2.0.3
? parse_schema?? : TANG
? plan_hash????? : 1246238126
? plan_hash_2??? : 632309206
? Outline Data:
? /*+
??? BEGIN_OUTLINE_DATA
????? IGNORE_OPTIM_EMBEDDED_HINTS
????? OPTIMIZER_FEATURES_ENABLE('11.2.0.3')
????? DB_VERSION('11.2.0.3')
????? ALL_ROWS
????? OUTLINE_LEAF(@"SEL$1")
????? FULL(@"SEL$1" "O"@"SEL$1")
????? INDEX(@"SEL$1" "T"@"SEL$1" ("T12"."OWNER"))
????? LEADING(@"SEL$1" "O"@"SEL$1" "T"@"SEL$1")
????? USE_NL(@"SEL$1" "T"@"SEL$1")
??? END_OUTLINE_DATA
? */
?
從上面的跟蹤日志中可以看到,最后的執行計劃和在SQLPLUS 中是一致的。




--------------------------------------------------------------------------------------------------
4.當統計信息不準確時,CBO可能產生錯誤的執行計劃,請給出這樣的一個例子,
在10053 trace中找到CBO出錯的位置,并給出必要的文字說明。<br>


C:\Users\Administrator>sqlplus tang/tang@orcl

SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 20 13:35:09 2013

Copyright (c) 1982, 2010, Oracle.? All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> drop table t12;

Table dropped.

SQL> create table t12 as select * from dba_objects;

Table created.

SQL> create index idx_t12_id on t12(object_id);

Index created.

SQL> select count(0) from t12;

? COUNT(0)
----------
???? 76438

SQL> update t12 set object_id=1 where object_id<=70000;

69175 rows updated.

SQL> update t12 set object_id=2 where object_id>70000;

7256 rows updated.

SQL> execute dbms_stats.gather_table_stats(user,'T12',CASCADE=>TRUE,ESTIMATE_PERCENT=>NULL,METHOD_OPT=>'for all columns size 254');

PL/SQL procedure successfully completed.

SQL>

SQL> select count(object_name) from t12 where object_id=1;

Execution Plan
----------------------------------------------------------
Plan hash value: 4279859672

---------------------------------------------------------------------------
| Id? | Operation????????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
---------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT?? |????? |???? 1 |??? 28 |?? 305?? (1)| 00:00:04 |
|?? 1 |? SORT AGGREGATE??? |????? |???? 1 |??? 28 |??????????? |????????? |
|*? 2 |?? TABLE ACCESS FULL| T12? | 69175 |? 1891K|?? 305?? (1)| 00:00:04 |
---------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

?? 2 - filter("OBJECT_ID"=1)

SQL> select count(object_name) from t12 where object_id=2;

Execution Plan
----------------------------------------------------------
Plan hash value: 3968484635

-------------------------------------------------------------------------------------------
| Id? | Operation??????????????????? | Name?????? | Rows? | Bytes | Cost (%CPU)| Time???? |
-------------------------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT???????????? |??????????? |???? 1 |??? 28 |?? 129?? (0)| 00:00:02 |
|?? 1 |? SORT AGGREGATE????????????? |??????????? |???? 1 |??? 28 |??????????? |????????? |
|?? 2 |?? TABLE ACCESS BY INDEX ROWID| T12??????? |? 7256 |?? 198K|?? 129?? (0)| 00:00:02 |
|*? 3 |??? INDEX RANGE SCAN????????? | IDX_T12_ID |? 7256 |?????? |??? 25?? (0)| 00:00:01 |
-------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

?? 3 - access("OBJECT_ID"=2)

SQL>

上面表中數據 OBJECT_ID=1 時,數據有69175 ,OBJECT_ID=2 時,數據有7256;

從上面的執行計劃可以看出,第一個使用了全表搜索,第二個查詢使用了索引,是正確的。
因為先從索引中查找 ojbect_id=2 的數據比較少,走索引,再到表中查找數據,速度更快。


下面我們對數據進行一個修正。把OBJECT_ID 的分布進行修改。



SQL> set autot off;
SQL> update t12 set object_id=3 where rownum<=60000;

60000 rows updated.

SQL> select count(0) from t12 where object_id=1;

? COUNT(0)
----------
????? 9207

SQL> set autot trace expl;
SQL> select count(object_name) from t12 where object_id=1;

Execution Plan
----------------------------------------------------------
Plan hash value: 4279859672

---------------------------------------------------------------------------
| Id? | Operation????????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
---------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT?? |????? |???? 1 |??? 28 |?? 305?? (1)| 00:00:04 |
|?? 1 |? SORT AGGREGATE??? |????? |???? 1 |??? 28 |??????????? |????????? |
|*? 2 |?? TABLE ACCESS FULL| T12? | 69175 |? 1891K|?? 305?? (1)| 00:00:04 |
---------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

?? 2 - filter("OBJECT_ID"=1)

SQL>

經修改后,object_id=1 的數據只有 9207,在表中的分布應該是很少了。應該走索引才對。
這就是因為表中的統計信息已不正確的原因。從上面的執行計劃也可以看出,執行計劃中統計出的
數據行數 :69175 就是在修改前的OBJECT_ID=1 的數量。

我們來跟蹤一下10053的跟蹤日志。查找原因。


**************************
Predicate Move-Around (PM)
**************************
PM:???? PM bypassed: Outer query contains no views.
PM:???? PM bypassed: Outer query contains no views.
query block SEL$1 (#0) unchanged
FPD: Considering simple filter push in query block SEL$1 (#0)
"T12"."OBJECT_ID"=:B1
try to generate transitive predicate from check constraints for query block SEL$1 (#0)
finally: "T12"."OBJECT_ID"=:B1

apadrv-start sqlid=7904889763193459797
? :
??? call(in-use=1520, alloc=16344), compile(in-use=55176, alloc=57056), execution(in-use=3296, alloc=4032)

*******************************************
Peeked values of the binds in SQL statement
*******************************************
----- Bind Info (kkscoacd) -----
?Bind#0
? oacdty=02 mxl=22(02) mxlc=00 mal=00 scl=00 pre=00
? oacflg=10 fl2=0100 frm=00 csi=00 siz=24 off=0
? kxsbbbfp=ae8c6460? bln=22? avl=02? flg=09
? value=1

Final query after transformations:******* UNPARSED QUERY IS *******
SELECT COUNT("T12"."OBJECT_NAME") "COUNT(OBJECT_NAME)" FROM "TANG"."T12" "T12" WHERE "T12"."OBJECT_ID"=:B1
kkoqbc: optimizing query block SEL$1 (#0)
?????? ?
??????? :
??? call(in-use=1568, alloc=16344), compile(in-use=56104, alloc=57056), execution(in-use=3432, alloc=4032)

kkoqbc-subheap (create addr=0x000000001819A658)
****************
QUERY BLOCK TEXT
****************
select count(object_name) from t12 where object_id=:"SYS_B_0"
---------------------
QUERY BLOCK SIGNATURE
---------------------
signature (optimizer): qb_name=SEL$1 nbfros=1 flg=0
? fro(0): flg=0 objn=98536 hint_alias="T12"@"SEL$1"

-----------------------------
SYSTEM STATISTICS INFORMATION
-----------------------------
? Using NOWORKLOAD Stats
? CPUSPEEDNW: 1720 millions instructions/sec (default is 100)
? IOTFRSPEED: 4096 bytes per millisecond (default is 4096)
? IOSEEKTIM:? 10 milliseconds (default is 10)
? MBRC:?????? NO VALUE blocks (default is 8)

***************************************
BASE STATISTICAL INFORMATION
***********************
Table Stats::
? Table: T12? Alias: T12
??? #Rows: 76438? #Blks:? 1115? AvgRowLen:? 96.00? ChainCnt:? 0.00

?? ?#行數 塊數 平均行長
Index Stats::
? Index: IDX_T12_ID? Col#: 4
??? LVLS: 1? #LB: 263? #DK: 2? LB/K: 131.00? DB/K: 545.00? CLUF: 1091.00

#索引幾層葉子塊數多少個唯一鍵值每個鍵值有多少個葉塊每個鍵值有多少個數據塊聚簇因子

Access path analysis for T12
***************************************
SINGLE TABLE ACCESS PATH
? Single Table Cardinality Estimation for T12[T12]
? Column (#4):
??? NewDensity:0.047468, OldDensity:0.000007 BktCnt:76431, PopBktCnt:76431, PopValCnt:2, NDV:2
? Column (#4): OBJECT_ID(
??? AvgLen: 3 NDV: 2 Nulls: 7 Density: 0.047468 Min: 1 Max: 2
??? Histogram: Freq? #Bkts: 2? UncompBkts: 76431? EndPtVals: 2

? Table: T12? Alias: T12
??? Card: Original: 76438.000000? Rounded: 69175? Computed: 69175.00? Non Adjusted: 69175.00

#原始行數 近似值 精確值 非修正值
#可以看出,問題就出在這里,ORACLE 認為,現在OBJECT_ID=1 的數據就是: 69175

? Access Path: TableScan 全表掃描代價
??? Cost:? 305.35? Resp: 305.35? Degree: 0
????? Cost_io: 304.00? Cost_cpu: 27814286
????? Resp_io: 304.00? Resp_cpu: 27814286
? Access Path: index (AllEqRange)? 索引全掃描代價
??? Index: IDX_T12_ID
??? resc_io: 1227.00? resc_cpu: 37100607
??? ix_sel: 0.905065? ix_sel_with_filters: 0.905065

?? ?#ix_sel 索引選擇率
?? ?#ix_sel_with_filters帶過濾條件索引選擇率
?? ?#這里也可以看出,ORACLE認為索引選擇率很高

??? Cost: 1228.80? Resp: 1228.80? Degree: 1
? Best:: AccessPath: TableScan
???????? Cost: 305.35? Degree: 1? Resp: 305.35? Card: 69175.00? Bytes: 0

得出結論走全表搜索優于索引

***************************************


OPTIMIZER STATISTICS AND COMPUTATIONS
***************************************
GENERAL PLANS
***************************************
Considering cardinality-based initial join order.
Permutations for Starting Table :0
Join order[1]:? T12[T12]#0
***********************
Best so far:? Table#: 0? cost: 305.3474? card: 69175.0000? bytes: 1936900
***********************
(newjo-stop-1) k:0, spcnt:0, perm:1, maxperm:2000

*********************************
Number of join permutations tried: 1
*********************************
Enumerating distribution method (advanced)

Trying or-Expansion on query block SEL$1 (#0)
Transfer Optimizer annotations for query block SEL$1 (#0)
id=0 frofand predicate="T12"."OBJECT_ID"=:B1
Final cost for query block SEL$1 (#0) - All Rows Plan:
? Best join order: 1
? Cost: 305.3474? Degree: 1? Card: 69175.0000? Bytes: 1936900
? Resc: 305.3474? Resc_io: 304.0000? Resc_cpu: 27814286
? Resp: 305.3474? Resp_io: 304.0000? Resc_cpu: 27814286
kkoqbc-subheap (delete addr=0x000000001819A658, in-use=13600, alloc=16408)
kkoqbc-end:
??????? :
??? call(in-use=29304, alloc=49184), compile(in-use=57072, alloc=61200), execution(in-use=3800, alloc=4032)

kkoqbc: finish optimizing query block SEL$1 (#0)
apadrv-end
????????? :
??? call(in-use=29304, alloc=49184), compile(in-use=57984, alloc=61200), execution(in-use=3800, alloc=4032)


Starting SQL statement dump

user_id=84 user_name=TANG module=SQL*Plus action=
sql_id=6vcygbf9w952p plan_hash_value=-15107624 problem_type=3
----- Current SQL Statement for this session (sql_id=6vcygbf9w952p) -----
?select count(object_name) from t12 where object_id=:"SYS_B_0"
sql_text_length=63
sql= select count(object_name) from t12 where object_id=:"SYS_B_0"
----- Explain Plan Dump -----
----- Plan Table -----
?
============
Plan Table
============
--------------------------------------+-----------------------------------+
| Id? | Operation?????????? | Name??? | Rows? | Bytes | Cost? | Time????? |
--------------------------------------+-----------------------------------+
| 0?? | SELECT STATEMENT??? |???????? |?????? |?????? |?? 305 |?????????? |
| 1?? |? SORT AGGREGATE???? |???????? |???? 1 |??? 28 |?????? |?????????? |
| 2?? |?? TABLE ACCESS FULL | T12???? |?? 68K | 1892K |?? 305 |? 00:00:04 |
--------------------------------------+-----------------------------------+
Predicate Information:
----------------------
2 - filter("OBJECT_ID"=:SYS_B_0)
?
Content of other_xml column
===========================
? db_version???? : 11.2.0.3
? parse_schema?? : TANG
? plan_hash????? : 4279859672
? plan_hash_2??? : 3898508299
Peeked Binds
============
? Bind variable information
??? position=1
??? datatype(code)=2
??? datatype(string)=NUMBER
??? precision=0
??? scale=0
??? max length=22
??? value=1
? Outline Data:
? /*+
??? BEGIN_OUTLINE_DATA
????? IGNORE_OPTIM_EMBEDDED_HINTS
????? OPTIMIZER_FEATURES_ENABLE('11.2.0.3')
????? DB_VERSION('11.2.0.3')
????? ALL_ROWS
????? OUTLINE_LEAF(@"SEL$1")
????? FULL(@"SEL$1" "T12"@"SEL$1")
??? END_OUTLINE_DATA
? */
?

總結

以上是生活随笔為你收集整理的【性能优化】 之 10053 事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品毛片一区视频播不卡 | 一级α片 | 日韩在线观看免费 | 国产精品中文字幕在线 | 国产精品自在线拍国产 | 天天色天天干天天 | 色多多在线观看 | 最新国产一区二区三区 | 在线观看岛国 | 亚洲精品国产品国语在线 | 91精品亚洲影视在线观看 | 国产在线91精品 | 国产群p视频 | 久久深爱网| aaa免费毛片 | 国产精品99久久久精品免费观看 | 色婷婷精品大在线视频 | 久久久亚洲精华液 | 波多野结衣在线视频免费观看 | 国产亚洲精品久久久久久电影 | 在线看国产 | 国产喷水在线 | 日韩欧美aaa| 97超碰免费在线 | 久久久久久久久久久免费视频 | 色999视频 | 国产麻豆视频免费观看 | 日韩深夜在线观看 | 在线免费色 | 亚洲综合视频在线 | 免费在线精品视频 | 日韩欧美在线视频一区二区 | 91亚洲免费| 成年人免费电影 | 丁香色婷 | 一级欧美一级日韩 | 在线看中文字幕 | 亚洲精品免费在线观看视频 | 日日操天天操狠狠操 | 亚洲免费在线观看视频 | 超碰在线个人 | 正在播放久久 | 精品视频区 | 亚洲黄色一级大片 | 日本中文乱码卡一卡二新区 | 不卡的av电影在线观看 | 日韩在线观看视频中文字幕 | 少妇做爰k8经典 | 国产精品福利无圣光在线一区 | www.在线观看av| 97在线视频网站 | 国产精品欧美久久 | 国产精品黄色影片导航在线观看 | 国色天香永久免费 | 丁香五月亚洲综合在线 | 国产精品久久久久久久午夜片 | 亚洲国产日韩在线 | 尤物一区二区三区 | 在线观看av小说 | 欧美极品一区二区三区 | 在线观看日韩精品 | 国产视频精品在线 | 国产精品自产拍在线观看中文 | 免费精品视频 | 91av视屏 | 日韩欧美网址 | 激情欧美一区二区免费视频 | 久久精品视频免费观看 | 成人动图 | 久久九九久久 | 国产精品久久久久久久久久不蜜月 | 91视频国产免费 | 国产成人精品一区二区三区福利 | 久久这里只有精品久久 | 91大神一区二区三区 | 久久国产精品免费看 | 99久久精品国产欧美主题曲 | 亚洲精品美女在线 | 日韩av资源站 | 色午夜 | 免费在线一区二区 | 日韩精品一区二区不卡 | 日韩中文免费视频 | 国产黄a三级 | 国产一级精品在线观看 | 91热| 欧美最新大片在线看 | 五月天激情在线 | 欧美性受极品xxxx喷水 | 国产69精品久久99不卡的观看体验 | 操操爽 | 手机色在线 | 亚洲一区二区麻豆 | 99久久精品免费看国产一区二区三区 | 国产精品美女免费看 | 国产日韩精品在线观看 | 日韩理论| 久久久久久久久黄色 | 亚洲精品乱码久久久久久 | 国产精品淫 | 国产精品综合在线 | 久久在草 | 精品一区 在线 | 人人爽人人插 | 欧美 日韩 国产 成人 在线 | 日日夜夜精品免费 | 亚洲美女视频在线 | 999在线精品 | 国产中文字幕视频在线观看 | 久久免费播放 | 99久久成人 | 国产只有精品 | 日韩av电影网站在线观看 | 在线播放av网址 | 国产a国产 | 成人黄色片免费 | 中文字幕日本在线 | 日产乱码一二三区别在线 | 在线小视频你懂的 | 色婷婷激情电影 | 中文在线免费看视频 | 中文av在线免费观看 | 久久免费看毛片 | 精品一区二区三区在线播放 | 久久精品区 | 色九九在线 | 97在线免费观看视频 | 色九九影院 | 天天干天天拍 | 四虎影视国产精品免费久久 | 丁香久久五月 | 色香网 | 成片免费观看视频 | 五月天六月婷婷 | 一本一道久久a久久精品 | 天天色天天爱天天射综合 | 久久免费视频在线观看6 | 国产精品久久久久999 | 亚洲永久精品在线观看 | 国模一区二区三区四区 | 国产一区在线视频 | 国产精品一区免费观看 | 91传媒91久久久 | 青青射| 人人盈棋牌| 亚洲精品中文字幕视频 | 午夜精品久久久久久99热明星 | 精品日韩视频 | 国产一区精品在线 | 久久免费久久 | 国产成人av在线影院 | 91精品国产99久久久久久久 | 久久久久国产精品午夜一区 | 成人在线黄色电影 | 激情综合色播五月 | 91资源在线 | 久草www| 国产高清成人av | 日韩经典一区二区三区 | 97av视频在线| 亚洲高清av在线 | 欧美va天堂va视频va在线 | 国产精品久久久毛片 | av在线播放免费 | 天天操天天操 | 99热播精品| 亚欧洲精品视频在线观看 | 国产麻豆电影 | 2019中文字幕网站 | 久久精品成人欧美大片古装 | 在线精品视频在线观看高清 | 成人羞羞视频在线观看免费 | 成人网444ppp | 久久久久欧美精品999 | 国产精品久久久久久妇 | 日韩在线观看视频一区二区三区 | 久久99这里只有精品 | 久久艹国产视频 | 在线观看午夜av | 黄色软件视频大全免费下载 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 999毛片 | 91在线视频一区 | 在线影院中文字幕 | 成人免费在线视频 | 国产精品2区 | 色综合网在线 | 91视频高清 | 国产精品高清在线观看 | 久久少妇av | 亚洲国产成人精品在线 | 亚洲粉嫩av | 国产精品福利一区 | 国产一区二区在线免费播放 | 国产精品久久久久久久久久久杏吧 | 二区中文字幕 | 亚洲 欧洲av| 亚洲精品婷婷 | 成人在线播放网站 | 久久久受www免费人成 | 成+人+色综合 | 91在线视频播放 | 婷婷丁香狠狠爱 | 91中文字幕在线播放 | 亚洲一区欧美精品 | 日韩二区精品 | 黄色美女免费网站 | 国产精品一区二区三区视频免费 | 久久99热精品这里久久精品 | 91精品第一页 | 久二影院| 国产一级黄大片 | 免费久久99精品国产婷婷六月 | 日本乱视频 | 国产亚洲日| 国内精品久久久久影院男同志 | 91黄色小网站| 久久精品免费观看 | 国产不卡av在线 | 亚洲免费精品视频 | 亚洲国产欧美在线人成大黄瓜 | 国语久久 | 狠狠成人 | 国产精品久久久999 国产91九色视频 | 日韩欧美xxxx | 精品国产不卡 | 91热在线 | 亚洲黄a| 日韩精品视频在线观看免费 | 黄色一级免费 | 97超在线视频| 西西444www高清大胆 | 日韩精品一二三 | 五月天六月婷 | 久久看视频 | 黄色免费观看网址 | 欧美一级特黄高清视频 | 亚洲综合色站 | 九九九在线观看 | 97视频在线观看成人 | 久久一精品 | 色综合久久88色综合天天 | 亚洲片在线观看 | 久久成熟 | 九九精品在线观看 | 欧美精品一区在线发布 | 黄色三级网站在线观看 | 亚洲精品久久久蜜臀下载官网 | 日韩欧美网址 | 国产一区二区观看 | 黄色片网站大全 | 欧洲性视频 | 免费在线电影网址大全 | 国产精品区二区三区日本 | 99色视频| 夜夜操网 | 99久久精品国产免费看不卡 | 国产黄色av | 亚洲一区二区高潮无套美女 | 色中文字幕在线观看 | 婷婷久久久久 | 国内精品久久久久久久久 | 久久久久久在线观看 | 国内久久精品 | 久久嗨| 久久国产精品区 | 午夜手机电影 | 最新色站 | 久久精国产 | 玖玖视频免费在线 | 日三级在线 | 日韩免费看 | 日韩色区 | 正在播放一区二区 | 久久中文字幕视频 | 97精品久久人人爽人人爽 | 国产一二三四在线观看视频 | 精品国产诱惑 | 色资源二区在线视频 | 亚洲国产剧情av | 国产一二三四在线视频 | 国产综合91 | 永久免费毛片在线观看 | 丰满少妇在线观看资源站 | 九九免费视频 | 人人干人人搞 | 国产在线黄 | 在线观看亚洲成人 | 国产一级电影免费观看 | 特片网久久 | 日韩精品久久一区二区 | 中文字幕在线观看免费高清完整版 | 伊人资源视频在线 | 免费高清在线观看成人 | 久久久久亚洲精品男人的天堂 | 亚洲精品 在线视频 | 国产精品入口66mio女同 | 狠狠的操狠狠的干 | 婷婷丁香社区 | 狠狠躁日日躁狂躁夜夜躁 | 欧洲精品久久久久毛片完整版 | 久久99精品久久久久久清纯直播 | 免费精品在线 | 国产伦精品一区二区三区无广告 | 夜夜操天天操 | 国产国产人免费人成免费视频 | 中文字幕亚洲精品在线观看 | 三级av免费 | 91精品国 | 91视频免费看 | 精品少妇一区二区三区在线 | 国产精品电影一区 | 成人9ⅰ免费影视网站 | 久久久久欠精品国产毛片国产毛生 | 亚洲91av| 在线免费观看黄网站 | 999久久| 99精品在线免费 | 国产黄色在线 | 国产在线高清视频 | av电影在线免费观看 | 国产99在线免费 | 狠狠色丁香婷婷综合欧美 | 日本一区二区不卡高清 | 精品国产欧美一区二区 | 精品在线观看国产 | 日韩a级免费视频 | 亚洲第一中文网 | 最新国产一区二区三区 | 亚洲影视资源 | 国产精品亚洲成人 | 国产大尺度视频 | 中文字幕在线播放日韩 | 天天操天天舔天天爽 | 亚洲天天摸日日摸天天欢 | aa一级片| 久久精品久久精品 | 亚洲国产精品一区二区久久hs | 激情综合亚洲精品 | www.成人sex| 91一区啪爱嗯打偷拍欧美 | 九九九视频精品 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 手机av资源| 欧美一二三视频 | 精品久久视频 | 亚洲精品在线一区二区 | 91免费高清 | 国产精品一区二区三区四 | 黄色天堂在线观看 | 国产专区一 | 在线免费中文字幕 | 国内丰满少妇猛烈精品播放 | 99电影456麻豆 | 欧美污污网站 | 久久国产精品视频免费看 | 人人玩人人添人人澡超碰 | 久久久免费看片 | 亚洲欧洲日韩在线观看 | 日韩av中文字幕在线 | 色wwww| 91视频首页 | 色在线亚洲| 黄网站a | 成人h视频在线播放 | 香蕉影院在线 | 激情av五月婷婷 | 亚洲国产影院av久久久久 | 超碰人人草人人 | 中文字幕在线观看视频一区二区三区 | 成人一级片免费看 | 欧美 日韩 国产 成人 在线 | 91精品国自产在线观看 | 中文字幕在线中文 | 久久高清毛片 | 国产91在线观 | 国产精品成人国产乱 | 国产视频在线看 | 久久99久久99精品免观看粉嫩 | 美女国产在线 | 久久香蕉影视 | 免费在线黄色av | 欧美激情综合五月色丁香小说 | 国产在线理论片 | 麻豆系列在线观看 | av高清在线 | 久久久久久久久久久福利 | 精品免费国产一区二区三区四区 | 91在线区 | 9ⅰ精品久久久久久久久中文字幕 | 国产精品视频观看 | 国产看片免费 | 综合五月婷婷 | 国产精品毛片一区二区在线 | 国产精品久一 | 91福利在线导航 | 九色视频网站 | 去干成人网 | 在线 视频 亚洲 | 中文在线字幕免费观 | 久久免费视频2 | 黄色影院在线免费观看 | 深爱激情婷婷网 | 国产精品久久久久久影院 | 婷婷亚洲综合五月天小说 | 91精品色| 免费黄a大片 | 国产黑丝一区二区 | 中文字幕亚洲综合久久五月天色无吗'' | 99热精品久久 | 草久电影 | 国产中文字幕视频在线观看 | 91探花在线视频 | 91九色视频 | av一区二区在线观看中文字幕 | 天天射色综合 | 久久九九国产视频 | 亚洲撸撸 | 亚洲精品国产成人av在线 | 超级碰碰碰免费视频 | 精品日韩在线 | 精品国产aⅴ麻豆 | 久草视频免费在线观看 | 色综合天天色 | 在线天堂v | 激情综合六月 | 美女视频黄免费 | 国产综合激情 | 超碰人人乐 | 四虎影视精品成人 | 热99在线 | 国产精品久久久久久久久久白浆 | 久久精品91久久久久久再现 | 国内视频1区 | 江苏妇搡bbbb搡bbbb | 久久免费视频2 | 成人理论在线观看 | 粉嫩av一区二区三区入口 | 免费热情视频 | 婷婷深爱网 | 在线有码中文字幕 | 日韩在线精品 | 欧美日一级片 | 在线成人免费电影 | 久久精品视频在线看 | 一区二区不卡高清 | 亚洲人毛片 | 特级a毛片| 日韩欧美高清不卡 | 国产精品欧美久久久久无广告 | 91亚洲欧美激情 | 最近中文字幕在线中文高清版 | 日韩伦理片hd | 正在播放国产一区二区 | 91成人精品 | 一区二区久久久久 | 国产精品久久久久久久久久三级 | 亚洲少妇久久 | 日韩理论片在线观看 | 狠狠伊人 | 91爱爱免费观看 | 中文字幕免费观看全部电影 | 99久久久久久久久久 | 国产99久久久精品 | 亚洲一级久久 | 在线视频 国产 日韩 | 91污视频在线 | 婷婷色综 | 亚洲欧洲一级 | 丁香花中文字幕 | 久久不卡视频 | 欧美巨乳波霸 | 一级黄色片在线观看 | 碰碰影院 | japanesexxx乱女另类 | 日韩视频图片 | 久草在线这里只有精品 | 日韩午夜电影院 | 在线播放视频一区 | 欧美日韩国产在线一区 | 国产蜜臀av | av天天澡天天爽天天av | 午夜三级影院 | 天天爽天天做 | 在线免费黄色 | 中文字幕影片免费在线观看 | 18国产精品福利片久久婷 | 国产成人精品一区二区 | 欧美一区成人 | 欧美日韩国产亚洲乱码字幕 | 色99视频| 色五婷婷 | 高清中文字幕av | 91色视频 | 色综合天天天天做夜夜夜夜做 | 亚洲国内精品在线 | 少妇性xxx | 激情xxxx| 狠狠干狠狠久久 | 亚洲少妇xxxx | 日韩欧在线 | 亚洲成av人片在线观看无 | 欧美日韩综合在线 | 日日夜夜操操操操 | 国产免费一区二区三区网站免费 | 91在线视频网址 | 探花视频免费观看高清视频 | 欧美激情精品久久久久 | 91av视频免费在线观看 | 超碰97中文 | 日韩视频一区二区在线观看 | 久草视频视频在线播放 | 99精品视频免费全部在线 | 国产色拍拍拍拍在线精品 | 精品a视频 | 在线观看91久久久久久 | 日韩欧美黄色网址 | 8x成人在线 | 韩国在线视频一区 | 国产原厂视频在线观看 | 中文在线字幕免 | 日本视频不卡 | 中文字幕视频免费观看 | 在线观看成人网 | 天天射成人 | 九九热精品视频在线播放 | 日日爽夜夜操 | 麻豆免费在线播放 | 久久午夜色播影院免费高清 | 激情影音| 91传媒免费观看 | 国产精品久久久免费看 | 国产在线观看污片 | 91传媒激情理伦片 | 国产精品永久免费视频 | 久久av不卡 | 天天射天天爱天天干 | 四虎影视成人永久免费观看视频 | 国产精品久久久久久久久毛片 | 欧美午夜一区二区福利视频 | 91女人18片女毛片60分钟 | 超碰97久久 | 在线日本看片免费人成视久网 | 九九视频免费观看视频精品 | 精品国产一区二区三区久久久蜜月 | 九九久久久久99精品 | 欧美不卡视频在线 | 国产经典av | 中文字幕电影网 | 伊人六月 | 国产剧情一区二区 | 亚洲精品麻豆视频 | 国产亚洲精品中文字幕 | 国产高清不卡av | 日本激情视频中文字幕 | 激情五月激情综合网 | 视频在线亚洲 | 黄色软件在线看 | 91成人免费视频 | 亚洲精品综合一二三区在线观看 | 天天摸天天干天天操天天射 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 国产一区视频在线观看免费 | 日韩中文字幕一区 | 免费能看的黄色片 | 夜色资源站国产www在线视频 | 五月天色站| 久久久久久久久免费视频 | 91黄色小视频| 久久视频这里有久久精品视频11 | www.夜色321.com| 在线观看免费av网 | 欧美日韩在线观看一区 | 国产成年人av | 最近的中文字幕大全免费版 | 亚洲爱爱视频 | 丁香五月网久久综合 | 日韩中文幕 | 国产精品 日韩 | 久久精品这里热有精品 | 超级碰碰免费视频 | 欧美一级艳片视频免费观看 | 中国成人一区 | 91丨九色丨高潮 | 日韩黄色大片在线观看 | 在线观看国产v片 | 国产精品毛片久久久久久久久久99999999 | 亚洲午夜久久久综合37日本 | 日韩欧美高清视频在线观看 | 欧美精选一区二区三区 | v片在线播放 | 国产欧美日韩精品一区二区免费 | 三级动图 | 久久av中文字幕片 | 四虎国产精品永久在线国在线 | 特级黄色视频毛片 | 日本在线视频网址 | 免费看的黄色 | 国产九九九九九 | 亚洲专区视频在线观看 | 精品中文字幕在线观看 | 日日日日干 | 国内精品久久久久久久影视麻豆 | a在线观看免费视频 | 久久婷综合 | 久久视频精品在线 | 久久激情小视频 | 激情网婷婷 | 婷婷国产在线 | 国产美女在线免费观看 | 狠狠躁18三区二区一区ai明星 | www.黄色在线| 日韩电影在线观看一区二区三区 | 99国产一区二区三精品乱码 | 91亚洲精品国偷拍 | 亚洲麻豆精品 | 日韩91精品 | 免费观看av网站 | 亚洲波多野结衣 | 亚洲成av人影院 | 超碰午夜 | 最近中文字幕大全 | 国产麻豆精品95视频 | 久久久久久麻豆 | 天天干夜夜想 | 久久精品视频国产 | 日韩大片在线看 | 99综合影院在线 | 成人在线你懂得 | 视频在线91| 久久精品毛片基地 | 激情在线免费视频 | 九九免费精品视频在线观看 | 超碰人人在 | 91禁在线观看 | 91福利社在线观看 | 麻豆影音先锋 | 日韩在观看线 | 丁香花中文在线免费观看 | 亚洲国产大片 | 国产高清视频在线免费观看 | 日p视频在线观看 | 天天操天天干天天玩 | 国产视| 丁香国产视频 | 91香蕉视频| 91大神精品视频 | 色噜噜日韩精品一区二区三区视频 | av免费电影在线 | 国精产品999国精产 久久久久 | 免费在线国产精品 | av导航福利 | 国产aa精品 | 日日爽 | 国产黄色看片 | 欧美少妇xxxxxx | 久久国产热视频 | 国产精品黑丝在线观看 | 午夜美女福利 | 久久色在线播放 | av大全在线免费观看 | 91人人澡人人爽 | 亚洲 欧美 国产 va在线影院 | 成人av在线直播 | 黄色a在线观看 | 久久久久久久久久久免费av | 精品国产久 | 992tv在线成人免费观看 | 天堂av影院 | 国产精品久久久久久久久久直播 | 在线观看色网 | 欧美a在线看 | 综合色婷婷 | 九九热免费视频在线观看 | 日日干精品 | 插插插色综合 | 成片视频在线观看 | 亚洲成av人片在线观看www | 国产亚洲欧洲 | 麻豆视频成人 | 国内丰满少妇猛烈精品播放 | 亚洲欧美少妇 | 欧美激情精品久久久 | 99视频精品全国免费 | 最近最新中文字幕视频 | 国产午夜三级一区二区三 | 精品久久久免费 | 色国产在线 | 久久久www成人免费毛片麻豆 | 在线视频 国产 日韩 | 中文字幕高清视频 | 亚洲视频免费在线看 | 国产亚洲一区 | 国产高清视频在线观看 | www.成人久久 | 精品国产免费久久 | 日韩天堂在线观看 | 999日韩 | 超碰在线97国产 | 狠狠狠狠狠狠干 | 成人欧美在线 | 特片网久久 | 狠狠色丁香婷婷综合久久片 | 一区二区影视 | 五月激情站 | 国产不卡一二三区 | www.99在线观看 | 玖操 | 国产在线色视频 | 亚洲精品免费看 | 欧美乱熟臀69xxxxxx | 久久精品一区二区三区国产主播 | 国内精品久久久久久 | 欧美乱熟臀69xxxxxx | 欧美国产精品久久久久久免费 | av一区二区三区在线播放 | 成人在线电影观看 | 亚洲综合在线视频 | 成人av在线影院 | 国产福利一区二区三区视频 | 欧美日韩p片 | 久操视频在线播放 | 999久久国产精品免费观看网站 | 日韩免费在线观看视频 | 一区二区三区播放 | 久久国产亚洲视频 | 欧美日韩不卡一区 | 久久综合狠狠综合久久综合88 | 97超碰资源网 | 亚洲国产三级在线 | 久99久中文字幕在线 | a v在线观看 | 五月婷婷影视 | 精品成人久久 | 亚洲精品视频第一页 | 中文在线a在线 | 精品黄色视 | 丁香婷婷久久久综合精品国产 | 国产精品久久久久久久久久免费 | 中文字幕视频网站 | 午夜精品电影一区二区在线 | 国产精品第一视频 | 91亚洲精品国产 | 国产一级精品绿帽视频 | 狠狠操狠狠干天天操 | 国产美女黄网站免费 | 午夜精品福利一区二区三区蜜桃 | 午夜精品一区二区三区可下载 | 国产成人精品久久久 | 国产成人三级一区二区在线观看一 | 二区在线播放 | 亚洲欧美少妇 | 国产精品福利一区 | 国产香蕉视频在线播放 | 国产99久久精品一区二区300 | 97碰碰视频 | 天天草综合网 | 草久电影| av免费片| 九九涩涩av台湾日本热热 | 日韩欧美大片免费观看 | 国产日产精品一区二区三区四区的观看方式 | 亚洲精品91天天久久人人 | 成年人国产视频 | 五月婷久 | 久久综合中文色婷婷 | 天天看天天操 | 狠狠色丁香久久婷婷综合_中 | 日韩三区在线观看 | 最新国产中文字幕 | 天天综合中文 | 亚洲一级黄色片 | 91视频高清免费 | 深爱激情五月综合 | 国产69熟| av在线一 | 亚洲美女在线国产 | 国产高清网站 | 久久综合狠狠狠色97 | 女人高潮特级毛片 | 久久免费中文视频 | 日韩精品91偷拍在线观看 | 日韩伦理片一区二区三区 | 天天操综合| 久久久精品影视 | www国产亚洲 | 九九热视频在线 | 狠狠色丁香 | 91精品资源 | 国产96av| 中文字幕中文 | 美州a亚洲一视本频v色道 | 国产+日韩欧美 | 探花视频在线观看免费 | 久久av福利| www.狠狠操.com| 午夜影院日本 | 国产中文在线视频 | 中文字幕 国产视频 | 亚洲精品视频大全 | 又色又爽又黄高潮的免费视频 | 久久久久久久久久久影院 | 91精品免费看 | 国产黄色片久久久 | 又黄又爽又色无遮挡免费 | 日本在线视频一区二区三区 | 99热99热| 色在线国产 | 干天天| 日韩天天干 | 91在线免费观看网站 | 久草视频观看 | 国内精品久久久久影院日本资源 | 欧美视频国产视频 | 黄色大片免费网站 | 91精彩视频在线观看 | 成人一级 | 九九精品视频在线看 | 成人午夜在线观看 | 国产精品久久久久一区二区国产 | 国产一二三四在线视频 | 91爱爱网址| 中文字幕永久在线 | 18岁免费看片 | 国产精品3 | 日韩在线视频网站 | 日韩美女一级片 | 欧美做受高潮1 | 国产一二区免费视频 | 色综合亚洲精品激情狠狠 | 91精品亚洲影视在线观看 | 国产九九精品视频 | 日本不卡久久 | 99在线精品视频在线观看 | 国产美女免费视频 | 麻豆视频免费网站 | 操少妇视频 | 国产午夜精品av一区二区 | 久久短视频 | 中文久久精品 | 日韩av不卡在线播放 | 日日夜夜天天人人 | 日韩激情av在线 | 国产精品一区二区精品视频免费看 | 91福利社在线观看 | 中文字幕91视频 | 手机av片 | 美女露久久 | 激情影院在线 | 在线国产片 | 丁香婷婷综合五月 | 91亚洲精品国偷拍自产在线观看 | 久草视频在线新免费 | 五月天天色 | 国产视频亚洲精品 | 亚洲免费精品一区二区 | 欧亚日韩精品一区二区在线 | 成年人视频在线免费播放 | 亚洲精品高清视频在线观看 | 91精品国产一区二区三区 | av成人免费在线观看 | 国产日韩欧美在线观看视频 | 国产成人综合图片 | 亚洲日本va中文字幕 | 中文字幕 成人 | 亚洲区视频在线观看 | 久久久久久久久久久电影 | 国产精品国产三级国产不产一地 | 毛片美女网站 | 三级小视频在线观看 | 一级做a视频 | 国产99久久久国产精品免费看 | 国产精品久久久视频 | 00av视频| 日本黄色免费在线观看 | 欧美日韩亚洲在线观看 | 美女av免费看 | 91在线精品秘密一区二区 | 国产黄色观看 | 国产精品剧情 | 五月婷在线视频 | 午夜美女视频 | av免费在线观看1 | 久久国产精品影片 | 五月婷社区 | 久久精品99国产精品 | 99国产在线观看 | 在线亚洲人成电影网站色www | 久久av免费| 九九九九九九精品任你躁 | 天天爽夜夜爽人人爽曰av | 色综合久久久久久久久五月 | 久草视频在线看 | 日免费视频 | 亚洲精品成人在线 | 国产精品美女毛片真酒店 | 在线观看视频精品 | 欧美99热 | 91桃色在线播放 | 成人av一区二区三区 | 亚洲黄色av一区 | 这里只有精彩视频 | 久久精品综合网 | 天天操天天射天天 | 国语自产偷拍精品视频偷 | 国产日韩欧美在线播放 | 国产精品免费久久久久久久久久中文 | 日韩艹| 亚洲综合在线五月 | 久久激情视频免费观看 | 国产精品电影一区二区 | 在线国产能看的 | www最近高清中文国语在线观看 | 亚洲欧洲精品在线 | 激情小说 五月 | 正在播放日韩 | 久久久www免费电影网 | 久久久久久国产精品美女 | 日本爱爱免费视频 | 国产精品美女久久久久久 | 一区二区三区电影在线播 | 国产精品99在线观看 | 国产成人av在线 | 国产人在线成免费视频 | 国产成人精品久久 | 手机在线看片日韩 | 激情欧美一区二区三区免费看 | 国产高清第一页 | 又黄又爽又刺激视频 | 久久精品视频在线观看免费 | 日本精品在线视频 | av在线等 | 玖玖综合网 | 91桃色在线播放 | 国产精品mm| 亚洲色图22p | 久久电影国产免费久久电影 | 香蕉视频在线观看免费 | 国产资源免费在线观看 | 日韩一区二区免费在线观看 | 黄色在线观看免费 | 亚洲,播放 | 亚洲国产中文在线观看 | 欧美一级电影在线观看 | 五月天久久久久久 | 精品免费视频123区 午夜久久成人 | 五月婷婷导航 | 麻豆国产精品一区二区三区 | 久久久久久久久久久久久久av | 又黄又爽又刺激 | 欧美日本国产在线观看 | 成人亚洲精品国产www | 亚洲黄色免费电影 | 午夜国产一区二区三区四区 | 美女一级毛片视频 | 国产一区二区久久久 | 制服丝袜在线91 | 一区二区三区高清不卡 | 伊人日日干 | 日韩精品久久久久久中文字幕8 | 欧美一级在线 | 亚洲激情 | av一级在线| 91日韩在线| 国产中文字幕在线看 | 97超碰在线资源 | 91视频91蝌蚪 | 天天做天天爱夜夜爽 | 99热在线国产 | 久久91网| 五月激情天 | 亚洲黄色a | 午夜123 | 亚洲精品国偷拍自产在线观看蜜桃 | 日本不卡123区 | 欧美精品成人在线 | 国产大片免费久久 | 日韩,中文字幕 | 国产原创中文在线 | 欧美成人h版电影 | 国产精品视频不卡 | 日本黄色免费播放 | 日日日爽爽爽 | 国产亚洲精品日韩在线tv黄 | 最新av在线网站 | 天天天操操操 | 在线你懂 | 亚洲国产精品va在线看 | 成人黄色av免费在线观看 | 日本精品久久久久 | 亚洲成 人精品 | 亚洲另类视频在线观看 | 在线观看黄色国产 | 亚洲精品va| 久久国产精品久久精品国产演员表 | 亚洲精品成人网 | 特黄特色特刺激视频免费播放 | 欧美成人手机版 |