9iDBMS_STATS包收集统计信息

上一篇 / 下一篇  2009-01-04 23:03:53 / 个人分类:Oracle

  • 文件版本: V1.0
  • 开发商: 本站原创
  • 文件来源: 本地
  • 界面语言: 简体中文
  • 授权方式: 免费
  • 运行平台: Win9X/Win2000/WinXP
   在9i中,Oracle增强了SQL的基于开销的优化器(CBO),从而在决定SQL语句的最优执行计划时采用I/O和CPU使用率统计信息。51Testing软件测试网*gAH5Tl
   51Testing软件测试网(V"P1r5q r vP(F
  Oracle使用新的Oracle9i DBMS_STATS包来收集这些信息。然而,这个包的功能非常有限,而且因为大多数系统有多种操作模式,所以说在考虑Oracle收集系统统计信息的时候你必须格外小心。51Testing软件测试网fS:S:Ar
  51Testing软件测试网4QU'Z5lmem
  典型地,假如选择使用DBMS_STATS,最好的办法是在数据库进行某种类型的处理时进行采样。例如,假设我们有一个白天运行于OLTP模式下而晚上运行于决策支持系统(DSS)模式下的数据库。51Testing软件测试网r_7A a4S XT/h
  51Testing软件测试网V}a_3e)c8X%|7q6D
  在下面的例子中,白天Oracle在运行于OLTP模式下时收集统计信息;而在晚上,Oracle在运行批处理操作时收集统计信息。
wW;JuPY0  51Testing软件测试网 gMw2k G{
  -- Create the table to hold the stats51Testing软件测试网G.d x7{v2z2x\['K
  dbms_Stats.Create_Stat_Table (51Testing软件测试网7e6t*{k Oe
   ownname => 'PROD',
5sb!H#] ^w0F Y0   stattab => 'dbastats',
b*W+r:d]$PN0   tblspace => 'perfstat');51Testing软件测试网WeH~:|V
  
Gs s/n/uGFW,Q%R0  -- Run during the day; gather stats for when the system is in OLTP mode
y8})b3bz j U5B"V-U5\i0  BEGIN
!lhm1K U0   dbms_Stats.Gather_System_Stats(
5xT a(R%O gH;ac0    interval => 300,
CB^,HVb p0    stattab => 'dbastats',51Testing软件测试网2j9D5[/j&xzX
    statid => 'OLTP');
!Ju%w3vAu8Kt)R0  END;51Testing软件测试网!M-Sw8JVV0y&mc"L
  /51Testing软件测试网2b-@+R }Wv J!Y!]
  
9khDi9UU V"|8} p x0  -- Start at night to gather stats during batch operations
u.mVBZO0  BEGIN51Testing软件测试网]w$Z I5lA0RO
   Dbms_Stats.Gather_System_Stats(
U1` Jrp4TPx0    interval => 300,51Testing软件测试网.xrE'R q%R6y!g5^P+r
    stattab => 'mystats',
$U [(F3z#AQ0H*d0    statid => 'DSS');51Testing软件测试网)I t oVX0^e$F
  END;
"N G9W)y3q0  /51Testing软件测试网A+e)}\U
  51Testing软件测试网&Tp5?Z W'b
  在已经收集了系统统计信息的采样之后,我们就可以在系统改变处理模式的时候动态地切换系统统计。
$|K3d%dp[!B4{,F^0  51Testing软件测试网(f?ua#h5AK
  execdbms_stats.import_system_stats('dbastats','OLTP');
8P/i9Q cKqj5Q |v0  exec dbms_stats.import_system_stats('dbastats','BATCH');
kF+P/k5o0  51Testing软件测试网4q2a,_l:F,g Z
  当然,这个特性对于双峰Oracle数据库来说是很基本的,因为对于这种数据库的处理特点变化很大。而对于查询模式恒定的均匀型数据库来说,这个特性与你自己的查询执行计划区别不大。

TAG: Oracle

 

评分:0

我来说两句

Open Toolbar