用v$session_longops监视大型操作

原创 2004年08月02日 09:45:00

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

 

v$session_longops监视大型操作

 

作者:Lunar

 

 

 

我们可以使用v$session_longops视图用于监视任何运行时间很长的操作(DDLDML)。,使用它之前必须满足两个条件:

1.       设置TIMED_STATISTICS 或者SQL_TRACE

2.       因为这个功能只能应用于基于成本的优化器,所以必须存在统计数据

与之相同的功能也可以使用Oracle 9i提供的DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS来完成。

 

Column

Datatype

Description

SID

NUMBER

Session identifier

SERIAL#

NUMBER

Session serial number

OPNAME

VARCHAR2(64)

Brief description of the operation

TARGET

VARCHAR2(64)

The object on which the operation is carried out

TARGET_DESC

VARCHAR2(32)

Description of the target

SOFAR

NUMBER

The units of work done so far

TOTALWORK

NUMBER

The total units of work

UNITS

VARCHAR2(32)

The units of measurement

START_TIME

DATE

The starting time of operation

LAST_UPDATE_TIME

DATE

Time when statistics last updated

TIME_REMAINING

NUMBER

Estimate (in seconds) of time remaining for the operation to complete

ELAPSED_SECONDS

NUMBER

The number of elapsed seconds from the start of operations

CONTEXT

NUMBER

Context

MESSAGE

VARCHAR2(512)

Statistics summary message

USERNAME

VARCHAR2(30)

User ID of the user performing the operation

SQL_ADDRESS

RAW(4)

Used with the value of the SQL_HASH_VALUE column to identify the SQL statement associated with the operation

SQL_HASH_VALUE

NUMER

Used with the value of the SQL_ADDRESS column to identify the SQL statement associated with the operation

QCSID

NUMBER

Session identifier of the parallel coordinator

 

 

下面的脚本将显示一个状态信息,说明了运行时间很长的DDL操作已经使用的时间。

Select sid, message

From v$session_longops

Where sid = &sid

order by start_time;

 

实例1——监视创建大索引(DDL

 

Microsoft Windows 2000 [Version 5.00.2195]

(C) 版权所有 1985-2000 Microsoft Corp.

 

C:/>sqlplus lunar/lunar@lunar

 

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6 15 16:32:25 2004

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 

 

连接到:

Oracle9i <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Enterprise Edition Release 9.2.0.1.0 - Production

With the OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

 

SQL> select distinct sid from v$mystat;

 

       SID

----------

         9

 

SQL> set time on

17:16:51 SQL> create index idx_t on t(OBJECT_ID);

 

索引已创建。

 

已用时间:  00: 03: 08.00

17:20:19 SQL>

 

 

在另一个session中:

SQL> conn lunar/lunar@lunar

已连接。

SQL> analyze table t ESTIMATE STATISTICS sample 1 PERCENT;

 

表已分析。

 

SQL> set linesize 1000

SQL> column message format a70

SQL> Select sid, message

  2  From v$session_longops

  3  Where sid = 9

  4  order by start_time

  5  /

 

       SID MESSAGE

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

         9 Table Scan:  LUNAR.T: 19537 out of 19537 Blocks done

         9 SQL Execution:  : 1881 out of 1881 units done

         9 Table Scan:  LUNAR.T: 39173 out of 39173 Blocks done

         9 Sort/Merge:  : 9976 out of 9976 Blocks done

         9 Sort Output:  : 9482 out of 9482 Blocks done

 

已用时间:  00: 00: 00.00

SQL>

 

 

 

实例2——监视全表扫描

SELECT sid, serial#, opname,

       TO_CHAR(start_time,'HH24:MI:SS') AS start_time,

       (sofar/totalwork)*100 AS PERCENT_COMPLETE,

       ELAPSED_SECONDS

FROM v$session_longops;

 

SQL> SHOW USER

USER "LUNAR"

SQL>

SQL> select avg_space from user_tables

  2  where table_name='T';

 

 AVG_SPACE

----------

       867   说明有统计数据

 

SQL> show parameter timed_stat

 

NAME                                 TYPE        VALUE

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

timed_statistics                     boolean     TRUE

SQL> select * from t;

 

已选择3209728行。

 

已用时间:  00: 05: 38.06

 

Execution Plan

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

   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=1881 Card=1605276 By

          tes=120395700)

 

   1    0   TABLE ACCESS (FULL) OF 'T' (Cost=1881 Card=1605276 Bytes=1

          20395700)

 

 

 

 

 

Statistics

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

          0  recursive calls

          0  db block gets

     250492  consistent gets

      39165  physical reads

          0  redo size

  187470467  bytes sent via SQL*Net to client

    2354294  bytes received via SQL*Net from client

     213983  SQL*Net roundtrips to/from client

          0  sorts (memory)

          0  sorts (disk)

    3209728  rows processed

 

SQL>

 

 

 

Microsoft Windows 2000 [Version 5.00.2195]

(C) 版权所有 1985-2000 Microsoft Corp.

 

C:/>sqlplus "/@lunar as sysdba"

 

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6 15 17:57:04 2004

 

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

 

 

连接到:

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

 

SQL> set linesize 1000

SQL> column message format a70

SQL> Select sid, message

  2  From v$session_longops

  3  Where sid = 9

  4  order by start_time

  5  /

 

       SID MESSAGE

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

         9 Table Scan:  LUNAR.T: 19537 out of 19537 Blocks done

         9 SQL Execution:  : 1881 out of 1881 units done

         9 Table Scan:  LUNAR.T: 39173 out of 39173 Blocks done

         9 Sort/Merge:  : 9976 out of 9976 Blocks done

         9 Sort Output:  : 9482 out of 9482 Blocks done

         9 Table Scan:  LUNAR.T: 39173 out of 39173 Blocks done

         9 SQL Execution:  : 1881 out of 1881 units done

         9 Table Scan:  LUNAR.T: 39173 out of 39173 Blocks done

         9 SQL Execution:  : 1881 out of 1881 units done

 

已选择9行。

 

SQL> /

 

       SID    SERIAL# OPNAME                     START_TIME PERCENT_COMPLETE

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

        10         86 Import Schema Statistics   17:03:44                100

        10         86 Delete Schema Statistics   17:04:02                100

         9        167 Table Scan                 17:05:21                100

         9        167 SQL Execution              17:05:21                100

         9        167 Table Scan                 17:17:11                100

         9        167 Sort/Merge                 17:18:10                100

         9        167 Sort Output                17:18:56                100

         9        167 Table Scan                 17:28:19                100

         9        167 SQL Execution              17:28:19                100

         9        167 Table Scan                 17:28:52                100

         9        167 SQL Execution              17:28:52                100

         9        182 Table Scan                 17:59:14                100

         9        182 Table Scan                 18:22:02                100

         9        182 Table Scan                 18:24:17   2.70339264289179

 

14 rows selected

 

SQL> /

 

       SID    SERIAL# OPNAME                     START_TIME PERCENT_COMPLETE

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

        10         86 Import Schema Statistics   17:03:44                100

        10         86 Delete Schema Statistics   17:04:02                100

         9        167 Table Scan                 17:05:21                100

         9        167 SQL Execution              17:05:21                100

         9        167 Table Scan                 17:17:11                100

         9        167 Sort/Merge                 17:18:10                100

         9        167 Sort Output                17:18:56                100

         9        167 Table Scan                 17:28:19                100

         9        167 SQL Execution              17:28:19                100

         9        167 Table Scan                 17:28:52                100

         9        167 SQL Execution              17:28:52                100

         9        182 Table Scan                 17:59:14                100

         9        182 Table Scan                 18:22:02                100

         9        182 Table Scan                 18:24:17   44.0354325683506

 

14 rows selected

 

SQL> /

 

       SID    SERIAL# OPNAME                     START_TIME PERCENT_COMPLETE

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

        10         86 Import Schema Statistics   17:03:44                100

        10         86 Delete Schema Statistics   17:04:02                100

         9        167 Table Scan                 17:05:21                100

         9        167 SQL Execution              17:05:21                100

         9        167 Table Scan                 17:17:11                100

         9        167 Sort/Merge                 17:18:10                100

         9        167 Sort Output                17:18:56                100

         9        167 Table Scan                 17:28:19                100

         9        167 SQL Execution              17:28:19                100

         9        167 Table Scan                 17:28:52                100

         9        167 SQL Execution              17:28:52                100

         9        182 Table Scan                 17:59:14                100

         9        182 Table Scan                 18:22:02                100

         9        182 Table Scan                 18:24:17   70.1860975672019

 

14 rows selected

 

SQL> SELECT sid, serial#, opname,

  2     TO_CHAR(start_time,'HH24:MI:SS') AS start_time,

  3     (sofar/totalwork)*100 AS PERCENT_COMPLETE,

  4     ELAPSED_SECONDS

  5  FROM v$session_longops;

 

SID    SERIAL# OPNAME                       START_TIME PERCENT_COMPLETE ELAPSED_SECONDS

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

  10         86 Import Schema Statistics     17:03:44                100               0

  10         86 Delete Schema Statistics     17:04:02                100               1

   9        167 Table Scan                   17:05:21                100             266

   9        167 SQL Execution                17:05:21                100             266

   9        167 Table Scan                   17:17:11                100              59

   9        167 Sort/Merge                   17:18:10                100              46

   9        167 Sort Output                  17:18:56                100              82

   9        167 Table Scan                   17:28:19                100              15

   9        167 SQL Execution                17:28:19                100              15

   9        167 Table Scan                   17:28:52                100              19

   9        167 SQL Execution                17:28:52                100              19

   9        182 Table Scan                   17:59:14                100             336

   9        182 Table Scan                   18:22:02                100              18

   9        182 Table Scan                   18:24:17                100             357

 

14 rows selected

 

SQL>

 

mybaties日常开发总结

数据库:mysql ,开发工具eclipse,开发技术mybaties+spring+springmvc 1:mybaties使用mysql数据库插入数据id自动增长写法 insert in...
  • u014079773
  • u014079773
  • 2016年09月23日 19:34
  • 549

Oracle中时间日期转化函数to_date和to_char用法总结

在实际的工作中会经常会用到to_char()、to_date()函数来对时间、日期进行处理。 1、to_char()函数的用法  1.1、将时间日期按照指定的格式输出,得到的是字符串,而非date...
  • dtjiawenwang88
  • dtjiawenwang88
  • 2017年06月15日 18:04
  • 510

oracle中to_date详细用法示例(oracle日期格式转换)

oracle中to_date详细用法示例(oracle日期格式转换) 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了oracle中to_date详细用法示例,包括期和...
  • evilcry2012
  • evilcry2012
  • 2015年05月13日 17:53
  • 2381

Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理

Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理 Oracle 中的 TO_DATE 和 TO_CHAR 函数 oracle 中 TO_DATE 函数的时间格式,以 2008...
  • jaray
  • jaray
  • 2014年11月26日 14:52
  • 1156

往Oracle数据库中插入日期型数据(to_date的用法)

往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , '...
  • qq_29663071
  • qq_29663071
  • 2016年05月25日 11:30
  • 4833

Oracle的emp表的基本函数学习

--1. 找出各月倒数第3天受雇的所有员工 select * from emp where to_char(hiredate,'dd')=to_char(last_day(hiredat...
  • hongdeng123
  • hongdeng123
  • 2016年10月10日 15:45
  • 3683

redo 日志切换频率查旬

select THREAD#, trunc(first_time) "Date", to_char(first_time, 'Dy') "Day", substr(count(1), 1, 5) as...
  • ycfarmer
  • ycfarmer
  • 2014年01月13日 16:19
  • 633

Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理

Oracle 中的 TO_DATE 和 TO_CHAR 函数 oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例 格式 说明 显示值 备注 ...
  • a327736051
  • a327736051
  • 2016年05月15日 21:34
  • 1629

配置shadowsocks服务端

首先需要一台服务器,我用的是搬瓦工VPS。搬瓦工默认支持shadowsocks一键配置,但是需要CentOS6的系统。在这里我准备使用Ubuntu16.04来手动配置shadowsocks服务器。安装...
  • u011054333
  • u011054333
  • 2016年09月10日 18:24
  • 38802

TO_CHAR函数的用法

to_char()函数的字符串转换格式归纳如下:   to_char(var[,format]) 函数转换格式说明:   1. [format] '999' N 为转换格式数字9的个数。 ...
  • zyjj_99
  • zyjj_99
  • 2014年01月22日 11:23
  • 1828
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用v$session_longops监视大型操作
举报原因:
原因补充:

(最多只允许输入30个字)