注册
通过拼接语句批量获取更新表统计信息并系统后台执行
培训园地/ 文章详情 /

通过拼接语句批量获取更新表统计信息并系统后台执行

山水清音 2023/08/25 1200 1 0

1.拼接获取某大数据模式2023结尾年表统计信息包更新语句,每条语句执行后睡眠60秒;采样率50;

批量获取拼接语句如下:

select
        'DBMS_STATS.GATHER_TABLE_STATS('
        ||''''
        ||t1.NAME
        ||''''
        ||','
        ||''''
        ||T2.NAME
        ||''''
        ||',NULL,50,TRUE,'
        ||''''
        ||'FOR ALL INDEXED COLUMNS SIZE AUTO'
        ||''''
        ||');SLEEP(60);'
from
        sysobjects t1,
        SYSOBJECTS T2
where
        t1.type$   ='SCH'
    and t1.name   in ('模式1','模式2')    
    and T2.schid   =t1.id
    and T2.SUBTYPE$='UTAB'
    and T2.NAME like '%2023';

2.获取的语句样例如下:

DBMS_STATS.GATHER_TABLE_STATS('模式','表_2023',NULL,50,TRUE,'FOR ALL INDEXED COLUMNS SIZE AUTO');SLEEP(60);

3.放到操作系统后台执行:

cd /tmp/dm_update
vim call_index11.sql ,粘贴如下内容:

select sysdate;
DBMS_STATS.GATHER_TABLE_STATS('模式','表_2023',NULL,50,TRUE,'FOR ALL INDEXED COLUMNS SIZE AUTO');SLEEP(60);
select sysdate;
exit;

使用disql在操作系统后台运行:

nohup ./disql SYSDBA/SYSDBA@127.0.0.1:5236 ‘`/tmp/dm_update/call_index11.sql’ >>/tmp/dm_update/call_index11.log &

监控输出日志,确认正常执行完成;批量跑的要注意数据库主机负载。
如上仅供参考!

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服