Oracle设置统计信息

重置统计信息

SET SERVEROUTPUT ON
BEGIN DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'EGISNBUDATA',
TABNAME => 'NBU_QUOTATE_CC_ATTR_VALUE',
METHOD_OPT => 'FOR ALL COLUMNS SIZE REPEAT',
DEGREE => 1,
CASCADE => TRUE,
NO_INVALIDATE => FALSE);
END;
/
declare
v_last_analyzed date;
BEGIN
SELECT LAST_ANALYZED INTO V_LAST_ANALYZED 
 FROM DBA_TABLES WHERE OWNER = 'EGISNBUDATA'
 AND TABLE_NAME = 'NBU_QUOTATE_CC_ATTR_VALUE';
 IF V_LAST_ANALYZED >= TRUNC(SYSDATE) THEN 
DBMS_OUTPUT.PUT_LINE('NBU_QUOTATE_CC_ATTR_VALUE表统计信息收集成功!');
ELSE
DBMS_OUTPUT.PUT_LINE('NBU_QUOTATE_CC_ATTR_VALUE表统计信息收集失败,请排查原因!');
END IF;
END;
/
------------delete_statistics_if_num_rows_is_zero ---------------
DECLARE 
V_COUNT NUMBER;
BEGIN 
SELECT num_rows
INTO V_COUNT FROM DBA_TABLES
WHERE owner = 'EGISNBUDATA' AND table_name = 'NBU_QUOTATE_CC_ATTR_VALUE';
if v_count=0 then 
BEGIN DBMS_STATS.DELETE_TABLE_STATS(OWNNAME => 'EGISNBUDATA',
TABNAME => 'NBU_QUOTATE_CC_ATTR_VALUE',
CASCADE_COLUMNS => TRUE ,
CASCADE_INDEXES => TRUE ,
CASCADE_PARTS => TRUE );
END;
END IF;
END;
/
------------delete_statistics_if_num_rows_is_zero ---------------

转载于:https://my.oschina.net/kanlianhui/blog/148489

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值