ITPub博客

首页 > 数据库 > Oracle > 收集表的统计信息时并发过高

收集表的统计信息时并发过高

原创 Oracle 作者:sjw1933 时间:2023-01-28 16:54:14 0 删除 编辑

一台数据库服务器报  cpu loader  过高,查看当前等待事件,发现对应 sql :

 

 

 

/* SQL Analyze(1) */

select /*+  full(t)    parallel(t,64) parallel_index(t,64) dbms_stats cursor_sharing_exact use_weak_name_resl dynamic_sampling(0) no_monitoring no_substrb_pad  */

 to_char(count("ID")),

 

这是收集表统计信息的 sql  ,并发  64  ,有点过高

 

 

查看表的并发度 为 default  

 

10:32:41 sys@Q9JSHS>select TABLE_NAME,DEGREE from dba_tables where table_name='GE_BALANCE_DETAIL';

 

TABLE_NAME                     DEGREE

------------------------------ --------------------

GE_BALANCE_DETAIL                 DEFAULT

 

12:56:14 sys@Q9JSHS>show parameter parallel_threads_per_cpu   

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

parallel_threads_per_cpu             integer     2

12:56:28 sys@Q9JSHS>show parameter cpu_count

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

cpu_count                            integer     32

 

那么该表的并发为  parallel_threads_per_cpu  * cpu_count * rac  节点数,因为是单实例 ,所以得到并发度为 64  ,和我们看到的结果吻合

 

 

 

 

如果我们手动设置表的并发度,那么表的并发由我们设置的并发值控制。

 

alter table USR_JOBS.GE_UTILS_BILLSCAN_LOG parallel 2;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23825935/viewspace-2933084/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
11年数据库行业经验,Oracle ACE、PG ACE、OCM、IBM Certified DBA、MySQL OCP、PolarDB技术专家、KCP、PCTP、PCSD、达梦师资认证、PolarDB开源社区技术顾问、ITPUB认证专家、某高校外聘教师

注册时间:2019-05-05

  • 博文量
    295
  • 访问量
    300808