Showing posts with label Useful Scripts. Show all posts
Showing posts with label Useful Scripts. Show all posts

Friday, 27 November 2015

Useful Scripts

To Check date and Time in SQL:

SQL> select to_char (sysdate,'DD-MM-YY HH24:MI') from dual;
================================
To check how many rows in a table at specific time:

SQL> select count(*) from scott.dept as of timestamp to_timestamp ('18-09-15 01:57','DD-MM-YY HH24:MI')
==========================
-- Show blocking sessions
-- Blocking sessions occur when an insert, update, delete is being issued and a commit has not been performed, this locks the row and prevents other users from making any changes to it.

SELECT blocking_session
, username
, sid
, serial#
, wait_class
, seconds_in_wait
FROM v$session
WHERE blocking_session IS NOT NULL
ORDER BY blocking_session;

=================================

-- Find the sql running behind an SID in Oracle Database

select a.sid, a.serial#, b.sql_text
   from v$session a, v$sqlarea b
    where a.sql_address=b.address
     and a.sid = &sid;

================================

-- you can display CPU for any Oracle user session with this script:

select
   ss.username,
   se.SID,
   VALUE/100 cpu_usage_seconds
from
   v$session ss,
   v$sesstat se,
   v$statname sn
where
se.STATISTIC# = sn.STATISTIC#
and
NAME like '%CPU used by this session%'
and
se.SID = ss.SID
and
ss.status='ACTIVE'
and
ss.username is not null
order by VALUE desc;
===============================

-- This script will display OS busy statistics

select
   'OS Busy Time' series, to_char(snaptime, 'yyyy-mm-dd hh24 hh24:mi') snap_time,
   round(busydelta / (busydelta + idledelta) * 100, 2) "CPU Use (%)"
from
   (select
      s.begin_interval_time snaptime,
      os1.value - lag(os1.value) over (order by s.snap_id) busydelta,
      os2.value - lag(os2.value) over (order by s.snap_id) idledelta
   from
      dba_hist_snapshot s,
      dba_hist_osstat os1,
      dba_hist_osstat os2
   where
   s.snap_id = os1.snap_id
   and
   s.snap_id = os2.snap_id
   and
   s.instance_number = os1.instance_number
   and
   s.instance_number = os2.instance_number
   and
   s.dbid = os1.dbid and s.dbid = os2.dbid
   and
   s.instance_number = (select instance_number from v$instance)
   and
   s.dbid = (select dbid from v$database)
   and
   os1.stat_name = 'BUSY_TIME'
   and
   os2.stat_name = 'IDLE_TIME')

================================