要启用并发统计信息收集,请使用以下DBMS_STATS.SET_GLOBAL_PREFS步骤设置CONCURRENT首选项。
可能的值如下:
MANUAL :并发仅用于手动统计信息收集。AUTOMATIC :并发仅用于自动统计信息收集。ALL :启用了手动和自动统计信息收集的并发。OFF :手动和自动统计信息收集均禁用并发。这是默认值。
本节中的本教程说明如何启用并发统计信息收集。
先决条件
本教程具有以下先决条件:
- 除了用于收集统计信息的标准特权外,您还必须具有以下特权:
CREATE JOBMANAGE SCHEDULERMANAGE ANY QUEUE
- 该
SYSAUX表空间必须处于联机状态,因为调度程序将其内部表和视图存储在此表空间中。 - 在
JOB_QUEUE_PROCESSES初始化参数必须至少设置4。 - 必须启用资源管理器。
默认情况下,资源管理器处于禁用状态。如果您没有资源计划,请考虑使用系统提供的启用资源管理器
DEFAULT_PLAN。
假设条件
本教程假定您要执行以下操作:
- 启用并发统计信息收集
- 收集
sh架构的 统计信息 - 监控
sh统计数据 的收集
要启用并发统计信息收集:
- 使用适当的权限将SQL * Plus连接到数据库,然后启用资源管理器。
以下示例对资源管理器使用默认计划:
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'DEFAULT_PLAN'; - 将
JOB_QUEUE_PROCESSES初始化参数至少设置为CPU内核数量的两倍。在Oracle Real Application Clusters中,该
JOB_QUEUE_PROCESSES设置适用于每个节点。假设系统具有4个CPU内核。以下示例将参数设置为
8(内核数的两倍):ALTER SYSTEM SET JOB_QUEUE_PROCESSES=8; - 确认参数更改生效。
例如,在SQL * Plus中输入以下命令(包括示例输出):
SHOW PARAMETER PROCESSES; NAME TYPE VALUE -------------------------------- ----------- ----- _high_priority_processes string VKTM aq_tm_processes integer 1 db_writer_processes integer 1 gcs_server_processes integer 0 global_txn_processes integer 1 job_queue_processes integer 8 log_archive_max_processes integer 4 processes integer 100 - 启用并发统计信息。
例如,执行以下PL / SQL匿名块:
BEGIN DBMS_STATS.SET_GLOBAL_PREFS('CONCURRENT','ALL'); END; / - 确认已启用统计信息。
例如,执行以下查询(包括示例输出):
SELECT DBMS_STATS.GET_PREFS('CONCURRENT') FROM DUAL; DBMS_STATS.GET_PREFS('CONCURRENT') ---------------------------------- ALL - 收集
SH架构的统计信息。例如,执行以下过程:
EXEC DBMS_STATS.GATHER_SCHEMA_STATS('SH'); - 在单独的会话中,通过查询监视作业进度
DBA_OPTSTAT_OPERATION_TASKS。例如,执行以下查询(包括示例输出):
SET LINESIZE 1000 COLUMN TARGET FORMAT a8 COLUMN TARGET_TYPE FORMAT a25 COLUMN JOB_NAME FORMAT a14 COLUMN START_TIME FORMAT a40 SELECT TARGET, TARGET_TYPE, JOB_NAME, TO_CHAR(START_TIME, 'dd-mon-yyyy hh24:mi:ss') FROM DBA_OPTSTAT_OPERATION_TASKS WHERE STATUS = 'IN PROGRESS' AND OPID = (SELECT MAX(ID) FROM DBA_OPTSTAT_OPERATIONS WHERE OPERATION = 'gather_schema_stats'); TARGET TARGET_TYPE JOB_NAME TO_CHAR(START_TIME,' --------- ------------------------- -------------- -------------------- SH.SALES TABLE (GLOBAL STATS ONLY) ST$T292_1_B29 30-nov-2012 14:22:47 SH.SALES TABLE (COORDINATOR JOB) ST$SD290_1_B10 30-nov-2012 14:22:08 - 在原始会话中,禁用并发统计信息收集。
例如,执行以下查询:
EXEC DBMS_STATS.SET_GLOBAL_PREFS('CONCURRENT','OFF');
也可以看看:
- “ 监视统计信息收集操作 ”
- Oracle数据库管理员指南
- Oracle Database PL / SQL软件包和类型参考,以了解如何使用该
DBMS_STATS.SET_GLOBAL_PREFS过程
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




