a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 123|回复: 0

[其他] Oracle认证:用DBMSSTATS构造STATS环境

[复制链接]
发表于 2012-8-4 13:56:03 | 显示全部楼层 |阅读模式
保留表或者相关数据对象统计信息的历史数据是个不错的习惯。万一新的剖析(ANALYZE 或者 DBMS_STATS) 事后发现统计信罕有问题,急于恢复的时辰又找不到备份,是个斗劲糟糕的工作。 + A- z* ]# B5 X1 z4 j
虽然我在维护的过程中很少使用 DBMS_STATS 来收集数据对象统计信息,不外用这个工具来进行统计信息的打点仍是很便利的。
  y( n- e* y0 N0 J* m! ^2 S首先成立资料库, DBMS_STATS 的具体语法暂且就跳曩昔了, 事实下场手册上写的更清嚣张。
$ a! ]" E$ w7 z+ b  Q6 C以下是引用片段: # T$ d: G  q2 q* ]; Q) Y' m2 X
EXECUTEDBMS_STATS.CREATE_STAT_TABLE(‘SCOTT‘,‘STATTAB‘,‘SYSAUX‘);   l4 `( y: I  d1 I
在 SYSAUX 表空间上建树 STATTAB 用以存储统计信息, 所有者是 SCOTT 用户。来历:考试网IT学院 & m! N2 y6 g0 v5 t! q8 J
导出统计信息. (在任何可能更改表的统计信息的 DDL 操作之前, 必然要导出统计信息)
* [3 J6 ^7 B$ \5 q* ^3 J5 {# G以下是引用片段: + Q$ k! j/ e: Y- j2 s( g& ~
EXECdbms_stats.EXPORT_SCHEMA_STATS 0 Z" \' k  L% [' n# W; S
(ownname=‘scott‘,stattab=‘stattab‘,STATID=‘foo_20080107‘);
5 Y( r% p) G" [5 q这里建议手动设定一下 STATID. STATID 命名轨则建议用 对象名(SCHEMA名)+ 时刻(注重粒度).
) w3 j9 [, m- S) D& B至于导入整个 SCHEMA 的信息,必然要稳重再稳重。   N- z. C) G5 k2 ^( H7 ^# l
在任何可能更改表的统计信息的 DDL 操作之前, 导出(备份)统计信息
  e' U/ A7 `' K' M+ z以下是引用片段: # i9 h, @5 V+ u1 f! b6 R6 {
EXECdbms_stats.export_table_stats
+ B. F7 v% T. K: w$ r) _(OWNNAME=‘scott‘,TABNAME=‘foo‘,STATTAB=‘stattab‘,STATID=‘foo_20080107‘); 7 \. c$ _$ u) `
恢复该表的统计信息(之前要导出当前的统计信息):
- A. R; f1 v6 K以下是引用片段:
' N; Q7 ?4 m8 OEXECdbms_stats.import_table_stats
! a& |( q3 [! m9 R(OWNNAME=‘scott‘,TABNAME=‘foo‘,STATTAB=‘stattab‘,STATID=‘foo_20080107‘); 为了避免误导,需要声名的是,我只收集表和索引的统计信息。尽量不用 DBMS_STATS 收集统计信息,要问为什么? 去看看 DBMS_STATS 相关的 Bug 就知道了(好比飞龙说的这个问题)。只有在 ANALYZE 力有未逮瞬息才会考虑用 DBMS_STATS.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-30 06:25 , Processed in 0.525669 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表