11g中引入了新的动态性能视图V$SQL_MONITOR,该视图用以显示Oracle监视的SQL语句信息。SQL监视会对那些并行执行或者消耗5秒以上cpu时间或I/O时间的SQL语句自动启动,同时在V$SQL_MONITOR视图中产生一条记录。当SQL语句正在执行,V$SQL_MONITOR视图中的统计信息将被实时刷新,频率为每秒1次。SQL语句执行完成后,监视信息将
SQL Plan Management是Oracle数据库中的一个功能,用于管理SQL查询的执行计划。它的作用是确保查询性能的稳定性和可靠性,通过捕捉和保存优化器生成的执行计划,来避免因为执行计划的变化导致的性能问题。SQL Plan Management可以自动评估和选择最佳的执行计划,以确保查询的性能始终保持在一个稳定的水平。此外,SQL Plan Manag...
首先,OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES参数控制SQL Plan Baselines自动捕获是否开启,该参数的默认设置为FALSE,这意味着SQL Plan Baselines默认不会被自动捕获。然而,DBA在会话或系统级将它设置为TRUE,SPM就开始记录SQL语句的执行,当一条SQL语句被执行多于一次时,该SQL语句就被认为SQL Plan Baselines捕获的候选。 其次...
监控数据被记录在V$SQL_MONITOR视图中,当然也可以通过Oracle 11g新增的包DBMS_MONITOR来主动对SQL执行监控部署。V$SQL_MONITOR收集的信息每秒刷新一次,接近实时。当SQL执行完毕,信息并不会立即从V$SQL_MONITOR中删除,至少会保留1分钟。V$SQL_PLAN_MONITO R视图中的执行计划信息也是每秒更新一次,当SQL执行完毕,它们...
SQL Plan Management(SPM):oracle11g 中提供的新特性,用来更好地控制执行计划。 Plan History:优化器生成的所有执行计划的总称。 SQL Plan Baseline:Plan History里那些被标记为“ACCEPTED”的执行计划的总称。 Plan Evolution:把一条执行计划从Plan History里标记为“ACCEPTED”的过程。
VSQL_MONITOR、v$sql_plan_monitor中的信息将被实时刷新,频率为每秒1次。SQL语句执行完成后,监视信息将不会被立即删除,Oracle会保证相关记录保存一分钟(由参数_sqlmon_recycle_time所控制,默认为60s),最终这些记录都会被删除并被重用。仅在CONTROL_MANAGEMENT_PACK_ACCESS---DIAGNOSTIC+TUNING和STATISTICS_LEVEL---ALL...
使用v$sql_monitor视图中所监控的SQL语句时需在满足以下条件: 1) 自动监控任何并行语句 2) 如果一个SQL语句消耗了超过5秒的CPU或I/O时间,则会自动监控 3) 监控任何在语句级启用监控的SQL语句(使用monitor或no_monitor) 提示:结合v$sql_monitor视图与v$sql_plan_monitor视图可以进一步查询SQL的执行计划等信息。联合...
默认情况下,Oracle 将监控的 SQL 语句数限制为20 X CPU_COUNT。您可以通过设置下划线参数_sqlmon_max_plan来增加此限制,但请注意,这会增加 SQL Monitor 在 Shared_Pool 中使用的内存量,并可能导致 SQL Monitoring 信息更快地从内存中老化。 如果执行计划少于 300 行,SQL Monitor 只会监视 SQL 语句。如果你知道...
首先把OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES设置成TRUE 从这个时刻开始,所有执行两次以上的SQL语句会被观测,执行计划会进入Plan History。 生成的第一个执行计划被标记为ENABLED并且是ACCEPTED,后续的执行计划会被标记为ENABLED但不是ACCEPTED。 这时把OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES设置会FALSE,新的语句将不会创建Ba...
并行执行的SQL将全部被监控到,不需要等待CPU或IO时间超过5秒。对于这一点也比较好理解,一般并行查询的SQL都是报表类或比较重的任务类的SQL,因此会自动打开SQL MONITORING的功能。 增加HINT /+ monitor/的SQL会立即开启SQL MONITORING功能。 除了以上条件外,你还需要检查一些系统参数是否设置正确: ...