[20180102]11g的V$SORT_USAGE视图.txt

--//当出现排序使用临时表空间的情况时,查询V$SORT_USAGE那个会话使用,但是执行的sql语句不一定是问题语句,通过例子说明.

1.环境:
SCOTT@book> @ &r/ver1

PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.测试:

--//session 1:
SCOTT@book> @ &r/spid
       SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
       274          5 16928                    DEDICATED 16929       21          3 alter system kill session '274,5' immediate;

SCOTT@book> select wmsys.wm_concat(dname) c60 from dept;
C60
------------------------------------------------------------
ACCOUNTING,RESEARCH,SALES,OPERATIONS
--//注:11G定义wmsys.wm_concat的返回lob类型,使用临时表空间.

--//session 2:
SCOTT@book> select * from GV$SORT_USAGE;

INST_ID USERNAME USER  SESSION_ADDR     SESSION_NUM SQLADDR             SQLHASH SQL_ID        TABLESPACE CONTENTS  SEGTYPE     SEGFILE#    SEGBLK#    EXTENTS     BLOCKS   SEGRFNO#
------- -------- ----- ---------------- ----------- ---------------- ---------- ------------- ---------- --------- --------- ---------- ---------- ---------- ---------- ----------
      1 SCOTT    SCOTT 000000008561FD00           5 000000007D502F70 2424055223 3905nhf87s9dr TEMP       TEMPORARY LOB_DATA         201      52864          1        128          1

SCOTT@book> @ &r/sqlid 3905nhf87s9dr
SQL_ID        SQLTEXT
------------- --------------------------------------------
3905nhf87s9dr select wmsys.wm_concat(dname) c60 from dept

--//OK,现在是对的.
--//session 1:
SCOTT@book> select sysdate from dual ;
SYSDATE
-------------------
2018-01-02 14:52:56

--//session 2:
SCOTT@book> select * from GV$SORT_USAGE;
   INST_ID USERNAME USER  SESSION_ADDR     SESSION_NUM SQLADDR             SQLHASH SQL_ID        TABLESPACE CONTENTS  SEGTYPE     SEGFILE#    SEGBLK#    EXTENTS     BLOCKS   SEGRFNO#
---------- -------- ----- ---------------- ----------- ---------------- ---------- ------------- ---------- --------- --------- ---------- ---------- ---------- ---------- ----------
         1 SCOTT    SCOTT 000000008561FD00           5 000000007C67F058  409144692 f0wzs9nc663bn TEMP       TEMPORARY LOB_DATA         201      52864          1        128          1

SCOTT@book> @ &r/sql_id f0wzs9nc663bn
SQL_ID        SQLTEXT
------------- -------------------------
f0wzs9nc663bn select sysdate from dual

--//现在看到的是select sysdate from dual语句,如果这样定位有问题语句,就存在错误.
SCOTT@book> column VIEW_DEFINITION format a140
SCOTT@book> select * from v$fixed_view_definition where VIEW_name='GV$SORT_USAGE';
VIEW_NAME                      VIEW_DEFINITION
------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------
GV$SORT_USAGE                  select x$ktsso.inst_id, username, username, ktssoses, ktssosno, prev_sql_addr, prev_hash_value, prev_sql_id, ktssotsn, decode(ktssocnt, 0, '
                                                                                                                               ~~~~~~~~~~~~
                               PERMANENT', 1, 'TEMPORARY'), decode(ktssosegt, 1, 'SORT', 2, 'HASH', 3, 'DATA', 4, 'INDEX', 5, 'LOB_DATA', 6, 'LOB_INDEX' , 'UNDEFINED'), kt
                               ssofno, ktssobno, ktssoexts, ktssoblks, ktssorfno from x$ktsso, v$session where ktssoses = v$session.saddr and ktssosno = v$session.serial#

--//可以发现GV$SORT_USAGE里面取的sql_id是v$session的prev_sql_id,如果当前正在执行,判断OK,如果过后调用其它语句,看到就是错误的语句.

--//如果看看熊工的帖子:http://www.laoxiong.net/temporary_tablespace_excessive_usage_case.html
--//x$ktsso中增加了一个字段ktssosqlid,表示该临时段真正关联的SQL.可惜即使11.2.0.4版本,oracle定义的GV$SORT_USAGE视图依旧存在问题.

select ktssosqlid from x$ktsso, v$session where ktssoses = v$session.saddr 
  and ktssosno = v$session.serial# 
  and v$session.sid=274; 
KTSSOSQLID
-------------
3905nhf87s9dr

SYS@book> @ &r/sql_id 3905nhf87s9dr
SQL_ID        SQLTEXT
------------- -------------------------------------------
3905nhf87s9dr select wmsys.wm_concat(dname) c60 from dept

--//熊工还改动视图定义,总之遇到临时表空间消耗问题,注意这个问题.
    select k.inst_id "INST_ID", 
           ktssoses "SADDR", 
           sid, 
           ktssosno "SERIAL#", 
           username "USERNAME", 
           osuser "OSUSER",  
           ktssosqlid "SQL_ID", 
           ktssotsn "TABLESPACE", 
           decode(ktssocnt, 0, 'PERMANENT', 1, 'TEMPORARY') "CONTENTS", 
           --注意在12c的v$sort_usage定义中TABLESPACE和CONTENTS已经发生变化了。 
           decode(ktssosegt, 1, 'SORT', 2, 'HASH', 3, 'DATA', 4, 'INDEX',  
              5, 'LOB_DATA', 6, 'LOB_INDEX' , 'UNDEFINED') "SEGTYPE", 
           ktssofno "SEGFILE#", 
           ktssobno "SEGBLK#", 
           ktssoexts "EXTENTS", 
           ktssoblks "BLOCKS", 
           round(ktssoblks*p.value/1024/1024, 2) "SIZE_MB", 
           ktssorfno "SEGRFNO#" 
    from x$ktsso k, v$session s,  
         (select value from v$parameter where name='db_block_size') p  
    where ktssoses = s.saddr 
      and ktssosno = s.serial#;

[20180102]11g的V$SORT_USAGE视图.txt相关推荐

  1. Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步

    Oracle 11g 物化视图语法如下: create materialized view [view_name] refresh [fast|complete|force] [ on [commit ...

  2. Oracle 11g 新特性简介

    Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...

  3. Oracle 11g新特性

    Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...

  4. 【】oracle 11g 新特性

    Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...

  5. oracle 11g 新特性

    2019独角兽企业重金招聘Python工程师标准>>> Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的 ...

  6. oracle 11g 新特性详解

    Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...

  7. oracle 11g 新特性1

    racle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informati ...

  8. 20170401 11G Deprecated Attributes for LOG_ARCHIVE_DEST_n

    [20170401]11G Deprecated Attributes for LOG_ARCHIVE_DEST_n.txt --//前几天与itpub一个网友的交流,提到LOG_ARCHIVE_DE ...

  9. oracle 跨服务器推送视图_Oracle11g的v$diag_info视图获得控制文件转储文件名及位置...

    概述 今天主要介绍下Oracle的v$diag_info视图,这个视图也是11g的新特性之一.下面先介绍下11g新引入的ADR特性. 一.11g的ADR 在11g中引入了自动诊断资料档案库(Autom ...

最新文章

  1. 日常工作,怎么结合工具设计有效的时间管理?
  2. python【蓝桥杯vip练习题库】ALGO-39数组排序去重
  3. 如何在Docker容器中运行GUI程序
  4. zookeeper版本更新_zookeeper介绍及运维实践
  5. rhel5 下cacti安装日志
  6. 内存映射过程之paging_init
  7. 泰迪杯数据分析比赛2018年B题解答
  8. 中国机读目录格式(CNMARC)
  9. Oracle数据库语句大全
  10. 每年10万被动收入目标分解 | 进击
  11. 【CXY】JAVA基础 之 语法基础
  12. 微软的面试题及答案-超变态但是很经典(转)
  13. 学python能干嘛-学 Python 都用来干嘛的?
  14. win10 家庭版安装 docker for windows
  15. centos 安装 redis
  16. 聚焦新Flipboard打造自己的杂志
  17. linux vi文件出现o e r d,vim常用命令大全
  18. 设计模式前置知识类图---设计原则----man看了会沉默,woman看了会流泪系列第二篇
  19. amlogic小米_小米全面屏电视Pro搭载与Amlogic联合研发的12nm制程芯片
  20. 数据结构之——《队列》

热门文章

  1. 整理记录个人面试问题
  2. django BUG!!! === Django model coercing to Unicode: need string or buffer, XXX found
  3. IOS笔记本----读写.plist文件
  4. 谁来谈谈Google Earth的核心技术和架构?(转)
  5. C语言中函数的参数列表为空和void的区别
  6. spawn-fcgi启动的一些报错问题
  7. 2030年人类将成为混合式机器人?
  8. E - 秋实大哥与战争
  9. tar命令语法(-[cxt],-[zj],-v,-f)
  10. linux驱动学习笔记(2.4) scull 脚本scull_init