(最終更新日:01年05月31日)

データベース情報 取得スクリプト


1.データベース情報

----------------------------------------------------------------------------------
-- データベース情報 取得スクリプト
-- あらかじめ、SYSTEM(DBA)でCONNECT してください。
-- spool '出力先ファイル名(フルパス)' で、結果をファイルに出力することができます。
-- spool off で、ファイル出力を止めます。
----------------------------------------------------------------------------------

SET LINESIZE  136

-- 
-- Oracle に関する情報
-- 
select * from v$instance;
select * from v$database;
select * from v$version;
select substrb(PARAMETER, 1, 30) "PARAMETER",
       substrb(VALUE, 1, 5) "VALUE"
       from v$option;

-- SGA に関する情報
-- Fixed Size           Fixed
-- Variable Size        共有プール
-- Database Buffers     DBバッファ
-- Redo Buffers         REDOログバッファ
select * from v$sga;

-- 総SGAサイズ
select sum(value) from v$sga;

-- ライブラリキャッシュのヒット率(90%以上)
select sum(pins) "要求数",
       sum(reloads) "再読込数",
       round(100*(1-(sum(reloads)/sum(pins))),3) "ヒット率"
  from v$librarycache;

-- ディクショナリキャッシュのヒット率(90%以上)
select sum(gets) "要求数",
       sum(getmisses) "再読込数",
       round(100*(1-(sum(getmisses)/sum(gets))),3) "ヒット率"
  from v$rowcache where gets > 0;

-- 共有プールの空き領域の大きさ(30%未満)
select s.name,
       s.bytes "空き領域", 
       p.value/1024 "共有プール(KB)",
       round((s.bytes/p.value)*100,3) "空き領域率"
  from v$parameter p, v$sgastat s
  where s.name = 'free memory' and p.name = 'shared_pool_size';

-- バッファキャッシュのヒット率(90%以上)
select (a.value+b.value) "論理リード",
       c.value "物理リード",
       round(((1 - (c.value / (a.value+b.value))) * 100),3) "ヒット率"
  from v$sysstat a, v$sysstat b, v$sysstat c
  where a.name = 'db block gets'
    and b.name = 'consistent gets'
    and c.name = 'physical reads';

-- ログバッファの空き待機回数
col "ログバッファサイズ" format a20
select a.Value  "ログバッファサイズ",
       b.Value  "空き待機回数"
  from v$parameter a, v$sysstat b
 where a.Name = 'log_buffer'
   and b.Name = 'redo log space requests';

-- ソート領域
-- sorts (rows)はソート行数
-- sorts (disk)は一時セグメントへのI/Oを必要とするソート回数
-- sorts (memory)は完全にメモリ内で実行されたソート回数
select a.value sorts_rows, b.value sorts_disk, c.value sorts_memory,
       round(100*b.value / (b.value+c.value), 3) "Disk_Sort_Ratio"
  from v$sysstat a, v$sysstat b, v$sysstat c
  where a.name = 'sorts (rows)'
    and b.name = 'sorts (disk)'
    and c.name = 'sorts (memory)';

--初期化パラメータ
select NUM "No.",
       substrb(NAME, 1, 60) "パラメータ名",
       substrb(VALUE, 1, 30) "値",
       decode(ISDEFAULT,'TRUE','○','×') "初期値"
       from v$parameter;

2.セッション情報

--
-- セッション情報
--
select SID, STATUS,
       substrb(USERNAME,1,8) "USERNAME",
       substrb(SCHEMANAME,1,8) "SCHEMANAME",
       OSUSER,
       substrb(MACHINE,1,8) "MACHINE",
       substrb(PROGRAM,1,32) "PROGRAM",
       SERIAL#
       from v$session
       where USERNAME is not null;

3.表領域情報

--
-- 表領域情報
--

-- 表領域
select a.TABLESPACE_NAME "表領域名",
       b.BYTES/1024 "サイズ(KB)",
       (nvl(c.BYTES,0)+to_number(e.VALUE))/1024 "使用済(KB)",
       (nvl(c.BYTES,0)+to_number(e.VALUE))/(b.BYTES)*100 "使用率",
       d.BYTES/1024 "未使用(KB)",
       a.STATUS "状態"
  from DBA_TABLESPACES a,
       (select TABLESPACE_NAME,
               sum(BYTES) "BYTES"
          from dba_data_files
         group by TABLESPACE_NAME
       ) b,
       (select TABLESPACE_NAME,
               sum(BYTES) "BYTES"
          from dba_segments
         group by TABLESPACE_NAME
       ) c,
       (select TABLESPACE_NAME,
               sum(BYTES) "BYTES"
          from dba_free_space
         group by TABLESPACE_NAME
       ) d,
       v$parameter e
 where a.TABLESPACE_NAME = b.TABLESPACE_NAME(+)
   and a.TABLESPACE_NAME = c.TABLESPACE_NAME(+)
   and a.TABLESPACE_NAME = d.TABLESPACE_NAME(+)
   and e.NAME = 'db_block_size';

-- 表領域の定義情報
select TABLESPACE_NAME, INITIAL_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE,
       MIN_EXTLEN, STATUS
  from dba_tablespaces;

-- データファイル
select substrb(a.TABLESPACE_NAME, 1, 16) "TABLESPACE_NAME",
       substrb(a.FILE_NAME, 1, 40) "FILE_NAME",
       a.FILE_ID,
       a.BYTES/1024 "サイズ(KB)",
       (b.BYTES+to_number(c.VALUE))/1024 "使用済(KB)",
       a.MAXBYTES/1024 "MAX_KB",
       a.STATUS, a.AUTOEXTENSIBLE, a.INCREMENT_BY
  from dba_data_files a,
       (select FILE_ID, sum(BYTES) "BYTES" from dba_extents group by FILE_ID) b,
       v$parameter c
 where A.FILE_ID = B.FILE_ID
   and c.NAME = 'db_block_size'
 order by TABLESPACE_NAME, FILE_ID;


-- ロールバックセグメントのサイズ
select substrb(a.SEGMENT_NAME, 1, 16) "SEGMENT_NAME",
       substrb(a.OWNER, 1, 16) "OWNER",
       substrb(a.TABLESPACE_NAME, 1, 16) "TABLESPACE_NAME",
       b.BYTES
  from dba_rollback_segs a,
       (select OWNER,
               SEGMENT_NAME,
               TABLESPACE_NAME,
               sum(BYTES) "BYTES"
          from dba_extents
         where SEGMENT_TYPE = 'ROLLBACK'
         group by OWNER, SEGMENT_NAME, TABLESPACE_NAME) b
  where (a.OWNER = b.OWNER and a.SEGMENT_NAME = b.SEGMENT_NAME and a.TABLESPACE_NAME = b.TABLESPACE_NAME)
;

4.ユーザー情報

--
-- ユーザー情報
--

-- ユーザー
select USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE, PROFILE, CREATED
  from dba_users;

-- プロファイル
select * from dba_profiles;

-- ロール
select * from dba_roles;
select * from dba_role_privs;

-- クォーター
select * from dba_ts_quotas ;

HOME INDEX PREV NEXT