为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:麒麟v10
【CPU】:海光
【问题描述】*:现在我们有个分区表,大小900g,通过STAT 100 ON收集现在是一天都收集不完,有没有好的收集方案,或者是oracle类似的收集机制。
分区太多,就不要用stat命令
记住把并行策略打开,才能用并行收集.
sp_set_para_value(2, 'PARALLEL_POLICY', 2); 重启数据库生效,自启动并行线程
call dbms_stats.gather_table_stats(
ownname=>'模式名'
,tabname=>'表名'
,estimate_percent=>80
,method_opt=>'for all columns size auto'
,granularity=>'all'
,degree=10
,cascade=>true
)
直接收集最新的分区也行,不用全表收集
新版本通过dbms_stats包去收集可以并行,大表按照30采样比收集,100肯定很慢,然后degree可以设置成16之类的,试试这种