Oracle数据库11g新特性:可管理性
2008-12-16 13:01:12 来源:WEB开发网您可以看到行数没变,同时 last_analyzed 值也没变。那么,刚收集的统计信息发生了什么变化呢?统计信息被标记为正在审核。正在审核的统计信息可在视图 USER_TAB_PENDING_STATS 中看到:
select num_rows, to_char(last_analyzed,'mm/dd/yy hh24:mi:ss')
from user_tab_pending_stats
where table_name = 'SALGRADE';
Here is the output:
NUM_ROWS TO_CHAR(LAST_ANAL
---------- -----------------
9 09/21/07 11:03:35
现在表有 9 行,显示正在审核的统计信息。同时显示有收集时间。假定您想让优化程序看到这些正在审核的统计信息。您可以发布它们:
begin
dbms_stats.publish_pending_stats('ARUP', 'SALGRADE');
end;
/
如果您检查视图 user_tab_pending_stats,您会发现它现在是空的。如果您现在检查 USER_TABLES,您会看到最新的统计信息:
NUM_ROWS TO_CHAR(LAST_ANAL
---------- -----------------
9 09/21/07 11:03:35
这种将统计信息的收集和发布相分开的方法也可用于分区的表。假定您正在逐个分区地加载一个表。您不希望只提供部分信息给优化程序,您更希望所有分区的统计信息能够同时被优化程序看到。但是您还想在加载分区后立刻利用这一时间。那么,您可以在加载分区后立即收集它的统计信息,但不发布这些信息。分析完所有分区后,您可以一次性发布这些统计信息。
检查正在审核的统计信息然后发布
对正在审核的统计信息的一个妙用是,收集它们并测试查询,然后发布。要使优化程序使用正在审核的统计信息而非已发布的信息,将会话参数 optimizer_use_pending_statistics 设为 true.
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接