一. 官网说明
1.1 session_longops
V$SESSION_LONGOPS 显示运行时间超过 6 秒(以绝对时间为单位)的各种操作的状态。这些操作目前包括许多备份和恢复功能、统计信息收集和查询执行,并且为每个 Oracle 版本添加了更多操作。
若要监视查询执行进度,必须使用基于开销的优化器,并且必须:
(1)设置TIMED_STATISTICS
(2)使用 ANALYZE 语句或DBMS_STATS包收集对象的统计信息
-- 使用条款
您可以使用DBMS_APPLICATION_INFO向此视图添加有关特定于应用程序的长时间运行操作的信息。SET_SESSION_LONGOPS程序。
列 | 数据类型 | 描述 |
断续器 | 数 | 处理长时间运行的操作的会话的标识符。如果多个会话在长时间运行的操作中进行协作,则 SID 对应于主会话或主会话。 |
串行# | 数 | 处理长时间运行的操作的会话的序列号。如果多个会话在长时间运行的操作中协同工作,则 SERIAL# 对应于主会话或主会话。SERIAL# 用于唯一标识会话的对象。保证在会话结束而另一个会话以相同的会话 ID 开始时,会话级命令将应用于正确的会话对象。 |
录音 | 瓦查尔2(64) | 操作的简要说明 |
目标 | 瓦查尔2(64) | 对其执行操作的对象 |
TARGET_DESC | 瓦查尔2(32) | 目标描述 |
索法尔 | 数 | 迄今已完成的工作单位 |
总工 | 数 | 总工作单位 |
单位 | 瓦查尔2(32) | 计量单位 |
START_TIME | 日期 | 操作的开始时间 |
LAST_UPDATE_TIME | 日期 | 上次更新操作统计信息的时间 |
时间戳 | 日期 | 特定于操作的时间戳 |
TIME_REMAINING | 数 | 估计(以秒为单位)操作完成的剩余时间 |
ELAPSED_SECONDS | 数 | 从操作开始开始经过的秒数 |
上下文 | 数 | 上下文 |
消息 | 瓦查尔2(512) | 统计信息摘要消息 |
用户名 | 瓦查尔2(30) | 执行操作的用户的用户 ID |
SQL_ADDRESS | RAW(4 | 8) | Used with the value of the SQL_HASH_VALUE column to identify the SQL statement associated with the operation |
SQL_HASH_VALUE | NUMBER | Used with the value of the SQL_ADDRESS column to identify the SQL statement associated with the operation |
SQL_ID | VARCHAR2(13) | SQL identifier of the SQL statement associated with the long operation, if any |
SQL_PLAN_HASH_VALUE | NUMBER | SQL plan hash value; NULL if SQL_ID is NULL |
SQL_EXEC_START | DATE | Time when the execution of the SQL started; NULL if SQL_ID is NULL |
SQL_EXEC_ID | NUMBER | SQL execution identifier (see V$SQL_MONITOR) |
SQL_PLAN_LINE_ID | NUMBER | SQL plan line ID corresponding to the long operation; NULL if the long operation is not associated with a line of the execution plan |
SQL_PLAN_OPERATION | VARCHAR2(30) | Plan operation name; NULL if SQL_PLAN_LINE_ID is NULL |
SQL_PLAN_OPTIONS | VARCHAR2(30) | Plan operation options; NULL if SQL_PLAN_LINE_ID is NULL |
QCSID | NUMBER | Session identifier of the parallel coordinator |
1.2 SQL_TRACE
Property | Description |
Parameter type | Boolean |
Default value | false |
Modifiable | ALTER SESSION, ALTER SYSTEM |
Range of values | true | false |
SQL_TRACE enables or disables the SQL trace facility. Setting this parameter to true provides information on tuning that you can use to improve performance.
Caution:
Using this initialization parameter to enable the SQL trace facility for the entire instance can have a severe performance impact.
(1). Maintaining at least 25% idle CPU capacity
(2).为USER_DUMP_DEST位置维护足够的磁盘空间
(3).在足够磁盘上对磁盘空间进行条带化
注意:
SQL_TRACE参数已弃用。
SQL_TRACE 已经被弃用了.
1.3 TIMED_STATISTICS
财产 | 描述 |
参数类型 | 布尔 |
默认值 | 如果STATISTICS_LEVEL设置为“典型”或“全部”,则为 true 如果STATISTICS_LEVEL设置为“基本”,则为 false |
修改 | 更改会话,更改系统 |
值范围 | 真正的|假 |
TIMED_STATISTICS指定是否收集与时间相关的统计信息。
值:
true:统计信息被收集并存储在跟踪文件中,或显示在 V$SESSTATS 和 V$SYSSTATS 动态性能视图中。
false:所有与时间相关的统计信息的值都设置为零。此设置使 Oracle 能够避免从操作系统请求时间的开销。
从版本 11.1.0.7.0 开始,如果 STATISTICS_LEVEL 的值设置为典型值或全部值,则不能将 TIMED_STATISTICS 参数的值设置为 false。
在某些具有非常快的计时器访问的系统上,即使此参数设置为 false,Oracle 也可能启用计时。在这些系统上,将参数设置为 true 有时可以为长时间运行的操作生成更准确的统计信息。
二. 相关测试
SYS@anqing2(rac2)>显示参数sql_trace
名称类型值
------------------------------------ ----------- ------------------------------
sql_trace 布尔假值
SYS@anqing2(rac2)>显示参数TIMED_STATISTICS
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
timed_statistics boolean TRUE
该视图通常配合V$SESSION视图,来分析SQL运行缓慢的原因。
查询未完成操作的信息
单实例
/* Formatted on 2011/6/22 21:20:53 (QP5 v5.163.1008.3004) */
SELECT sid,
MESSAGE,
start_time,
last_update_time,
time_remaining,
elapsed_seconds
FROM V$SESSION_LONGOPS
WHERE time_remaining > 0;
RAC
/* Formatted on 2011/6/22 21:21:27 (QP5 v5.163.1008.3004) */
SELECT inst_id,
sid,
MESSAGE,
start_time,
last_update_time,
time_remaining,
elapsed_seconds
FROM GV$SESSION_LONGOPS
WHERE time_remaining > 0;