CBO
上一篇 / 下一篇 2014-05-28 09:34:32 / 个人分类:甲骨文
CBO是Cost-Based Optimization英文的缩写,相对于我们通常所用的RBO(Rule-Based Optimization)。实际上CBO很早就在ORACLE V7版本中引入,由于技术原因,一直不够稳定和成熟,因此,从Oracle 10g开始才得以较大规模的使用。同时ORACLE 也已经从10g开始,不再对RBO引擎进行任何的改进和BUG修补,因此选择CBO 是必然的趋势。
u Zt@7K,e051Testing软件测试网2v;K(Gz[s-I$sza注:这里不要误解为从10g开始RBO就不支持了,只是Oracle不再对RBO引擎进行任何的改进和BUG修补。在某些CBO无法正确选择执行计划的情况下,还需要手工使用RBO强制Oracle选择合适的执行计划。51Testing软件测试网W*m*u,lc W2m
51Testing软件测试网D,v0KtiAozc8X51Testing软件测试网GXi:EG0m0u
$v-W0A TGTe0CBO算法的基础就是统计信息。Oracle CBO优化器的统计信息是数据库和数据库对象详细资料的集合,这些统计信息是查询优化器选择最优执行计划的依据。51Testing软件测试网0s ZfDA0L*uQ
51Testing软件测试网F V0|k&m1G I+[主要包括以下信息:51Testing软件测试网*nr4g lw [
51Testing软件测试网&fVzX`t y6J1. Table statistics(表统计)51Testing软件测试网W9R @lPi
#~w)[u[/n(^[7\0Ø Number of rows(行数)
e5s9R#}e/[&i0F0,JO\ MLop+uU8C0Ø Number of blocks(块数)51Testing软件测试网rx2Q|!n+Q,zg
51Testing软件测试网 xf ui-|ZwØ Average row length(平均行长度)
_"n}3wfU*f#j051Testing软件测试网%c)nsO7\~v].@,N2. Column statistics(列统计)
'qI{9G1Jl051Testing软件测试网 c-Z [`YØ Number of distinct values (NDV) in column(列中唯一值的数目)51Testing软件测试网A3M#k+eBPO4a
51Testing软件测试网2jP]&e$N|)@9] fØ Number of nulls in column(列中空字符的数目)51Testing软件测试网4t{OpJ9H)l"V
loL p(} C%Y0Ø Data distribution (histogram) (数据分布)
un5n,\[ OjL} s051Testing软件测试网KiD)Rj_Ø Extended statistics(扩展统计信息)
&DF0Q&q-]Hh0k/OQh w.JC jS'['K03. Index statistics(索引统计)
vbyB,eDQ)Y0/aWq6r m*X3P.Z/u?p2Zq0Ø Number of leaf blocks(叶子块的数目)
H|1j;N4Uiw1x0vEv5I M9zQ0Ø Levels(树的高度)
f^QG6J}1P+l [0MJo%~EC0J~0Ø Clustering factor(聚集因子)
J"r4E&[#b051Testing软件测试网V W uI0~AH3^2R!s4. System statistics(系统统计)51Testing软件测试网T4XSz.VM
51Testing软件测试网Fb\w+C3m+zIWØ I/O performance and utilization(I/O性能和利用率)51Testing软件测试网Zn5QS!{&A
51Testing软件测试网?J lD*F.F:{Ø CPU performance and utilization(CPU性能和利用率)
1^A2YM7z a3?0第1章 常用DBMS_STATS命令及示例通常用到的命令按照用途的不同,大致分下面几类:51Testing软件测试网 n,UESPG51Testing软件测试网)I/z |Z7^?"A$D
51Testing软件测试网] U$PT1@B3Q51Testing软件测试网e*[/hJQSX%g
1、收集统计信息:51Testing软件测试网.C@;c:i;hh9s2R5|7qO"e0rY-UE051Testing软件测试网6^ iG-jG R,M命令51Testing软件测试网a)L5i3dWT4y
作用51Testing软件测试网][i"J$CE(H^9b51Testing软件测试网E-vMi9L d
51Testing软件测试网!w(E2u5\Jk7u;_GATHER_INDEX_STATS
&@SO+d%Nx*S'\051Testing软件测试网@9SZe:B i]收集索引统计信息
nS2h0o_0'i0{7Bb8F8r)zm5fK0GATHER_TABLE_STATS
6FQM)EG7S*`b k051Testing软件测试网Qn b]G)tJqH收集表、列、索引统计信息
]rz1`$@%j0.M-].vahf5D0GATHER_SCHEMA_STATS51Testing软件测试网s nE^|.]c*b
3ynzQ*~1`([3t0收集用户下所有对象的统计信息51Testing软件测试网r eo?/ix
8Y&pi'Zt'@&b-N0GATHER_DICTIONARY_STATS51Testing软件测试网1V#NeVi:V
51Testing软件测试网DIN!ZyrZ-d收集数据字典统计信息(不建议手工收集)
W/]-q-wJEO|_#yg0D051Testing软件测试网U x#c(Y+_2vN/MwGATHER_DATABASE_STATS
%uq.}z2l0v"q051Testing软件测试网,y$_-Ha$K W}*Kc收集数据库中所有对象的统计信息
_-md1OYz S$G051Testing软件测试网R?t!nL{+o:@GATHER_FIXED_OBJECTS_STATS
1Sr8q6wo`/n-~/S0$[,p9s,rxe,D0收集固定表统计信息(不建议手工收集)
x } B%rwaEe051Testing软件测试网t8w-y%v,`1R7`GATHER_SYSTEM_STATS51Testing软件测试网&XuGx9zZ
51Testing软件测试网Ng*V@f Rv:l&V收集系统统计信息
Yyu1w*TN0t0,|L2Z7[;Hl9g`3r051Testing软件测试网z:\6NQ5D+ob3i+[
51Testing软件测试网$|Q3xh9L4`r k[R+V+Z[B*a F"\W02、删除统计信息51Testing软件测试网JynKYA$~V6VX(T6f%AJ~051Testing软件测试网x#YvXG命令
&C/T\2@!z&f ][0作用51Testing软件测试网\8{%jkU6H)p1pab51Testing软件测试网"naqs;nf
-J#_kI ~~+e g3e0DELETE_INDEX_STATS51Testing软件测试网?dS6s&?
51Testing软件测试网1Zt(nPDC Dv删除索引统计信息51Testing软件测试网N2c(v-i6sY5QP
51Testing软件测试网+s.p_*a!F*w^DELETE_TABLE_STATS
T\N%?V~mni051Testing软件测试网R:}1jG"}x.k删除表、列、索引统计信息51Testing软件测试网Z7F7LOcC x D-mM
9aH7hHo7fxp0DELETE_SCHEMA_STATS51Testing软件测试网 K4{F R8oF3TD7H8WS
*Z mqG$i*k${0删除用户下所有对象的统计信息51Testing软件测试网8}`-|0d IL#x"`2P
2W1\+XDk6tJD}[0DELETE_DICTIONARY_STATS51Testing软件测试网"K$sO8d w"Zm G"U
jnKUx$V0bF0删除数据字典统计信息(不建议使用)
Br/{ee-F00c _2Of~6iPrCd0DELETE_DATABASE_STATS51Testing软件测试网}l+Qv!Y8Ih2R
A/``!F#?cz t6_0删除数据库中所有对象的统计信息51Testing软件测试网O4kI)~L
t:u\n,IZ `[`3B+T0DELETE_FIXED_OBJECTS_STATS51Testing软件测试网X0|;lI)Ld w
51Testing软件测试网1F;gtt!H]收集固定表统计信息(不建议使用)51Testing软件测试网aCw"D)Zv
q^3T1N)b3{0DELETE_SYSTEM_STATS51Testing软件测试网W/Y~OzZMF7M
51Testing软件测试网j R{h4rV:\m删除系统统计信息
T&W$wFp#|i0I$`8o$U8iHBH ^:l0DELETE_COLUMN_STATS
3h)MG6v\051Testing软件测试网.n.p2i5z(eI删除某列统计信息
$JfbW!d2n5Jd-[(d0LSp@^2wFC051Testing软件测试网 `H\Txm#d3p
hv }u#Qifb051Testing软件测试网!PeUFQ[ao
3、锁定和解锁统计信息51Testing软件测试网O3j0|U~;U_0CdM&|F+]04AviK*M]Okl0命令
-YExm z0作用51Testing软件测试网'p:J C D8d%a+~.Y51Testing软件测试网3{;wC*HV Z&a
~KB_3@ f0LOCK_TABLE_STATS51Testing软件测试网qg2e:T;}
51Testing软件测试网gd,ZmaD}A锁定表统计信息
NR9Hf'hx051Testing软件测试网+F'i%O9mRLOCK_PARTITION_STATS
'oC*hSc;PW;E0)NM,j3P1`\}0锁定表分区统计信息51Testing软件测试网/l/[#sU(Yo
I)l/j-XA_8M/t0LOCK_SCHEMA_STATS51Testing软件测试网/O~!e `7zdh._7g
7M7VgM(o0锁定用户下所有对象的统计信息
4`pM @*x-s'M)u051Testing软件测试网a5X"X$tZ}1oYUNLOCK_TABLE_STATS
H.NO+I8cZw0gl R@!TO"y0解锁表统计信息
ri~|g*d%Q0n1d7E"d)UN9i,UNY0UNLOCK_PARTITION_STATS
{/S/Q9{D MM051Testing软件测试网(`!D:XUvY L解锁表分区统计信息
)Q)cY,|J*q,Fi0pt%Gyg!R"Z#O0UNLOCK_SCHEMA_STATS51Testing软件测试网5A6l!RhPi:M
51Testing软件测试网+RN,L*mT"|'vsdC解锁用户下所有对象的统计信息51Testing软件测试网?jY$TfF
9SQd*{e7Lv1GQ051Testing软件测试网 h8hb5H[KGe s4]
51Testing软件测试网eDj"V5Y r2W51Testing软件测试网{H[ DK+Oc0C&Q
4、查看统计信息51Testing软件测试网"Mp/V:J2A8[?*pb.]/v051Testing软件测试网g:@;z/T+R"q |命令51Testing软件测试网'j7R]#C*p-f3C:e
作用51Testing软件测试网M1\#z*X"knA51Testing软件测试网z @e#DVC|^ ?
Ek{|2wG+n0GET_COLUMN_STATS
-['VHv.od+Rdu051Testing软件测试网ga\g r*p@/e查看所有与列相关的统计信息
JH_%[+z051Testing软件测试网3x^8v5?bq8z&g&Y8bGET_INDEX_STATS
P{(v I1Tm07P,^k XZ rI+ql;d0查看所有与索引相关的统计信息51Testing软件测试网GT] Eya;mq
*L5@vl;F0GET_TABLE_STATS
$znxVf1?(Hg0x Y*wd.]~ ag0查看所有与表相关的统计信息
6N#wSD)J p&_:`4k051Testing软件测试网cQ Stl)zGET_SYSTEM_STATS
'\:RP8x foO H0EL/~y:o d,T^0查看系统级的统计信息51Testing软件测试网eu:O'vR4pc
!jAF\ g051Testing软件测试网O2b&P$H*QLa
51Testing软件测试网e HOH*m!^'{
第2章 统计信息有关视图平时可以通过查询以下视图查看数据库对象的统计信息:xO0PR5yg0
-E9d.~uF1c4H,rp4T|0 51Testing软件测试网]6e&j;c*o} M1a51Testing软件测试网{k\BZ`,z
1、表统计信息:U']w.O6tY rB7`0
]8kD4rG:q{k051Testing软件测试网7d;RK;hvP8S2P视图名称
'Al.N/H_2s0说明51Testing软件测试网3x5L.bRR9a&B{5`51Testing软件测试网H[ hjZ3@#O
DBA_ALL_TABLES / USER_*,kn/Q j\2U aQ051Testing软件测试网jW(D0a:n:GA
所有表和视图的统计信息zU'Ri iIl}0
R6L F8IDi!XJ0DBA_TAB_HISTOGRAMS / USER_*51Testing软件测试网Y6I R3kZX'RD$Y51Testing软件测试网3d0b:rC5rB#x:R5w#h
所有表的直方图统计信息2bt&RN;L_r7l051Testing软件测试网-i]T-N7L,J:G-e"R
DBA_TAB_MODIFICATIONS / USER_*51Testing软件测试网+d{4S"zx!{'\0W_!i&xRt0所有表的修改信息(插入、删除、更新)51Testing软件测试网3e5}s"K-}L51Testing软件测试网Y]dk0S
DBA_TAB_PARTITIONS / USER_*:c0Ak`-a)~ Pi j0
JYum M+~0所有表分区的统计信息-I.dw1kbiP051Testing软件测试网#|(E+c yI$K&y
DBA_TAB_STATISTICS / USER_*51Testing软件测试网 d+F0yl7` ` u\ {e51Testing软件测试网Z5G9kJ}cT4@1^
所有表、表分区、子分区的统计信息51Testing软件测试网1jsU z/f(M!n)M51Testing软件测试网F~e9E"D3tR9Fb
DBA_TAB_SUBPARTITIONS / USER_*51Testing软件测试网q&W