首页 > 数据库 > Oracle > 查询过去一段时间内某条sql使用的临时表空间大小
查询过去一段时间内使用的temp表空间大小需要查询V$ACTIVE_SESSION_HISTORY这个视图,SQL语句是:
select SQL_ID,
SQL_EXEC_START,
PROGRAM,
TEMP_SPACE_ALLOCATED/1024/1024/1024 from V$ACTIVE_SESSION_HISTORY where sql_id='SQL语句的sql—id' and rownum<10 order by 4;
关于v$active_session_history的解释,大家可以根据自己的需求添加列。
V$ACTIVE_SESSION_HISTORY
显示数据库中的采样会话活动。
它包含每秒执行一次的活动数据库会话的快照。
如果数据库会话在CPU上或正在等待不属于
Idle
wait类
的事件,则认为该数据库会话是活动的
。
V$EVENT_NAME
有关等待类的更多信息,
请参阅
视图。
此视图为每个样本的每个活动会话包含一行,并首先返回最新的会话样本行。
描述活动会话历史记录中的会话的大多数列都存在于
V$SESSION
视图中。
柱 | 数据类型 | 描述 |
---|---|---|
SAMPLE_ID
|
NUMBER
|
样本的ID |
SAMPLE_TIME
|
TIMESTAMP(3)
|
采集样品的时间 |
IS_AWR_SAMPLE
|
VARCHAR2(1)
|
指示此样本是否已刷新或将刷新到自动工作负载存储库(
DBA_HIST_ACTIVE_SESS_HISTORY
)(
Y
)或不是(
N
)
|
SESSION_ID
|
NUMBER
|
会话标识;
映射到
V$SESSION.SID
|
SESSION_SERIAL#
|
NUMBER
|
会话序列号(用于唯一标识会话的对象);
映射到
V$SESSION.SERIAL#
|
SESSION_TYPE
|
VARCHAR2(10)
|
会话类型:
|
FLAGS
|
NUMBER
|
保留供将来使用 |
USER_ID
|
NUMBER
|
Oracle用户标识符;
映射到
V$SESSION.USER#
|
SQL_ID
|
VARCHAR2(13)
|
在采样时会话正在执行的SQL语句的SQL标识符 |
IS_SQLID_CURRENT
|
VARCHAR2(1)
|
指示
SQL_ID
列中
的SQL标识符
是否正在执行(
Y
)或不
执行
(
N
)
|
SQL_CHILD_NUMBER
|
NUMBER
|
在采样时会话正在执行的SQL语句的子编号 |
SQL_OPCODE
|
NUMBER
|
指示SQL语句的操作阶段;
映射到
V$SESSION.COMMAND
另请参阅: 以获取有关解释此列的信息 |
SQL_OPNAME
|
VARCHAR2(64)
|
SQL命令名称 |
FORCE_MATCHING_SIGNATURE
|
NUMBER
|
CURSOR_SHARING
参数设置
为时使用的签名
FORCE
|
TOP_LEVEL_SQL_ID
|
VARCHAR2(13)
|
顶级SQL语句的SQL标识符 |
TOP_LEVEL_SQL_OPCODE
|
NUMBER
|
指示顶级SQL语句所处的操作阶段 |
SQL_PLAN_HASH_VALUE
|
NUMBER
|
游标的SQL计划的数字表示。
此信息可能不适用于所有会话样本。
V$SESSION
不包含此信息。
|
SQL_PLAN_LINE_ID
|
NUMBER
|
SQL计划行ID |
SQL_PLAN_OPERATION
|
VARCHAR2(30)
|
计划操作名称 |
SQL_PLAN_OPTIONS
|
VARCHAR2(30)
|
计划操作选项 |
SQL_EXEC_ID
|
NUMBER
|
SQL执行标识符 |
SQL_EXEC_START
|
DATE
|
SQL执行开始的时间 |
PLSQL_ENTRY_OBJECT_ID
|
NUMBER
|
堆栈中最顶层PL / SQL子程序的对象ID; 如果堆栈上没有PL / SQL子程序,则为NULL。 映射到DBA_OBJECTS.OBJECT_ID。 |
PLSQL_ENTRY_SUBPROGRAM_ID
|
NUMBER
|
堆栈上最顶层PL / SQL子程序的子程序ID。 映射到DBA_OBJECTS.DATA_OBJECT_ID。 |
PLSQL_OBJECT_ID
|
NUMBER
|
当前正在执行的PL / SQL子程序的对象ID。 映射到DBA_OBJECTS.OBJECT_ID。 |
PLSQL_SUBPROGRAM_ID
|
NUMBER
|
当前正在执行的PL / SQL对象的子程序ID; 执行SQL时为NULL。 映射到DBA_OBJECTS.DATA_OBJECT_ID。 |
QC_INSTANCE_ID
|
NUMBER
|
查询协调器实例ID。
仅当采样会话是并行查询从站时,此信息才可用。
对于所有其他会话,值为
。
|
QC_SESSION_ID
|
NUMBER
|
查询协调器会话ID。
仅当采样会话是并行查询从站时,此信息才可用。
对于所有其他会话,值为
。
|
QC_SESSION_SERIAL#
|
NUMBER
|
查询协调器会话序列号。
仅当采样会话是并行查询从站时,此信息才可用。
对于所有其他会话,值为
。
|
PX_FLAGS
|
NUMBER
|
保留供内部使用 |
EVENT
|
VARCHAR2(64)
|
如果
SESSION_STATE
=
WAITING
,则表示会话在采样时等待的事件。
如果
另请参阅: |
EVENT_ID
|
NUMBER
|
会话正在等待或会话最后等待的资源或事件的标识符。
解释类似于
EVENT
专栏。
|
EVENT#
|
NUMBER
|
会话正在等待或会话上次等待的资源或事件的编号。
解释类似于
EVENT
专栏。
|
SEQ#
|
NUMBER
|
唯一标识等待的序列号(每个等待增加) |
P1TEXT
|
VARCHAR2(64)
|
第一个附加参数的文本 |
P1
|
NUMBER
|
第一个附加参数 |
P2TEXT
|
VARCHAR2(64)
|
第二个附加参数的文本 |
P2
|
NUMBER
|
第二个附加参数 |
P3TEXT
|
VARCHAR2(64)
|
第三个附加参数的文本 |
P3
|
NUMBER
|
第三个附加参数 |
WAIT_CLASS
|
VARCHAR2(64)
|
等待会话在采样时等待的事件的类名。
解释类似于
EVENT
专栏。
地图到
V$SESSION.WAIT_CLASS
。
|
WAIT_CLASS_ID
|
NUMBER
|
等待会话在采样时等待的事件的类标识符。
解释类似于
EVENT
专栏。
地图到
V$SESSION.WAIT_CLASS_ID
。
|
WAIT_TIME
|
NUMBER
|
会话上次等待的事件的总等待时间,如果会话在CPU上进行采样时;
如果会话在抽样时等待
注意:
是否
|
SESSION_STATE
|
VARCHAR2(7)
|
会话状态:
|
TIME_WAITED
|
NUMBER
|
如果
SESSION_STATE
=
WAITING
,那么会话实际花费在等待该事件的时间(以微秒为单位)。
此列设置为采样时正在进行的等待。
如果等待事件持续超过一秒并且在多个会话样本行中等待,则等待该等待事件所花费的实际时间将填充在这些会话样本行的最后一行中。 在任何给定时间,此信息将不适用于最新的会话样本。 |
BLOCKING_SESSION_STATUS
|
VARCHAR2(11)
|
阻止会话的状态:
|
BLOCKING_SESSION
|
NUMBER
|
阻塞会话的会话标识符。
仅当阻止程序位于同一实例且会话正在等待队列或“缓冲区忙”等待时才填充。
地图到
V$SESSION.BLOCKING_SESSION
。
|
BLOCKING_SESSION_SERIAL#
|
NUMBER
|
阻止会话的序列号 |
BLOCKING_INST_ID
|
NUMBER
|
显示的阻止程序的实例编号
BLOCKING_SESSION
|
BLOCKING_HANGCHAIN_INFO
|
VARCHAR2(1)
|
指示有关的信息
BLOCKING_SESSION
是来自挂起链(
Y
)还是不来自(
N
)
|
CURRENT_OBJ#
|
NUMBER
|
会话引用的对象的对象ID。
仅当会话正在等待应用程序,群集,并发和用户I / O等待事件时,此信息才可用。
地图到
V$SESSION.ROW_WAIT_OBJ#
。
|
CURRENT_FILE#
|
NUMBER
|
包含会话引用的块的文件的文件号。
仅当会话正在等待群集,并发和用户I / O等待事件时,此信息才可用。
地图到
V$SESSION.ROW_WAIT_FILE#
。
|
CURRENT_BLOCK#
|
NUMBER
|
会话引用的块的ID。
仅当会话正在等待群集,并发和用户I / O等待事件时,此信息才可用。
地图到
V$SESSION.ROW_WAIT_BLOCK#
。
|
CURRENT_ROW#
|
NUMBER
|
会话引用的行标识符。
仅当会话正在等待群集,并发和用户I / O等待事件时,此信息才可用。
地图到
V$SESSION.ROW_WAIT_ROW#
。
|
TOP_LEVEL_CALL#
|
NUMBER
|
Oracle顶级电话号码 |
TOP_LEVEL_CALL_NAME
|
VARCHAR2(64)
|
Oracle顶级呼叫名称 |
CONSUMER_GROUP_ID
|
NUMBER
|
消费者组ID |
XID
|
RAW(8)
|
会话在采样时正在处理的事务ID。
V$SESSION
不包含此信息。
|
REMOTE_INSTANCE#
|
NUMBER
|
远程实例标识符,用于为此会话等待的块提供服务。 此信息仅在会话等待群集事件时可用。 |
TIME_MODEL
|
NUMBER
|
时间模型信息 |
IN_CONNECTION_MGMT
|
VARCHAR2(1)
|
指示会话在采样时是否正在进行连接管理(
Y
)或不是(
N
)
|
IN_PARSE
|
VARCHAR2(1)
|
指示会话在采样时是否正在解析(
Y
)或不是(
N
)
|
IN_HARD_PARSE
|
VARCHAR2(1)
|
指示在sampling(
Y
)或不是(
N
)
时会话是否难以解析
|
IN_SQL_EXECUTION
|
VARCHAR2(1)
|
指示会话是否在sampling(
Y
)或不
执行时执行SQL语句
(
N
)
|
IN_PLSQL_EXECUTION
|
VARCHAR2(1)
|
指示会话是否在sampling(
Y
)或不
执行时执行PL / SQL
(
N
)
|
IN_PLSQL_RPC
|
VARCHAR2(1)
|
指示会话是否在sampling(
Y
)或不
执行时执行入站PL / SQL RPC调用
(
N
)
|
IN_PLSQL_COMPILATION
|
VARCHAR2(1)
|
指示会话是在编译时是否正在编译PL / SQL(
Y
)或不是(
N
)
|
IN_JAVA_EXECUTION
|
VARCHAR2(1)
|
指示会话是否在sampling(
Y
)或不
执行时执行Java
(
N
)
|
IN_BIND
|
VARCHAR2(1)
|
指示会话是否在sampling(
Y
)或不
执行时执行绑定操作
(
N
)
|
IN_CURSOR_CLOSE
|
VARCHAR2(1)
|
指示会话是否在sampling(
Y
)或不是(
N
)
时关闭游标
|
IN_SEQUENCE_LOAD
|
VARCHAR2(1)
|
指示会话是按顺序加载(按顺序加载代码)(
Y
)还是不
加载
(
N
)
|
CAPTURE_OVERHEAD
|
VARCHAR2(1)
|
指示会话是否正在执行捕获代码(
Y
)或不
执行
(
N
)
|
REPLAY_OVERHEAD
|
VARCHAR2(1)
|
指示会话是否正在执行重放代码(
Y
)或不
执行
(
N
)
|
IS_CAPTURED
|
VARCHAR2(1)
|
指示是否正在捕获会话(
Y
)或不
捕获
(
N
)
|
IS_REPLAYED
|
VARCHAR2(1)
|
指示会话是否正在重播(
Y
)或不
重播
(
N
)
|
SERVICE_HASH
|
NUMBER
|
标识服务的哈希值;
映射到
V$ACTIVE_SERVICES.NAME_HASH
|
PROGRAM
|
VARCHAR2(48)
|
操作系统程序的名称 |
MODULE
|
VARCHAR2(48)
|
采样时执行模块的名称,由
DBMS_APPLICATION_INFO.SET_MODULE
过程
设置
|
ACTION
|
VARCHAR2(32)
|
采样时执行模块的名称,由
DBMS_APPLICATION_INFO.SET_ACTION
过程
设置
|
CLIENT_ID
|
VARCHAR2(64)
|
会话的客户标识符;
映射到
V$SESSION.CLIENT_IDENTIFIER
|
MACHINE
|
VARCHAR2(64)
|
客户端的操作系统机器名称 |
PORT
|
NUMBER
|
客户端端口号 |
ECID
|
VARCHAR2(64)
|
执行上下文标识符(由Application Server发送) |
DBREPLAY_FILE_ID
|
NUMBER
|
如果正在捕获或重放会话,那么
DBREPLAY_FILE_ID
是工作负载捕获或工作负载重放的文件ID;
否则它是NULL。
|
DBREPLAY_CALL_COUNTER
|
NUMBER
|
如果正在捕获或重放会话,则是正在捕获或重放
DBREPLAY_CALL_COUNTER
的用户呼叫的呼叫计数器;
否则它是NULL。
|
TM_DELTA_TIME
|
NUMBER
|
在其时间间隔(以微秒计)
TM_DELTA_CPU_TIME
和
TM_DELTA_DB_TIME
被累积
|
TM_DELTA_CPU_TIME
|
NUMBER
|
此会话在过去
TM_DELTA_TIME
几微秒内
花在CPU上的时间
|
TM_DELTA_DB_TIME
|
NUMBER
|
此会话在过去
TM_DELTA_TIME
几微秒内在
数据库调用中花费的时间
|
DELTA_TIME
|
NUMBER
|
自上次采样或创建会话以来的时间间隔(以微秒为单位),累计接下来的五个统计信息 |
DELTA_READ_IO_REQUESTS
|
NUMBER
|
此会话在过去
DELTA_TIME
几微秒内
发出的读取I / O请求数
|
DELTA_WRITE_IO_REQUESTS
|
NUMBER
|
此会话在过去
DELTA_TIME
几微秒内
发出的写入I / O请求数
|
DELTA_READ_IO_BYTES
|
NUMBER
|
此会话在过去
DELTA_TIME
几微秒内
读取的I / O字节数
|
DELTA_WRITE_IO_BYTES
|
NUMBER
|
此会话在过去
DELTA_TIME
几微秒内
写入的I / O字节数
|
DELTA_INTERCONNECT_IO_BYTES
|
NUMBER
|
在过去
DELTA_TIME
几微秒
内通过I / O互连发送的I / O字节数
|
PGA_ALLOCATED
|
NUMBER
|
此示例拍摄时此会话占用的PGA内存量(以字节为单位) |
TEMP_SPACE_ALLOCATED
|
NUMBER
|
拍摄此样本时此会话消耗的TEMP内存量(以字节为单位) |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31547066/viewspace-2286075/,如需转载,请注明出处,否则将追究法律责任。