a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 129|回复: 0

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

[复制链接]
发表于 2012-8-4 13:56:03 | 显示全部楼层 |阅读模式
保留表或者相关数据对象统计信息的历史数据是个不错的习惯。万一新的剖析(ANALYZE 或者 DBMS_STATS) 事后发现统计信罕有问题,急于恢复的时辰又找不到备份,是个斗劲糟糕的工作。 , W4 f/ M7 U. F3 R2 ~
虽然我在维护的过程中很少使用 DBMS_STATS 来收集数据对象统计信息,不外用这个工具来进行统计信息的打点仍是很便利的。
, v$ R8 _* Z: O  s( ]# Z' W首先成立资料库, DBMS_STATS 的具体语法暂且就跳曩昔了, 事实下场手册上写的更清嚣张。
- v+ g$ T- \/ d" {8 T以下是引用片段:
, k" M# A) e; ?7 L9 D9 e: kEXECUTEDBMS_STATS.CREATE_STAT_TABLE(‘SCOTT‘,‘STATTAB‘,‘SYSAUX‘); # N# O2 B$ |) y, `
在 SYSAUX 表空间上建树 STATTAB 用以存储统计信息, 所有者是 SCOTT 用户。来历:考试网IT学院
0 D3 Q+ U$ N) @" P, V导出统计信息. (在任何可能更改表的统计信息的 DDL 操作之前, 必然要导出统计信息) ( K7 F& x8 Q! l0 N1 r7 M" F
以下是引用片段: 1 _0 B) ]4 H7 d. A
EXECdbms_stats.EXPORT_SCHEMA_STATS - Y8 c* {7 f. Z& S1 K  \3 r
(ownname=‘scott‘,stattab=‘stattab‘,STATID=‘foo_20080107‘);
& F! Y4 H* c% ^+ f这里建议手动设定一下 STATID. STATID 命名轨则建议用 对象名(SCHEMA名)+ 时刻(注重粒度).
; Y- P+ U6 i# W3 W9 l, n* |至于导入整个 SCHEMA 的信息,必然要稳重再稳重。 " `! p6 k6 M- [  A- K# ?
在任何可能更改表的统计信息的 DDL 操作之前, 导出(备份)统计信息
$ M+ P( I+ c! N' Y$ J: R以下是引用片段: 7 {. v' N  ~  X" i6 {+ T' S
EXECdbms_stats.export_table_stats
+ ?- q$ A, I, V( r(OWNNAME=‘scott‘,TABNAME=‘foo‘,STATTAB=‘stattab‘,STATID=‘foo_20080107‘); 8 y' Q3 _$ A$ Y) G  Q% G* j
恢复该表的统计信息(之前要导出当前的统计信息): ' ?5 ~* _& m+ n, l
以下是引用片段:
: F  e, I; Z1 o- R0 s+ f5 p6 O- yEXECdbms_stats.import_table_stats . A1 w, _8 o2 W" y1 y9 w# c6 X
(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-6-18 18:39 , Processed in 0.169150 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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