一. 官网说明

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;