WEB开发网
开发学院数据库Oracle Oracle 11g R1中的统计收集增强 阅读

Oracle 11g R1中的统计收集增强

 2008-09-02 12:45:57 来源:WEB开发网   
核心提示: 如果将初始化参数OPTIMIZER_PENDING_STATISTICS设置为TRUE(默认为FALSE),优化器就可以使用挂起的统计,Oracle 11g R1中的统计收集增强(2),在会话层修改这个参数允许你测试在发布挂起的统计之后有何影响:alterSESSIONSETOPTIMIZ

如果将初始化参数OPTIMIZER_PENDING_STATISTICS设置为TRUE(默认为FALSE),优化器就可以使用挂起的统计。在会话层修改这个参数允许你测试在发布挂起的统计之后有何影响:

alterSESSIONSETOPTIMIZER_PENDING_STATISTICS=TRUE;

使用存储过程DBMS_STATS.EXPORT_PENDING_STATS可以在数据库之间传输挂起的统计,通过导入导出实现。

扩展的统计

多列统计

在where子句中选择一个单列进行统计非常好办,但如果where子句中包括了来自同一个表的多个列,事情就不是那么简单了,单列统计没有给出列与列之间的关联,这就使选择列组进行统计变得非常困难。

Oracle使用负载分析产生列组,但也可以使用DBMS_STATS包进行手动控制,

create_EXTENDED_STATS存储过程用于创建多列统计。
--createacolumnngroupbasedonEMP(JOB,DEPTNO).
DECLARE
 l_cg_nameVARchar2(30);
BEGIN
 l_cg_name:=DBMS_STATS.create_extended_stats(ownname =>’SCOTT’,
                        tabname =>’EMP’,
                        extension=>’(JOB,DEPTNO)’);
END;
/
PL/SQLproceduresuccessfullycompleted.
SQL>

使用函数SHOW_EXTENDED_STATS_NAME返回列组名。

--Displaythenameofthecolumnngroup.
selectDBMS_STATS.show_extended_stats_name(ownname =>’SCOTT’,
                     tabname =>’EMP’,
                     extension=>’(JOB,DEPTNO)’)AScg_name
FROMdual;
CG_NAME
------------------------------
SYS_STU3VG629OEYG6FN0EKTGV_HQ6
1rowselected.
SQL>

上一页  1 2 3 4  下一页

Tags:Oracle 统计 收集

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接