如何查询过去一段时间内某条sql使用的临时表空间大小
小编给大家分享一下如何查询过去一段时间内某条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
样本的IDSAMPLE_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)
会话类型:FOREGROUND
BACKGROUND
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
另请参阅:“V $ SESSION”以获取有关解释此列的信息
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计划行IDSQL_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
脚1NUMBER
保留供内部使用EVENT
VARCHAR2(64)
如果SESSION_STATE
=WAITING
,则表示会话在采样时等待的事件。如果SESSION_STATE
=ON CPU
,则此列为NULL。
另请参阅:附录C,“Oracle等待事件”
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上进行采样时;如果会话在抽样时等待注意:是否WAIT_TIME
=是SESSION_STATE
在采样时找到它的有用信息,而不是WAIT_TIME
它自身的实际值。地图到V$SESSION.WAIT_TIME
。
SESSION_STATE
VARCHAR2(7)
会话状态:WAITING
ON CPU
TIME_WAITED
NUMBER
如果SESSION_STATE
=WAITING
,那么会话实际花费在等待该事件的时间(以微秒为单位)。此列设置为采样时正在进行的等待。如果等待事件持续超过一秒并且在多个会话样本行中等待,则等待该等待事件所花费的实际时间将填充在这些会话样本行的最后一行中。在任何给定时间,此信息将不适用于最新的会话样本。
BLOCKING_SESSION_STATUS
VARCHAR2(11)
阻止会话的状态:VALID
NO
HOLDER
GLOBAL
NOT IN WAIT
UNKNOWN
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
消费者组IDXID
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
脚2VARCHAR2(48)
采样时执行模块的名称,由DBMS_APPLICATION_INFO.SET_MODULE
过程设置ACTION
Footref 2VARCHAR2(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
Footref 1NUMBER
如果正在捕获或重放会话,那么DBREPLAY_FILE_ID
是工作负载捕获或工作负载重放的文件ID;否则它是NULL。DBREPLAY_CALL_COUNTER
Footref 1NUMBER
如果正在捕获或重放会话,则是正在捕获或重放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内存量(以字节为单位)看完了这篇文章,相信你对“如何查询过去一段时间内某条sql使用的临时表空间大小”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。