oracle重新收集了schema的统计信息

这是公司请的dba解决这个问题的全过程,反正我是一脸懵逼。

Connecting to 10.206.1.126:22...

Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.


Last login: Tue Feb  6 19:19:31 2018 from 10.206.14.112
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ sqlplus / as sysdba


SQL*Plus: Release 12.2.0.1.0 Production on Wed Feb 7 15:12:54 2018


Copyright (c) 1982, 2016, Oracle.  All rights reserved.




Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production


SQL> exec dbms_stats.gather_schema_stats('ccs_s')^H^H^H^[[3~
BEGIN dbms_stats.gather_schema_stats('ccs_; END;


                                             *
ERROR at line 1:
ORA-06550: line 1, column 46:
PLS-00103: Encountered the symbol "" when expecting one of the following:
:= . ( % ;




SQL> 
SQL> 
SQL> exec dbms_stats.gather_schema_stats('ccs_sd');




PL/SQL procedure successfully completed.


SQL> SQL> exec dbms_stats.gather_schema_stats('ccs_sm');
BEGIN dbms_stats.gather_schema_stats('ccs_sm'); END;


*
ERROR at line 1:
ORA-20000: Schema "CCS_SM" does not exist or insufficient privileges
ORA-06512: at "SYS.DBMS_STATS", line 38298
ORA-06512: at "SYS.DBMS_STATS", line 38257
ORA-06512: at "SYS.DBMS_STATS", line 8593
ORA-06512: at "SYS.DBMS_STATS", line 38140
ORA-06512: at "SYS.DBMS_STATS", line 38285
ORA-06512: at line 1




SQL> exec dbms_stats.gather_schema_stats('ccs_mm');




exec dbms_stats.gather_schema_stats('ccs_pm');




PL/SQL procedure successfully completed.


SQL> SQL> SQL> 


exec dbms_stats.gather_schema_stats('ccs_fm');


exec dbms_stats.gather_schema_stats('ccs_ct');




PL/SQL procedure successfully completed.


SQL> SQL> SQL> SQL> 
exec dbms_stats.gather_schema_stats('ccs_mdm');




PL/SQL procedure successfully completed.


SQL> SQL> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
针对Oracle分区表的收集统计信息可以通过以下步骤完成: 1. 确定需要收集统计信息的分区表。 2. 使用DBMS_STATS包中的GATHER_TABLE_STATS过程收集表的统计信息。例如: ``` EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>'schema_name',tabname=>'table_name',partname=>'partition_name',cascade=>TRUE,estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE); ``` 其中,ownname代表分区表所在的schema名称,tabname代表分区表名称,partname代表分区名称,cascade参数指定收集分区表的所有分区的统计信息,estimate_percent参数指定使用自动样本大小。 3. 对于大型分区表,可以考虑使用INCREMENTAL方法收集统计信息,以便节省收集统计信息的时间和资源。例如: ``` EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>'schema_name',tabname=>'table_name',partname=>'partition_name',cascade=>TRUE,estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,method_opt=>'FOR ALL COLUMNS SIZE AUTO INCREMENTAL ON PARTITION(partition_name)'); ``` 其中,method_opt参数指定了使用INCREMENTAL方法收集统计信息,并且只对指定的分区进行增量收集。 4. 在收集完分区表的统计信息后,可以使用DBMS_STATS.PURGE_TABLE_STATS过程清除过期的统计信息。例如: ``` EXEC DBMS_STATS.PURGE_TABLE_STATS(ownname=>'schema_name',tabname=>'table_name',partname=>'partition_name',cascade=>TRUE); ``` 其中,cascade参数指定清除分区表的所有分区的统计信息。 以上就是收集Oracle分区表统计信息的基本步骤。需要注意的是,统计信息收集频率应该根据分区表数据的变化情况来确定,以便保证查询优化器的准确性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值