Tanel poder CELL_THREAD_HISTORY - ssqlid sqnapper
Tanel poder CELL_THREAD_HISTORY - ssqlid sqnapper
#####################
minmax.sql
-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
prompt Show min/max (low/high) values in column "&1" of table &2....
select min(&1), max(&1) from &2;
@minmax snapshot_time v$cell_thread_history
#####################
cth.sql
@cth sql_id 1=1 sysdate-1 sysdate
@cth sql_id,job_type,wait_state,wait_object_name sql_id='akbpwk3j38vw7' sysdate-1 sysdate
@cth sql_id,database_id,session_id,job_type,wait_state 1=1 sysdate-1/24 sysdate
@cth sql_id,database_id,session_id,job_type,wait_state 1=1 sysdate-1/24/60 sysdate
-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
------------------------------------------------------------------------------------------------------------------------
--
-- File name: cth.sql (v1.01)
--
-- Purpose: Display the "ASH for Storage Cells" info from V$CELL_THREAD_HISTORY
--
-- Author: Tanel Poder (tanel@tanelpoder.com)
--
-- Copyright: (c) http://blog.tanelpoder.com - All rights reserved.
--
-- Disclaimer: This script is provided "as is", no warranties nor guarantees are
-- made. Use at your own risk :)
--
-- Usage: @cth <grouping_columns> <sid> <from_date> <to_date>
--
-- @cth job_type,wait_state,wait_object_name,sql_id,database_id session_id=1234 sysdate-1/24 sysdate
-- @cth job_type,wait_state,wait_object_name,sql_id,database_id sql_id='5huy4dwv57qmt' sysdate-1/24 sysdate
--
-- Notes: The v$cell_thread_history is pretty limited compared to the database ASH, so don't get
-- your hopes too up :)
-- Also, the snapshot_time is the cell OS time, so if your DB and cells have clock drift,
-- you may end up matching the wrong time range from cell with the DB performance data.
--
------------------------------------------------------------------------------------------------------------------------
PROMPT Querying V$CELL_THREAD_HISTORY ("ASH" for Storage Cells) ...
SELECT * FROM (
SELECT
COUNT(*) seconds
, ROUND(COUNT(*) / LEAST((CAST(&4 AS DATE)-CAST(&3 AS DATE))*86400, 600),1) avg_threads -- V$CELL_THREAD_HISTORY doesn't usually keep more than 10 minutes of history
, &1
, MIN(snapshot_time), MAX(snapshot_time)
FROM (
SELECT
substr(cell_name,1,20) cell_name
, thread_id
, job_type
, wait_state
, wait_object_name
, sql_id
, database_id
, instance_id
, session_id
, session_serial_num
, snapshot_time
FROM
v$cell_thread_history
WHERE
snapshot_time BETWEEN &3 AND &4
AND &2
AND wait_state NOT IN ( -- "idle" thread states
'waiting_for_SKGXP_receive'
, 'waiting_for_connect'
, 'waiting_for_SKGXP_receive'
, 'looking_for_job'
)
)
GROUP BY &1
ORDER BY COUNT(*) DESC
)
WHERE ROWNUM <= 20
/
#####################
Comments
Post a Comment