home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / zkuste / delphi / nastroje / SNAPPER.ZIP / snapsql.pas < prev   
Encoding:
Pascal/Delphi Source File  |  2001-07-23  |  86.1 KB  |  1,464 lines

  1. unit snapsql;
  2.  
  3. interface
  4.  
  5. uses StdCtrls,Classes,OraScript, Db, MemDS, DBAccess, Ora,SysUtils;
  6.  
  7. const
  8.    Snap_Queries : Array[0..107] of String = (
  9. // general   0-9
  10.    'select NAME as "Database name",CREATED as "Created",LOG_MODE as "Log mode",CHECKPOINT_CHANGE# as "Checkpoint change",ARCHIVE_CHANGE# as "Archive change" from sys.v_$database',
  11.    'select BANNER as "Products" from sys.v_$version',
  12.    'select PARAMETER as "Option", VALUE as "Value" from sys.v_$option',
  13.    'select SESSIONS_MAX,SESSIONS_WARNING,SESSIONS_CURRENT,SESSIONS_HIGHWATER,USERS_MAX from sys.v_$license',
  14.    'select NAME,VALUE,ISDEFAULT,ISSES_MODIFIABLE,ISSYS_MODIFIABLE,ISMODIFIED from sys.v_$parameter order by NAME',
  15.    'select KSPPINM,nvl(KSPPSTVL,''NULL''),KSPPDESC from sys.x$ksppi x, sys.x$ksppcv y where x.INDX = y.INDX and substr(KSPPINM,1,1) = ''_'' order by KSPPINM',
  16.    'select KSPPINM,KSPPDESC,nvl(KSPPSTVL,''NULL''),KSPPSTDF from sys.x$ksppi x, sys.x$ksppcv y where x.INDX = y.INDX order by KSPPINM',
  17.    'select NAME,VALUE from sys.v_$sga',
  18.    'select FILE_NAME,d.TABLESPACE_NAME,d.BYTES,sum(nvl(e.BYTES,0)),'+
  19.       'round(sum(nvl(e.BYTES,0)) / (d.BYTES), 4) * 100,d.BYTES - nvl(sum(e.BYTES),0)'+
  20.       'from DBA_EXTENTS e,DBA_DATA_FILES d where d.FILE_ID = e.FILE_ID (+) '+
  21.       'group by FILE_NAME, d.TABLESPACE_NAME, d.FILE_ID, d.BYTES, STATUS '+
  22.       'order by d.TABLESPACE_NAME, d.FILE_ID',
  23.    'select  ''Archived Log Directory'',value from sys.v_$parameter '+
  24.       'where name = ''log_archive_dest'' UNION select ''Control Files'','+
  25.       'value from sys.v_$parameter where name = ''control_files'' UNION '+
  26.       'select ''Datafile'',name from sys.v_$datafile UNION '+
  27.       'select ''LogFile Member'',member from sys.v_$logfile',
  28. // tablespaces 10-17
  29.    'select TABLESPACE_NAME,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,'+
  30.       'PCT_INCREASE,STATUS,CONTENTS from dba_tablespaces order by TABLESPACE_NAME',
  31.    'select TABLESPACE_NAME,USERNAME,BYTES,MAX_BYTES,BLOCKS,MAX_BLOCKS from dba_ts_quotas '+
  32.       'order by TABLESPACE_NAME, USERNAME',
  33.    'select TABLESPACE_NAME,TOTAL_EXTENTS,EXTENTS_COALESCED,Round(PERCENT_EXTENTS_COALESCED,2),'+
  34.       'TOTAL_BYTES,BYTES_COALESCED,TOTAL_BLOCKS,BLOCKS_COALESCED,round(PERCENT_BLOCKS_COALESCED,2) '+
  35.       'from dba_free_space_coalesced order by TABLESPACE_NAME',
  36.    'select a.TABLESPACE_NAME,a.BYTES,a.BYTES-b.BYTES,round(((a.BYTES-b.BYTES)/a.BYTES)*100,2),'+
  37.       'b.BYTES,round((1-((a.BYTES-b.BYTES)/a.BYTES))*100,2) from sys.orasnap_ddf a, sys.orasnap_dfs b '+
  38.       'where  a.TABLESPACE_NAME=b.TABLESPACE_NAME order  by ((a.BYTES-b.BYTES)/a.BYTES) desc',
  39.    'select USERNAME,CREATED,PROFILE,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users '+
  40.       'order by DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE, USERNAME',
  41.    'select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES from dba_segments '+
  42.       'where TABLESPACE_NAME = ''SYSTEM'' and OWNER not in (''SYS'',''SYSTEM'')',
  43.    'select TABLESPACE_NAME,sum(BYTES),max(BYTES) from dba_free_space group by TABLESPACE_NAME '+
  44.       'order by TABLESPACE_NAME',
  45.    'select FILE_NAME,TABLESPACE_NAME,BYTES,STATUS,MAXBYTES,INCREMENT_BY from dba_data_files '+
  46.       'where AUTOEXTENSIBLE = ''YES'' order by TABLESPACE_NAME, FILE_NAME',
  47. //rollbacks  18-22
  48.   'select SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,BLOCK_ID,INITIAL_EXTENT,NEXT_EXTENT,'+
  49.       'MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE,STATUS,INSTANCE_NUM from dba_rollback_segs order by SEGMENT_NAME',
  50.   'select b.NAME,a.USN,GETS,WAITS,round(((GETS-WAITS)*100)/GETS,2),XACTS,WRITES '+
  51.      'from sys.v_$rollstat a, sys.v_$rollname b where a.USN = b.USN',
  52.   'select NAME,a.USN,RSSIZE,OPTSIZE,HWMSIZE,EXTENDS,WRAPS,SHRINKS,AVESHRINK,AVEACTIVE,STATUS '+
  53.       'from sys.v_$rollstat a, sys.v_$rollname b where a.USN=b.USN order by NAME',
  54.   'select a.NAME,b.XACTS,c.SID,c.SERIAL#,c.USERNAME,c.OSUSER,d.SQL_TEXT from '+
  55.       'sys.v_$rollname a, sys.v_$rollstat b, sys.v_$session c,sys.v_$sqlarea d, sys.v_$transaction e '+
  56.       'where a.USN = b.USN and b.USN = e.XIDUSN and c.TADDR = e.ADDR and c.SQL_ADDRESS = d.ADDRESS '+
  57.       'and c.SQL_HASH_VALUE = d.HASH_VALUE order by a.NAME, c.SID',
  58.   'select NAME,VALUE from sys.v_$sysstat where name in (''consistent gets'',''consistent changes'','+
  59.       '''transaction tables consistent reads - undo records applied'',''transaction tables consistent read rollbacks'','+
  60.       '''data blocks consistent reads - undo records applied'',''no work - consistent read gets'','+
  61.       '''cleanouts only - consistent read gets'',''rollbacks only - consistent read gets'',''cleanouts and rollbacks - consistent read gets'')'+
  62.       ' order by NAME',
  63. // Users 23-31
  64.   'select USERNAME,count(decode(o.TYPE#, 2,o.OBJ#,'''')),count(decode(o.TYPE#, 1,o.OBJ#,'''')),count(decode(o.TYPE#, 5,o.OBJ#,'''')),'+
  65.      'count(decode(o.TYPE#, 4,o.OBJ#,'''')),count(decode(o.TYPE#, 6,o.OBJ#,'''')),count(decode(o.TYPE#, 7,o.OBJ#,'''')),count(decode(o.TYPE#, 8,o.OBJ#,'''')),'+
  66.      'count(decode(o.TYPE#, 9,o.OBJ#,'''')),count(decode(o.TYPE#,12,o.OBJ#,'''')),count(decode(o.TYPE#,10,o.OBJ#,'''')) '+
  67.      'from sys.obj$ o, dba_users u where u.USER_ID = o.OWNER# (+) and o.TYPE# is NOT NULL group by USERNAME order by USERNAME',
  68.   'select OWNER,SEGMENT_TYPE,sum(BYTES) from dba_segments where OWNER not in (''SYS'', ''SYSTEM'') '+
  69.       ' group by OWNER, SEGMENT_TYPE',
  70.   'select OWNER,OBJECT_TYPE,OBJECT_NAME,STATUS from dba_objects where STATUS = ''INVALID''  '+
  71.      'order by OWNER, OBJECT_TYPE, OBJECT_NAME',
  72.   'select OWNER,OBJECT_NAME,OBJECT_TYPE,to_char(LAST_DDL_TIME,''MM/DD/YYYY HH24:MI:SS''),to_char(CREATED,''MM/DD/YYYY HH24:MI:SS''),'+
  73.      'STATUS from dba_objects where (SYSDATE - LAST_DDL_TIME) < 7 order by LAST_DDL_TIME DESC',
  74.   'select rp.GRANTEE,GRANTED_ROLE,rp.ADMIN_OPTION,DEFAULT_ROLE,PRIVILEGE from dba_role_privs rp, dba_sys_privs sp '+
  75.      'where rp.GRANTEE = sp.GRANTEE and rp.GRANTEE not in (''SYS'',''SYSTEM'',''DBA'') '+
  76.      'order by rp.GRANTEE, GRANTED_ROLE, PRIVILEGE',
  77.   'select s.USERNAME,s.OSUSER,s.SID,a.OWNER,a.OBJECT,a.TYPE from sys.v_$session s, sys.v_$access a '+
  78.      'where s.SID = a.SID and s.USERNAME not in (''SYS'',''SYSTEM'') and a.OWNER not in (''SYS'',''SYSTEM'') '+
  79.      'order by a.OBJECT, a.TYPE, s.USERNAME',
  80.   'select USERNAME, OSUSER,COUNT(*) from sys.v_$session where USERNAME is not NULL '+
  81.      'group by USERNAME, OSUSER order by COUNT(*) desc, USERNAME, OSUSER',
  82.   'select USERNAME,CONSISTENT_GETS,BLOCK_GETS,PHYSICAL_READS,round(((CONSISTENT_GETS+BLOCK_GETS-PHYSICAL_READS) / (CONSISTENT_GETS+BLOCK_GETS))*100,3) as "Hit Ratio" '+
  83.      'from sys.v_$session a, sys.v_$sess_io b where a.SID = b.SID and (CONSISTENT_GETS+BLOCK_GETS) > 0 '+
  84.      'and USERNAME is not null order by ((CONSISTENT_GETS+BLOCK_GETS-PHYSICAL_READS) / (CONSISTENT_GETS+BLOCK_GETS))',
  85.   'select OWNER,DATA_TYPE,COUNT(*) from all_tab_columns where OWNER not in (''SYS'',''SYSTEM'') '+
  86.      'group by OWNER, DATA_TYPE',
  87. // tables & indexes  32 - 47
  88.   'select OWNER,TABLESPACE_NAME,count(decode(SEGMENT_TYPE,''TABLE'',1)) as Tables,count(decode(SEGMENT_TYPE,''INDEX'',1)) as Indexes '+
  89.      'from dba_segments where SEGMENT_TYPE in (''TABLE'',''INDEX'') group by OWNER, TABLESPACE_NAME',
  90.   'select TABLE_OWNER,TABLE_NAME,COLUMN_NAME from dba_ind_columns where COLUMN_POSITION=1 and TABLE_OWNER not in (''SYS'',''SYSTEM'') '+
  91.      'group by TABLE_OWNER, TABLE_NAME, COLUMN_NAME having count(*) > 1',
  92.   'select OWNER,TABLE_NAME,COUNT(*) from dba_indexes where OWNER not in (''SYS'',''SYSTEM'') group by OWNER, TABLE_NAME '+
  93.      'having COUNT(*) > 5 order by COUNT(*) desc, OWNER, TABLE_NAME',
  94.   'select OWNER,TABLE_NAME from orasnap_noindex where OWNER not in (''SYS'',''SYSTEM'') '+
  95.      'order by OWNER,TABLE_NAME',
  96.   'select OWNER,TABLE_NAME from sys.orasnap_nopk where OWNER not in (''SYS'',''SYSTEM'') '+
  97.      'order by OWNER,TABLE_NAME',
  98.   'select OWNER,TABLE_NAME,nvl(CHAIN_CNT,0),nvl(NUM_ROWS,0),(CHAIN_CNT/NUM_ROWS)*100 '+
  99.     'from dba_tables where owner not in (''SYS'',''SYSTEM'') and nvl(CHAIN_CNT,0) > 0 '+
  100.     'order by (CHAIN_CNT/NUM_ROWS) desc',
  101.   'select OWNER,TABLE_NAME,CONSTRAINT_NAME,decode(CONSTRAINT_TYPE,''C'',''Check'',''P'',''Primary Key'', '+
  102.     '''U'',''Unique'',''R'',''Foreign Key'',''V'',''With Check Option''),STATUS from dba_constraints '+
  103.     'where STATUS = ''DISABLED'' order by OWNER, TABLE_NAME, CONSTRAINT_NAME',
  104.   'select c.OWNER,c.TABLE_NAME,c.CONSTRAINT_NAME,cc.COLUMN_NAME,r.TABLE_NAME,rc.COLUMN_NAME,cc.POSITION from dba_constraints c, dba_constraints r, '+
  105.     'dba_cons_columns cc, dba_cons_columns rc where c.CONSTRAINT_TYPE = ''R'' and c.OWNER not in (''SYS'',''SYSTEM'') and c.R_OWNER = r.OWNER '+
  106.     'and c.R_CONSTRAINT_NAME = r.CONSTRAINT_NAME and c.CONSTRAINT_NAME = cc.CONSTRAINT_NAME and c.OWNER = cc.OWNER and r.CONSTRAINT_NAME = rc.CONSTRAINT_NAME '+
  107.     'and r.OWNER = rc.OWNER and cc.POSITION = rc.POSITION order by c.OWNER, c.TABLE_NAME, c.CONSTRAINT_NAME, cc.POSITION',
  108.   'select acc.OWNER,acc.CONSTRAINT_NAME,acc.COLUMN_NAME,acc.POSITION,''No Index'' from dba_cons_columns acc, dba_constraints ac '+
  109.     'where ac.CONSTRAINT_NAME = acc.CONSTRAINT_NAME and ac.CONSTRAINT_TYPE = ''R'' and acc.OWNER not in (''SYS'',''SYSTEM'') '+
  110.     'and not exists (select ''TRUE'' from dba_ind_columns b where b.TABLE_OWNER = acc.OWNER and b.TABLE_NAME = acc.TABLE_NAME '+
  111.     'and b.COLUMN_NAME = acc.COLUMN_NAME and b.COLUMN_POSITION = acc.POSITION) order by acc.OWNER, acc.CONSTRAINT_NAME, acc.COLUMN_NAME, acc.POSITION ',
  112.   'select OWNER,COLUMN_NAME,TABLE_NAME ,data_type, decode(DATA_TYPE, ''NUMBER'', DATA_PRECISION, DATA_LENGTH) from dba_tab_columns '+
  113.     'where (COLUMN_NAME, OWNER) in ( select COLUMN_NAME,OWNER from dba_tab_columns group by COLUMN_NAME, OWNER '+
  114.     'having min(decode(DATA_TYPE, ''NUMBER'', DATA_PRECISION, DATA_LENGTH)) < max(decode(DATA_TYPE, ''NUMBER'', DATA_PRECISION, DATA_LENGTH)) ) '+
  115.     'and OWNER not in (''SYS'', ''SYSTEM'') order by COLUMN_NAME,DATA_TYPE',
  116.   'select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,NEXT_EXTENT from sys.orasnap_objext_warn order by OWNER, SEGMENT_NAME ',
  117.   'select OWNER,TABLESPACE_NAME,SEGMENT_NAME,SEGMENT_TYPE,BYTES,EXTENTS,MAX_EXTENTS,(EXTENTS/MAX_EXTENTS)*100 '+
  118.     'from dba_segments where SEGMENT_TYPE in (''TABLE'',''INDEX'') and EXTENTS > MAX_EXTENTS/2 order by (EXTENTS/MAX_EXTENTS) desc ',
  119.   'select OWNER,SEGMENT_TYPE,MAX_EXTENTS,count(MAX_EXTENTS) from dba_segments where OWNER not in (''SYS'',''SYSTEM'') '+
  120.     'group by OWNER, SEGMENT_TYPE, MAX_EXTENTS',
  121.   'select OWNER,sum(decode(nvl(NUM_ROWS,9999), 9999,0,1)) as Analyzed,sum(decode(nvl(NUM_ROWS,9999), 9999,1,0)) as Not_Analyzed,count(TABLE_NAME) as Total '+
  122.      'from dba_tables where OWNER not in (''SYS'', ''SYSTEM'') group by OWNER ',
  123.   'select OWNER,TABLE_NAME,to_char(LAST_ANALYZED,''MM/DD/YYYY HH24:MI:SS'') as When from dba_tab_columns where OWNER not in (''SYS'',''SYSTEM'') '+
  124.      'and LAST_ANALYZED is not null and COLUMN_ID=1 and (SYSDATE-LAST_ANALYZED) < 14 order by (SYSDATE-LAST_ANALYZED)',
  125.   'select OWNER,TABLE_NAME,CACHE from dba_tables where OWNER not in (''SYS'',''SYSTEM'') and CACHE like ''%Y'' '+
  126.      'order by OWNER, TABLE_NAME',
  127. // Partitions  48 - 52
  128.   'select OWNER,TABLE_NAME,PARTITIONING_TYPE,PARTITION_COUNT,PARTITIONING_KEY_COUNT,DEF_TABLESPACE_NAME,DEF_PCT_FREE, '+
  129.     'DEF_PCT_USED,DEF_INI_TRANS,DEF_MAX_TRANS,DEF_INITIAL_EXTENT,DEF_NEXT_EXTENT,DEF_MIN_EXTENTS,DEF_MAX_EXTENTS, '+
  130.     'DEF_PCT_INCREASE,DEF_FREELISTS,DEF_FREELIST_GROUPS,DEF_LOGGING,DEF_BUFFER_POOL '+
  131.     'from dba_part_tables order by OWNER, TABLE_NAME',
  132.   'select owner,index_name,partitioning_type,partition_count,partitioning_key_count,locality, def_tablespace_name, '+
  133.      'def_pct_free,def_ini_trans,def_max_trans,to_char(def_initial_extent,''999,999,999,999,999''),to_char(def_next_extent,''999,999,999,999,999''), '+
  134.      'def_min_extents,def_max_extents,def_pct_increase,def_freelists,def_freelist_groups,def_logging,def_buffer_pool '+
  135.      'from dba_part_indexes order by owner, index_name',
  136.   'select OWNER,NAME,OBJECT_TYPE,COLUMN_NAME,COLUMN_POSITION from dba_part_key_columns '+
  137.      'order by OWNER, NAME, OBJECT_TYPE, COLUMN_NAME, COLUMN_POSITION',
  138.   'select TABLE_OWNER,TABLE_NAME,PARTITION_NAME,HIGH_VALUE_LENGTH,PARTITION_POSITION,TABLESPACE_NAME, '+
  139.      'PCT_FREE,PCT_USED,INI_TRANS,MAX_TRANS,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENT,MAX_EXTENT,PCT_INCREASE, '+
  140.      'FREELISTS,FREELIST_GROUPS,LOGGING,NUM_ROWS,BLOCKS,EMPTY_BLOCKS,AVG_SPACE,CHAIN_CNT,AVG_ROW_LEN,SAMPLE_SIZE, '+
  141.      'LAST_ANALYZED,BUFFER_POOL from dba_tab_partitions order by TABLE_OWNER, TABLE_NAME, PARTITION_NAME',
  142.   'select INDEX_OWNER,INDEX_NAME,PARTITION_NAME,HIGH_VALUE_LENGTH,PARTITION_POSITION,STATUS,TABLESPACE_NAME, '+
  143.      'PCT_FREE,INI_TRANS,MAX_TRANS,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENT,MAX_EXTENT,PCT_INCREASE,FREELISTS, '+
  144.      'FREELIST_GROUPS,LOGGING,BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS,AVG_LEAF_BLOCKS_PER_KEY,AVG_DATA_BLOCKS_PER_KEY, '+
  145.      'CLUSTERING_FACTOR,NUM_ROWS,SAMPLE_SIZE,LAST_ANALYZED,BUFFER_POOL from dba_ind_partitions '+
  146.      'order by INDEX_OWNER, INDEX_NAME, PARTITION_NAME',
  147. // Objects 53 - 61
  148.   'select a.OWNER,TABLESPACE_NAME,a.CLUSTER_NAME,TABLE_NAME,TAB_COLUMN_NAME,CLU_COLUMN_NAME '+
  149.      'from dba_clusters a, dba_clu_columns b where a.CLUSTER_NAME = b.CLUSTER_NAME '+
  150.      'and a.OWNER not in (''SYS'', ''SYSTEM'') order by a.OWNER, TABLESPACE_NAME, a.CLUSTER_NAME, TABLE_NAME ',
  151.   'select LOG_USER,SCHEMA_USER,JOB,INTERVAL,to_char(NEXT_DATE,''MM/DD/YYYY HH24:MI:SS''),BROKEN,substr(WHAT,1,100) '+
  152.      'from dba_jobs order by LOG_USER',
  153.   'select OWNER,DB_LINK,USERNAME,HOST,to_char(CREATED,''MM/DD/YYYY HH24:MI:SS'') from dba_db_links order by OWNER,DB_LINK',
  154.   'select OWNER,NAME,TYPE from dba_source group by OWNER,NAME, TYPE order by OWNER,NAME, TYPE',
  155.   'select SEQUENCE_OWNER,SEQUENCE_NAME,MIN_VALUE,MAX_VALUE,INCREMENT_BY,CYCLE_FLAG,ORDER_FLAG,CACHE_SIZE, '+
  156.     'LAST_NUMBER from dba_sequences where SEQUENCE_OWNER not in (''SYS'',''SYSTEM'') order by SEQUENCE_OWNER,SEQUENCE_NAME ',
  157.   'select OWNER,NAME,TABLE_NAME,MASTER_VIEW,MASTER_OWNER,MASTER,MASTER_LINK,CAN_USE_LOG,UPDATABLE,LAST_REFRESH,ERROR, '+
  158.     'TYPE,NEXT,REFRESH_GROUP from dba_snapshots order by OWNER, NAME',
  159.   'select OWNER,SYNONYM_NAME,TABLE_OWNER,TABLE_NAME,DB_LINK from dba_synonyms where owner not in (''SYS'',''SYSTEM'',''PUBLIC'',''DBSNMP'') '+
  160.     'order by OWNER, SYNONYM_NAME',
  161.   'select TABLE_OWNER,TABLE_NAME,TRIGGER_NAME,TRIGGER_TYPE,TRIGGERING_EVENT,STATUS from dba_triggers '+
  162.     'order by TABLE_OWNER, TABLE_NAME, TRIGGER_NAME',
  163.   'select OWNER,OBJECT_NAME as View_name,to_char(CREATED,''MM/DD/YYYY HH24:MI:SS''), status  from dba_objects where OWNER not in (''SYS'',''SYSTEM'') '+
  164.     'and OBJECT_TYPE=''VIEW'' order by OWNER, OBJECT_NAME',
  165. // Hit & Miss Ratio's  62 - 64
  166.   'select sum(decode(NAME, ''consistent gets'',VALUE, 0)) as Consistent_Gets,sum(decode(NAME, ''db block gets'',VALUE, 0)) as DB_Blk_Gets,sum(decode(NAME, ''physical reads'',VALUE, 0))as Physical_Reads, '+
  167.      'round((sum(decode(name, ''consistent gets'',value, 0)) + sum(decode(name, ''db block gets'',value, 0)) - sum(decode(name, ''physical reads'',value, 0))) / '+
  168.      '(sum(decode(name, ''consistent gets'',value, 0)) + sum(decode(name, ''db block gets'',value, 0))) * 100,2) as Hit_Ratio from sys.v_$sysstat',
  169.   'select sum(PINS) as Executions,sum(PINHITS) as Execution_Hits,round((sum(PINHITS) / sum(PINS)) * 100,3) as Hit_Ratio '+
  170.      ',sum(RELOADS) as Misses,round((sum(PINS) / (sum(PINS) + sum(RELOADS))) * 100,3) as Reload_Hit_Ratio from sys.v_$librarycache',
  171.   'select sum(GETS) as Gets,sum(GETMISSES) as Cache_Misses,round((1 - (sum(GETMISSES) / sum(GETS))) * 100,2) as Hit_Ratio '+
  172.      'from sys.v_$rowcache',
  173. // Disk I/O, Events & Waits  65 - 70
  174.   'select STATISTIC#,NAME,CLASS,VALUE from sys.v_$sysstat',
  175.   'select EVENT,TOTAL_WAITS,TOTAL_TIMEOUTS,TIME_WAITED,round(AVERAGE_WAIT,2) from sys.v_$system_event order by TOTAL_WAITS',
  176.   'select NAME,BYTES from sys.v_$sgastat order by NAME',
  177.   'select CLASS,COUNT,TIME from sys.v_$waitstat order by CLASS',
  178.   'select NAME,VALUE from sys.v_$sysstat where NAME like ''sort%'' ',
  179.   'select NAME,PHYRDS,round((PHYRDS / PD.PHYS_READS)*100,2),PHYWRTS,round(PHYWRTS * 100 / PD.PHYS_WRTS,2),fs.PHYBLKRD+FS.PHYBLKWRT '+
  180.      'from sys.orasnap_datafileio pd, sys.v_$datafile df, sys.v_$filestat fs  where df.FILE# = fs.FILE# order by fs.PHYBLKRD+fs.PHYBLKWRT desc',
  181. // Full table scans 71 - 73
  182.   'select NAME,VALUE from sys.v_$sysstat where NAME like ''%table'' ',
  183.   'select "Username","SID","Long Scans","Short Scans","Rows Retreived" from sys.orasnap_pts ',
  184.   'select "Username","SID","Short Scans","Long Scans","Rows Retreived",round(("Rows Retreived" - ("Short Scans" * 5)) / ("Long Scans"),2) as "Long scans length" '+
  185.     'from sys.orasnap_pts where "Long Scans" != 0  order by "Long Scans" desc',
  186. // Data Dictionary 74 - 75
  187.   'select PARAMETER,GETS,GETMISSES,round(GETMISSES/GETS,2)*100 as PercCacheMisses,COUNT,USAGE from sys.v_$rowcache where GETS > 0 '+
  188.      'order by (GETMISSES/GETS)*100 desc',
  189.    'select NAME,GETS,MISSES,((GETS-MISSES)*100) / GETS,IMMEDIATE_GETS,IMMEDIATE_MISSES from sys.v_$latch '+
  190.      'where GETS != 0 or IMMEDIATE_MISSES > 0 order by ((GETS-MISSES) / GETS) desc',
  191. // Cursor & SQL processing 76 - 83
  192.   'select a.USERNAME,DISK_READS,EXECUTIONS,round(DISK_READS / decode(EXECUTIONS, 0, 1, EXECUTIONS)) as "Read/Execs",SQL_TEXT '+
  193.     'from dba_users a, sys.v_$session, sys.v_$sqlarea where PARSING_USER_ID=USER_ID and ADDRESS=SQL_ADDRESS(+) and DISK_READS > 10000 '+
  194.     'order by DISK_READS desc, EXECUTIONS desc ',
  195.   'select b.username,to_char(a.buffer_gets,''999,999,999,999,999''),to_char(a.executions,''999,999,999,999,999''),to_char(a.buffer_gets / decode(a.executions, 0, 1, a.executions),''999,999,999,999,999''), '+
  196.     'sql_text from sys.v_$sqlarea a, dba_users b where a.parsing_user_id=b.user_id and a.buffer_gets > 10000 '+
  197.     ' order by (a.buffer_gets / decode(a.executions, 0, 1, a.executions)) desc',
  198.   'select LOADS,FIRST_LOAD_TIME,SORTS,SQL_TEXT from sys.v_$sqlarea where LOADS > 50 order by EXECUTIONS desc ',
  199.   'select nvl(USERNAME,''ORACLE PROC'') as "User",s.SID,SQL_TEXT from sys.v_$open_cursor oc, sys.v_$session s where s.SADDR = oc.SADDR '+
  200.     'order by USERNAME, s.SID',
  201.   'select nvl(USERNAME,''ORACLE PROC'') as "User",s.SID,SQL_TEXT from sys.v_$open_cursor oc, sys.v_$session s where s.SQL_ADDRESS = oc.ADDRESS '+
  202.     'and s.SQL_HASH_VALUE = oc.HASH_VALUE order by USERNAME, s.SID',
  203.   'select nvl(se0.USERNAME,''ORACLE PROC'') as "User",se0.SID,SQL_TEXT from sys.v_$open_cursor oc0, sys.v_$session se0 where se0.SADDR = oc0.SADDR '+
  204.     'and se0.USERNAME != ''SYS'' and 60 < ( select   "Hit Ratio" from orasnap_user_hr where nvl(se0.USERNAME,''ORACLE PROC'') = "Username" '+
  205.     'and se0.SID = "SID") order by nvl(se0.USERNAME,''ORACLE''), se0.SID ',
  206.   'select nvl(se0.USERNAME,''ORACLE PROC'') as "User",se0.SID,SQL_TEXT from sys.v_$open_cursor oc0, sys.v_$session se0 where se0.SQL_ADDRESS = oc0.ADDRESS '+
  207.     'and se0.SQL_HASH_VALUE = oc0.HASH_VALUE and se0.username != ''SYS'' and 60 > (select "Hit Ratio" from orasnap_user_hr '+
  208.     'where nvl(se0.username,''ORACLE PROC'') = "Username" and se0.sid = "SID") order by nvl(se0.username,''ORACLE''), se0.sid ',
  209.   'select nvl(se0.USERNAME,''ORACLE PROC'') as "User",se0.SID,OWNER,OBJECT from sys.v_$access ac, sys.v_$session se0 where ac.SID = se0.SID '+
  210.     'and ac.TYPE = ''TABLE'' and 60 < (select "Hit Ratio" from orasnap_user_hr where nvl(se0.USERNAME,''ORACLE PROC'') = "Username" '+
  211.     'and se0.SID = "SID") order by USERNAME, se0.SID,OWNER',
  212. // Locks 84 - 85
  213.   'select OS_USER_NAME,PROCESS,ORACLE_USERNAME,l.SID,decode(TYPE,''MR'', ''Media Recovery'',''RT'', ''Redo Thread'',''UN'', ''User Name'', '+
  214.      '''TX'', ''Transaction'',''TM'', ''DML'',''UL'', ''PL/SQL User Lock'',''DX'', ''Distributed Xaction'',''CF'', ''Control File'',''IS'', ''Instance State'', '+
  215.      '''FS'', ''File Set'',''IR'', ''Instance Recovery'',''ST'', ''Disk Space Transaction'',''TS'', ''Temp Segment'',''IV'', ''Library Cache Invalidation'', '+
  216.      '''LS'', ''Log Start or Switch'',''RW'', ''Row Wait'',''SQ'', ''Sequence Number'',''TE'', ''Extend Table'',''TT'', ''Temp Table'', type), '+
  217.      'decode(LMODE,0, ''None'',1, ''Null'',2, ''Row-S (SS)'',3, ''Row-X (SX)'',4, ''Share'',5, ''S/Row-X (SSX)'',6, ''Exclusive'', lmode), '+
  218.      'decode(REQUEST,0, ''None'',1, ''Null'',2, ''Row-S (SS)'',3, ''Row-X (SX)'',4, ''Share'',5, ''S/Row-X (SSX)'',6, ''Exclusive'', request), '+
  219.      'decode(BLOCK,0, ''Not Blocking'',1, ''Blocking'',2, ''Global'', block),OWNER,OBJECT_NAME from sys.v_$locked_object lo, dba_objects do, sys.v_$lock l '+
  220.      'where lo.OBJECT_ID = do.OBJECT_ID AND l.SID = lo.SESSION_ID',
  221.   'select sn.USERNAME,m.SID,sn.SERIAL#,m.TYPE,decode(LMODE,0, ''None'',1, ''Null'',2, ''Row-S (SS)'',3, ''Row-X (SX)'',4, ''Share'',5, ''S/Row-X (SSX)'', '+
  222.      '6, ''Exclusive''),decode(REQUEST,0, ''None'',1, ''Null'',2, ''Row-S (SS)'',3, ''Row-X (SX)'',4, ''Share'',5, ''S/Row-X (SSX)'',6, ''Exclusive''), '+
  223.      'm.ID1,m.ID2,t.SQL_TEXT from sys.v_$session sn, sys.v_$lock m, sys.v_$sqltext t where t.ADDRESS = sn.SQL_ADDRESS '+
  224.      'and t.HASH_VALUE = sn.SQL_HASH_VALUE and ((sn.SID = m.SID and m.REQUEST != 0) or (sn.SID = m.SID and m.REQUEST = 0 '+
  225.      'and LMODE != 4 and (ID1, ID2) in (select   s.ID1,s.ID2 from sys.v_$lock S where REQUEST != 0 and s.ID1 = m.ID1 '+
  226.      'and s.ID2 = m.ID2))) order by sn.USERNAME, sn.SID, t.PIECE',
  227. // Session statistics  86 -91
  228.   'select SID,SERIAL#,USERNAME,OSUSER,SERVER,STATUS,TYPE,PROGRAM,LOGON_TIME,lpad(to_char(trunc(LAST_CALL_ET/3600)),2,0)||'':''|| '+
  229.      'lpad(to_char(trunc(LAST_CALL_ET/60)-(trunc(LAST_CALL_ET/3600)*60)),2,0)||'':''|| lpad(to_char(LAST_CALL_ET-(trunc(LAST_CALL_ET/60)*60)),2,0) as lastcall '+
  230.      'from sys.v_$session order by USERNAME, OSUSER ',
  231.   'select nvl(ses.USERNAME,''ORACLE PROC''),OSUSER,PROCESS,ses.SID,SERIAL#,PHYSICAL_READS,BLOCK_GETS,CONSISTENT_GETS,BLOCK_CHANGES,CONSISTENT_CHANGES '+
  232.      'from sys.v_$session ses, sys.v_$sess_io sio where ses.SID = sio.SID order by PHYSICAL_READS, ses.USERNAME ',
  233.   'select nvl(ss.USERNAME,''ORACLE PROC''),se.SID,VALUE from sys.v_$session ss, sys.v_$sesstat se, sys.v_$statname sn '+
  234.     'where se.STATISTIC# = sn.STATISTIC# and NAME like ''%CPU used by this session%'' and se.SID = ss.SID order by VALUE desc ',
  235.   'select ses.SID,nvl(ses.USERNAME,''ORACLE PROC''),sn.NAME,sest.VALUE from sys.v_$session ses, sys.v_$statname sn, sys.v_$sesstat sest '+
  236.     'where ses.SID = sest.SID and sn.STATISTIC# = sest.STATISTIC# and sest.VALUE is not null and sest.VALUE != 0 order by ses.USERNAME, ses.SID, sn.NAME',
  237.   'select nvl(ss.USERNAME,''ORACLE PROC''),se.SID,sn.NAME,VALUE from sys.v_$session ss, sys.v_$sesstat se, sys.v_$statname sn where se.STATISTIC# = sn.STATISTIC# '+
  238.     'and se.SID = ss.SID and se.VALUE > 0 order by sn.NAME, se.SID, se.VALUE desc',
  239.   'select USERNAME,SID,"Recursive Calls","Opened Cursors","Current Cursors" from sys.orasnap_user_cursors order by "Recursive Calls", USERNAME, SID',
  240. // Shared Pool  92 - 98
  241.   'select NAMESPACE,GETS,GETHITS,round(GETHITRATIO*100,2) as GetHitRatio,PINS,PINHITS,round(PINHITRATIO*100,2) as PinHitRatio,RELOADS,INVALIDATIONS from sys.v_$librarycache ',
  242.   'select OWNER,NAME||'' - ''||TYPE,SHARABLE_MEM from sys.v_$db_object_cache where SHARABLE_MEM > 10000 and TYPE in (''PACKAGE'',''PACKAGE BODY'',''FUNCTION'',''PROCEDURE'')'+
  243.      'order by SHARABLE_MEM desc',
  244.   'select OWNER,NAME||'' - ''||TYPE,LOADS from sys.v_$db_object_cache where LOADS > 3 and TYPE in (''PACKAGE'',''PACKAGE BODY'',''FUNCTION'',''PROCEDURE'') '+
  245.      'order by LOADS desc',
  246.   'select OWNER,NAME||'' - ''||TYPE,EXECUTIONS from sys.v_$db_object_cache where EXECUTIONS > 100 and TYPE in (''PACKAGE'',''PACKAGE BODY'',''FUNCTION'',''PROCEDURE'') '+
  247.      'order by EXECUTIONS desc',
  248.   'select OWNER,NAME,DB_LINK,NAMESPACE,TYPE,SHARABLE_MEM,LOADS,EXECUTIONS,LOCKS,PINS,KEPT from sys.v_$db_object_cache order by OWNER, NAME ',
  249.   'select NAME,VALUE from sys.v_$parameter where NAME like ''%reser%'' ',
  250.   'select OWNER,NAME,TYPE,KEPT from sys.v_$db_object_cache where KEPT = ''YES'' order by OWNER, NAME, TYPE ',
  251. // Redo Logs 99 - 102
  252.   'select a.MEMBER,b.GROUP#,b.THREAD#,b.SEQUENCE#,b.BYTES,b.MEMBERS,b.ARCHIVED,b.STATUS,b.FIRST_CHANGE#,b.FIRST_TIME '+
  253.     'from sys.v_$logfile a, sys.v_$log b where a.GROUP# = b.GROUP# order by a.MEMBER ',
  254.   'select substr(to_char(FIRST_TIME,''YYYY/MM/DD''),1,10), '+
  255.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''00'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''00'',1,0))) as "00", '+
  256.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''01'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''01'',1,0))) as "01", '+
  257.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''02'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''02'',1,0))) as "02", '+
  258.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''03'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''03'',1,0))) as "03", '+
  259.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''04'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''04'',1,0))) as "04", '+
  260.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''05'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''05'',1,0))) as "05", '+
  261.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''06'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''06'',1,0))) as "06", '+
  262.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''07'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''07'',1,0))) as "07", '+
  263.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''08'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''08'',1,0))) as "08", '+
  264.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''09'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''09'',1,0))) as "09", '+
  265.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''10'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''10'',1,0))) as "10", '+
  266.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''11'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''11'',1,0))) as "11", '+
  267.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''12'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''12'',1,0))) as "12", '+
  268.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''13'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''13'',1,0))) as "13", '+
  269.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''14'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''14'',1,0))) as "14", '+
  270.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''15'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''15'',1,0))) as "15", '+
  271.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''16'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''16'',1,0))) as "16", '+
  272.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''17'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''17'',1,0))) as "17", '+
  273.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''18'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''18'',1,0))) as "18", '+
  274.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''19'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''19'',1,0))) as "19", '+
  275.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''20'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''20'',1,0))) as "20", '+
  276.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''21'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''21'',1,0))) as "21", '+
  277.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''22'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''22'',1,0))) as "22", '+
  278.     'decode(sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''23'',1,0)),0,''-'',sum(decode(substr(to_char(FIRST_TIME,''HH24''),1,2),''23'',1,0))) as "23" '+
  279.     'from sys.v_$log_history group by substr(to_char(FIRST_TIME,''YYYY/MM/DD''),1,10) order by substr(to_char(FIRST_TIME,''YYYY/MM/DD''),1,10) desc',
  280.   'select NAME,VALUE from sys.v_$sysstat where NAME like ''redo%'' and VALUE > 0',
  281.   'select NAME,GETS,MISSES,SLEEPS,IMMEDIATE_GETS,IMMEDIATE_MISSES from sys.v_$latch where NAME in (''redo allocation'',''redo copy'') ',
  282. // Two phase commits  103 - 104
  283.   'select LOCAL_TRAN_ID,GLOBAL_TRAN_ID,STATE,MIXED,ADVICE,TRAN_COMMENT,FAIL_TIME,FORCE_TIME,RETRY_TIME,OS_USER,OS_TERMINAL,HOST,DB_USER, '+
  284.     'COMMIT# from dba_2pc_pending order by LOCAL_TRAN_ID, GLOBAL_TRAN_ID',
  285.   'select LOCAL_TRAN_ID,IN_OUT,DATABASE,DBUSER_OWNER,INTERFACE,DBID,SESS#,BRANCH from dba_2pc_neighbors order by LOCAL_TRAN_ID, IN_OUT ',
  286. // Miscellaneous 105 - 107
  287.   'select round(min(lh2.FIRST_TIME - lh1.FIRST_TIME) * 24 * 60,2) as "Shortest",round(max(lh2.FIRST_TIME - lh1.FIRST_TIME) * 24 * 60,2) as "Longest",round(avg(lh2.FIRST_TIME - lh1.FIRST_TIME) * 24 * 60,2) as "Average" '+
  288.      'from  sys.v_$loghist lh1, sys.v_$loghist lh2 where lh1.SEQUENCE# + 1 = lh2.SEQUENCE# and lh1.SEQUENCE# < ( select   max(SEQUENCE#) '+
  289.      'from  sys.v_$loghist )',
  290.   'select sum(decode(NAME,''summed dirty queue length'',VALUE)) ,sum(decode(NAME,''write requests'',VALUE)),sum(decode(NAME,''summed dirty queue length'',VALUE)) / '+
  291.      'sum(decode(NAME,''write requests'',VALUE)) from sys.v_$sysstat where NAME in (''summed dirty queue length'',''write requests'') and VALUE > 0 ',
  292.   'select sum(decode (NAME, ''dirty buffers inspected'', VALUE)),sum(decode (NAME, ''free buffer inspected'', VALUE)) from sys.v_$sysstat where NAME in ( ''dirty buffers inspected'',''free buffer inspected'') '+
  293.      'and VALUE > 0'
  294.   );
  295.  
  296.  
  297. {$I qrylabel.inc}
  298. {$I header.inc}
  299.  
  300.  
  301.  
  302. procedure Snap_SQL(SQLnr : Integer;var Query:TOraQuery; var Explain : TMemo);
  303. Procedure Create_View(Viewnr : Integer);
  304. Procedure Set_DisplayLbl (Viewnr : integer);
  305. Procedure Delete_Views;
  306. Function Create_explain(Querynr : integer) : TStringList;
  307. Function Create_explain2(Querynr : integer) : TStringList;
  308.  
  309. implementation
  310. uses mainp;
  311.  
  312. var
  313.   SQL_QueryTxt : String;
  314.  
  315. {$I explain.inc}
  316.  
  317. procedure Snap_SQL(SQLnr : Integer;var Query:TOraQuery; var Explain : TMemo);
  318.  
  319. begin
  320.   Query_no := SQLnr;
  321.   Query.Active := False;
  322.   SQL_QueryTxt := Snap_Queries[SQLnr];
  323.   Query.SQL.Clear;
  324.   Query.SQL.Add(SQL_QueryTxt);
  325.   Query.Active := True;
  326.   if not Batch then
  327.   begin
  328.     frmMain.DTLabel.Caption := DateTimeToStr(Now);
  329.     frmMain.ServerLabel.Caption := frmMain.OraSession1.Server;
  330.     frmMain.QryLabel.Caption := Qry_label[sqlnr];
  331.     Explain.Lines.Clear;
  332.     if SQLnr < 100 then
  333.       Explain.Text := Create_Explain(SQLnr).Text
  334.     else
  335.       Explain.Text := Create_Explain2(SQLnr).Text;
  336.   end;
  337.   Set_DisplayLbl(SQLnr);
  338. end;
  339.  
  340. Procedure Set_Displaylbl(Viewnr : Integer);
  341. var
  342.   i : integer;
  343. begin
  344.   case ViewNr of
  345.     3 : begin
  346.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Max. Sessions';
  347.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Sessions warning limit';
  348.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Current sessions';
  349.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Sessions highwater';
  350.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Max. named users';
  351.         end;
  352.     4 : begin
  353.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Parameter';
  354.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Value';
  355.           frmMain.DBGrid1.Fields[1].DisplayWidth := 100;
  356.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Is Default';
  357.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Session modifiable';
  358.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'System modifiable';
  359.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Is modified';
  360.         end;
  361.     5 : begin
  362.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Parameter';
  363.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Value';
  364.           frmMain.DBGrid1.Fields[1].DisplayWidth := 50;
  365.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Description';
  366.         end;
  367.     6 : begin
  368.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Parameter';
  369.           frmMain.DBGrid1.Fields[0].DisplayWidth := 35;
  370.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Description';
  371.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Value';
  372.           frmMain.DBGrid1.Fields[2].DisplayWidth := 25;
  373.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Default';
  374.         end;
  375.     8 : begin
  376.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Filename';
  377.           frmMain.DBGrid1.Fields[0].DisplayWidth := 65;
  378.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Tablespace';
  379.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Datafile size';
  380.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Bytes used';
  381.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Percent used';
  382.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Bytes free';
  383.         end;
  384.     9 : begin
  385.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Filename';
  386.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Location';
  387.         end;
  388.    10 : begin
  389.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Tablespace name';
  390.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Initial extent';
  391.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Next extent';
  392.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Min extent';
  393.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Max extent';
  394.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Percent increase';
  395.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Status';
  396.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Contents';
  397.         end;
  398.    11 : begin
  399.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Tablespace name';
  400.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Username';
  401.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Bytes';
  402.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Max bytes';
  403.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Blocks';
  404.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Max blocks';
  405.         end;
  406.     12 : begin
  407.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Tablespace name';
  408.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Total extents';
  409.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Extents coalesced';
  410.           frmMain.DBGrid1.Fields[3].DisplayLabel := '% Extents coalesced';
  411.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Total bytes';
  412.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Bytes coalesced';
  413.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Total blocks';
  414.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Blocks coalesced';
  415.           frmMain.DBGrid1.Fields[8].DisplayLabel := '% Blocks coalesced';
  416.         end;
  417.     13 : begin
  418.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Tablespace name';
  419.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Bytes allocated';
  420.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Bytes used';
  421.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Percent used';
  422.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Bytes free';
  423.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Percent free';
  424.         end;
  425.     14 : begin
  426.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  427.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Created';
  428.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Profile';
  429.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Default tablespace';
  430.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Temporary tablespace';
  431.         end;
  432.     15 : begin
  433.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  434.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Object name';
  435.           frmMain.DBGrid1.Fields[1].DisplayWidth := 45;
  436.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Object type';
  437.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Tablespace';
  438.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Size';
  439.         end;
  440.     16 : begin
  441.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Tablespace';
  442.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Total Free space';
  443.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Largest free extent';
  444.         end;
  445.     17 : begin
  446.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'File name';
  447.           frmMain.DBGrid1.Fields[0].DisplayWidth := 45;
  448.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Tablespace name';
  449.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Bytes';
  450.           frmMain.DBGrid1.Fields[2].DisplayWidth := 15;
  451.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Status';
  452.           frmMain.DBGrid1.Fields[3].DisplayWidth := 15;
  453.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Max bytes';
  454.           frmMain.DBGrid1.Fields[4].DisplayWidth := 15;
  455.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Increment by';
  456.         end;
  457.     18 : begin
  458.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Segment owner';
  459.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Owner';
  460.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Tablespace';
  461.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Segment ID';
  462.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'File ID';
  463.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Block ID';
  464.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Initial Extent';
  465.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Next Extent';
  466.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Min Extents';
  467.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Max Extents';
  468.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Pct increase';
  469.           frmMain.DBGrid1.Fields[11].DisplayLabel := 'Status';
  470.           frmMain.DBGrid1.Fields[12].DisplayLabel := 'Instance';
  471.         end;
  472.     19 : begin
  473.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Segment name';
  474.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Seg#';
  475.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Gets';
  476.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Waits';
  477.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Hit ratio';
  478.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Active transactions';
  479.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Writes';
  480.         end;
  481.     20 : begin
  482.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Segment name';
  483.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Seg#';
  484.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Size';
  485.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Optsize';
  486.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'HWM';
  487.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Extends';
  488.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Wraps';
  489.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Shrinks';
  490.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Average shrink';
  491.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Average active';
  492.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Status';
  493.         end;
  494.     21 : begin
  495.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Segment name';
  496.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Xacts';
  497.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'SID';
  498.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Serial#';
  499.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Username';
  500.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'OS User';
  501.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'SQL Text';
  502.         end;
  503.     22 : begin
  504.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Statistic name';
  505.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Value';
  506.         end;
  507.     23 : begin
  508.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'User name';
  509.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Tabs';
  510.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Inds';
  511.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Syns';
  512.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Views';
  513.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Seqs';
  514.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Procs';
  515.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Funcs';
  516.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Pkgs';
  517.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Trigs';
  518.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Deps';
  519.         end;
  520.     24 : begin
  521.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  522.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Type';
  523.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Size';
  524.         end;
  525.     25 : begin
  526.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  527.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Object type';
  528.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Object name';
  529.           frmMain.DBGrid1.Fields[2].DisplayWidth := 75;
  530.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Status';
  531.         end;
  532.     26 : begin
  533.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  534.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Object name';
  535.           frmMain.DBGrid1.Fields[1].DisplayWidth := 45;
  536.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Object type';
  537.           frmMain.DBGrid1.Fields[2].DisplayWidth := 25;
  538.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Last modified';
  539.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Created';
  540.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Status';
  541.         end;
  542.     27 : begin
  543.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Grantee';
  544.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Granted role';
  545.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Admin';
  546.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Default';
  547.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Privilege';
  548.         end;
  549.     28 : begin
  550.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'User name';
  551.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'OS User';
  552.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'SID';
  553.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Owner';
  554.           frmMain.DBGrid1.Fields[3].DisplayWidth := 25;
  555.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Object name';
  556.           frmMain.DBGrid1.Fields[4].DisplayWidth := 25;
  557.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Object type';
  558.         end;
  559.     29 : begin
  560.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'User name';
  561.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'OS User';
  562.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Count';
  563.         end;
  564.     30 : begin
  565.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  566.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Consistent gets';
  567.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'DB Blk gets';
  568.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Physical reads';
  569.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Hit ratio';
  570.         end;
  571.     31 : begin
  572.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Datatype';
  573.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Owner';
  574.           frmMain.DBGrid1.Fields[1].DisplayWidth := 35;
  575.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Total';
  576.         end;
  577.     32 : begin
  578.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  579.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Tablespace name';
  580.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Tables';
  581.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Indexes';
  582.         end;
  583.     33 : begin
  584.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  585.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  586.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Column';
  587.         end;
  588.     34 : begin
  589.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  590.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  591.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Index count';
  592.         end;
  593.     35 : begin
  594.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  595.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  596.         end;
  597.     36 : begin
  598.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  599.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  600.         end;
  601.     37 : begin
  602.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  603.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  604.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Chained rows';
  605.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Total rows';
  606.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Percent chained';
  607.         end;
  608.     38 : begin
  609.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  610.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  611.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Constraint name';
  612.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Constraint type';
  613.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Status';
  614.         end;
  615.     39 : begin
  616.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Table Owner';
  617.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  618.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Constraint name';
  619.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Column name';
  620.           frmMain.DBGrid1.Fields[3].DisplayWidth := 35;
  621.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Referenced table';
  622.           frmMain.DBGrid1.Fields[4].DisplayWidth := 35;
  623.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Referenced column';
  624.           frmMain.DBGrid1.Fields[5].DisplayWidth := 35;
  625.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Position';
  626.         end;
  627.     40 : begin
  628.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  629.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Constraint name';
  630.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Column name';
  631.           frmMain.DBGrid1.Fields[2].DisplayWidth := 35;
  632.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Position';
  633.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Problem';
  634.         end;
  635.     41 : begin
  636.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  637.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Column name';
  638.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Table name';
  639.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Datatype';
  640.           frmMain.DBGrid1.Fields[3].DisplayWidth := 15;
  641.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Length';
  642.         end;
  643.     42 : begin
  644.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  645.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Object name';
  646.           frmMain.DBGrid1.Fields[1].DisplayWidth := 35;
  647.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Object type';
  648.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Tablespace';
  649.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Next extent';
  650.         end;
  651.     43 : begin
  652.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  653.           frmMain.DBGrid1.Fields[0].DisplayWidth := 20;
  654.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Tablespace name';
  655.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Segment name';
  656.           frmMain.DBGrid1.Fields[2].DisplayWidth := 25;
  657.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Segment type';
  658.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Size';
  659.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Extents';
  660.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Max extents';
  661.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Percentage';
  662.         end;
  663.     44 : begin
  664.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  665.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Segment type';
  666.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Max extents';
  667.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Count';
  668.         end;
  669.     45 : begin
  670.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  671.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Analyzed';
  672.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Not Analyzed';
  673.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Total';
  674.         end;
  675.     46 : begin
  676.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  677.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  678.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Last Analyzed';
  679.         end;
  680.     47 : begin
  681.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  682.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  683.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Cached?';
  684.         end;
  685.     48 : begin
  686.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  687.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  688.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Partinioning type';
  689.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Partition count';
  690.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Partinioning key count';
  691.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Tablespace';
  692.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Pct free';
  693.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Pct used';
  694.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Ini trans';
  695.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Max trans';
  696.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Initial extent';
  697.           frmMain.DBGrid1.Fields[10].DisplayWidth := 5;
  698.           frmMain.DBGrid1.Fields[11].DisplayLabel := 'Next extent';
  699.           frmMain.DBGrid1.Fields[11].DisplayWidth := 5;
  700.           frmMain.DBGrid1.Fields[12].DisplayLabel := 'Min extents';
  701.           frmMain.DBGrid1.Fields[12].DisplayWidth := 5;
  702.           frmMain.DBGrid1.Fields[13].DisplayLabel := 'Max extents';
  703.           frmMain.DBGrid1.Fields[13].DisplayWidth := 5;
  704.           frmMain.DBGrid1.Fields[14].DisplayLabel := 'Pct increase';
  705.           frmMain.DBGrid1.Fields[14].DisplayWidth := 5;
  706.           frmMain.DBGrid1.Fields[15].DisplayLabel := 'Freelist';
  707.           frmMain.DBGrid1.Fields[16].DisplayLabel := 'Freelist group';
  708.           frmMain.DBGrid1.Fields[17].DisplayLabel := 'Logging';
  709.           frmMain.DBGrid1.Fields[18].DisplayLabel := 'Buffer pool';
  710.         end;
  711.     49 : begin
  712.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  713.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  714.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Partinioning type';
  715.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Partition count';
  716.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Partinioning key count';
  717.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Tablespace';
  718.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Pct free';
  719.           frmMain.DBGrid1.Fields[6].DisplayWidth := 5;
  720.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Pct used';
  721.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Ini trans';
  722.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Max trans';
  723.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Initial extent';
  724.           frmMain.DBGrid1.Fields[10].DisplayWidth := 5;
  725.           frmMain.DBGrid1.Fields[11].DisplayLabel := 'Next extent';
  726.           frmMain.DBGrid1.Fields[11].DisplayWidth := 5;
  727.           frmMain.DBGrid1.Fields[12].DisplayLabel := 'Min extents';
  728.           frmMain.DBGrid1.Fields[12].DisplayWidth := 5;
  729.           frmMain.DBGrid1.Fields[13].DisplayLabel := 'Max extents';
  730.           frmMain.DBGrid1.Fields[13].DisplayWidth := 5;
  731.           frmMain.DBGrid1.Fields[14].DisplayLabel := 'Pct increase';
  732.           frmMain.DBGrid1.Fields[14].DisplayWidth := 5;
  733.           frmMain.DBGrid1.Fields[15].DisplayLabel := 'Freelist';
  734.           frmMain.DBGrid1.Fields[16].DisplayLabel := 'Freelist group';
  735.           frmMain.DBGrid1.Fields[17].DisplayLabel := 'Logging';
  736.           frmMain.DBGrid1.Fields[18].DisplayLabel := 'Buffer pool';
  737.         end;
  738.     50 : begin
  739.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  740.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Name';
  741.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Object type';
  742.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Column name';
  743.           frmMain.DBGrid1.Fields[3].DisplayWidth := 35;
  744.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Column position';
  745.         end;
  746.     51 : begin
  747.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Table Owner';
  748.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  749.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Partinioning name';
  750.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'High value length';
  751.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Partinion position';
  752.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Tablespace name';
  753.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Pct free';
  754.           frmMain.DBGrid1.Fields[6].DisplayWidth := 5;
  755.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Pct used';
  756.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Ini trans';
  757.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Max trans';
  758.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Initial extent';
  759.           frmMain.DBGrid1.Fields[10].DisplayWidth := 5;
  760.           frmMain.DBGrid1.Fields[11].DisplayLabel := 'Next extent';
  761.           frmMain.DBGrid1.Fields[11].DisplayWidth := 5;
  762.           frmMain.DBGrid1.Fields[12].DisplayLabel := 'Min extents';
  763.           frmMain.DBGrid1.Fields[12].DisplayWidth := 5;
  764.           frmMain.DBGrid1.Fields[13].DisplayLabel := 'Max extents';
  765.           frmMain.DBGrid1.Fields[13].DisplayWidth := 5;
  766.           frmMain.DBGrid1.Fields[14].DisplayLabel := 'Pct increase';
  767.           frmMain.DBGrid1.Fields[14].DisplayWidth := 5;
  768.           frmMain.DBGrid1.Fields[15].DisplayLabel := 'Freelist';
  769.           frmMain.DBGrid1.Fields[16].DisplayLabel := 'Freelist groups';
  770.           frmMain.DBGrid1.Fields[17].DisplayLabel := 'Logging';
  771.           frmMain.DBGrid1.Fields[18].DisplayLabel := 'Num rows';
  772.           frmMain.DBGrid1.Fields[19].DisplayLabel := 'Blocks';
  773.           frmMain.DBGrid1.Fields[20].DisplayLabel := 'Empty blocks';
  774.           frmMain.DBGrid1.Fields[21].DisplayLabel := 'Avg space';
  775.           frmMain.DBGrid1.Fields[22].DisplayLabel := 'Chain count';
  776.           frmMain.DBGrid1.Fields[23].DisplayLabel := 'Avg row length';
  777.           frmMain.DBGrid1.Fields[24].DisplayLabel := 'Sample size';
  778.           frmMain.DBGrid1.Fields[25].DisplayLabel := 'Last analyzed';
  779.           frmMain.DBGrid1.Fields[26].DisplayLabel := 'Buffer pool';
  780.         end;
  781.     52 : begin
  782.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Index Owner';
  783.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Index name';
  784.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Partinioning name';
  785.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'High value length';
  786.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Partinion position';
  787.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Status';
  788.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Tablespace name';
  789.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Pct free';
  790.           frmMain.DBGrid1.Fields[7].DisplayWidth := 5;
  791.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Ini trans';
  792.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Max trans';
  793.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Initial extent';
  794.           frmMain.DBGrid1.Fields[10].DisplayWidth := 5;
  795.           frmMain.DBGrid1.Fields[11].DisplayLabel := 'Next extent';
  796.           frmMain.DBGrid1.Fields[11].DisplayWidth := 5;
  797.           frmMain.DBGrid1.Fields[12].DisplayLabel := 'Min extents';
  798.           frmMain.DBGrid1.Fields[12].DisplayWidth := 5;
  799.           frmMain.DBGrid1.Fields[13].DisplayLabel := 'Max extents';
  800.           frmMain.DBGrid1.Fields[13].DisplayWidth := 5;
  801.           frmMain.DBGrid1.Fields[14].DisplayLabel := 'Pct increase';
  802.           frmMain.DBGrid1.Fields[14].DisplayWidth := 5;
  803.           frmMain.DBGrid1.Fields[15].DisplayLabel := 'Freelist';
  804.           frmMain.DBGrid1.Fields[16].DisplayLabel := 'Freelist groups';
  805.           frmMain.DBGrid1.Fields[17].DisplayLabel := 'Logging';
  806.           frmMain.DBGrid1.Fields[18].DisplayLabel := 'Blevel';
  807.           frmMain.DBGrid1.Fields[19].DisplayLabel := 'Leaf blocks';
  808.           frmMain.DBGrid1.Fields[20].DisplayLabel := 'Distinct keys';
  809.           frmMain.DBGrid1.Fields[21].DisplayLabel := 'Avg leaf blocks per key';
  810.           frmMain.DBGrid1.Fields[22].DisplayLabel := 'Avg data blocks per key';
  811.           frmMain.DBGrid1.Fields[23].DisplayLabel := 'Clustering factor';
  812.           frmMain.DBGrid1.Fields[24].DisplayLabel := 'Num rows';
  813.           frmMain.DBGrid1.Fields[25].DisplayLabel := 'Sample size';
  814.           frmMain.DBGrid1.Fields[26].DisplayLabel := 'Last analyzed';
  815.           frmMain.DBGrid1.Fields[27].DisplayLabel := 'Buffer pool';
  816.         end;
  817.     53 : begin
  818.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  819.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Tablespace';
  820.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Cluster name';
  821.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Table name';
  822.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Table Column ';
  823.           frmMain.DBGrid1.Fields[4].DisplayWidth := 15;
  824.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Cluster Column ';
  825.         end;
  826.     54 : begin
  827.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Log user';
  828.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Schema';
  829.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Job#';
  830.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Interval';
  831.           frmMain.DBGrid1.Fields[3].DisplayWidth := 15;
  832.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Next execution';
  833.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Broken';
  834.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'What';
  835.         end;
  836.     55 : begin
  837.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  838.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'DB Link';
  839.           frmMain.DBGrid1.Fields[1].DisplayWidth := 25;
  840.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Username';
  841.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Host';
  842.           frmMain.DBGrid1.Fields[3].DisplayWidth := 25;
  843.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Created';
  844.         end;
  845.     56 : begin
  846.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  847.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Name';
  848.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Type';
  849.         end;
  850.     57 : begin
  851.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  852.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Name';
  853.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Min value';
  854.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Max value';
  855.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Increment';
  856.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Cycle';
  857.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Order';
  858.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Cache size';
  859.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Last number';
  860.         end;
  861.     58 : begin
  862.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  863.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Name';
  864.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Table name';
  865.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Master view';
  866.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Master owner';
  867.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Master';
  868.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Master link';
  869.           frmMain.DBGrid1.Fields[6].DisplayWidth := 25;
  870.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Can use log?';
  871.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Updatable';
  872.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Last refresh';
  873.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Error';
  874.           frmMain.DBGrid1.Fields[11].DisplayLabel := 'Type';
  875.           frmMain.DBGrid1.Fields[12].DisplayLabel := 'Next refresh';
  876.           frmMain.DBGrid1.Fields[12].DisplayWidth := 25;
  877.           frmMain.DBGrid1.Fields[13].DisplayLabel := 'Refresh group';
  878.         end;
  879.     59 : begin
  880.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  881.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Name';
  882.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Table owner';
  883.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Table name';
  884.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'DB Link';
  885.         end;
  886.     60 : begin
  887.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  888.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Table name';
  889.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Trigger name';
  890.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Trigger type';
  891.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Triggering event';
  892.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Status';
  893.         end;
  894.     61 : begin
  895.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  896.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'View name';
  897.           frmMain.DBGrid1.Fields[1].DisplayWidth := 35;
  898.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Created';
  899.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Status';
  900.         end;
  901.     62 : begin
  902.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Consistent gets';
  903.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'DB Blk gets';
  904.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Physical reads';
  905.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Hit ratio';
  906.         end;
  907.     63 : begin
  908.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Executions';
  909.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Execution hits';
  910.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Execution Hit ratio';
  911.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Misses';
  912.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Reload Hit ratio';
  913.         end;
  914.     64 : begin
  915.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Gets';
  916.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Cache misses';
  917.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Hit ratio';
  918.         end;
  919.     65 : begin
  920.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Stat#';
  921.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Name';
  922.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Class';
  923.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Value';
  924.         end;
  925.     66 : begin
  926.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Event name';
  927.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Total waits';
  928.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Total timeouts';
  929.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Time waited';
  930.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Average wait';
  931.         end;
  932.     67 : begin
  933.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Statistic name';
  934.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Value';
  935.         end;
  936.     68 : begin
  937.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Class';
  938.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Count';
  939.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Time';
  940.         end;
  941.     69 : begin
  942.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Sort parameter';
  943.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Value';
  944.         end;
  945.     70 : begin
  946.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'File name';
  947.           frmMain.DBGrid1.Fields[0].DisplayWidth := 55;
  948.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Physical reads';
  949.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Reads %';
  950.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Physical writes';
  951.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Writes %';
  952.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Total block I/O''s';
  953.         end;
  954.     71 : begin
  955.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Statistic name';
  956.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Bytes';
  957.         end;
  958. // 72 & 73 formatted in the query
  959.     74 : begin
  960.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Parameter';
  961.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Gets';
  962.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Get misses';
  963.           frmMain.DBGrid1.Fields[3].DisplayLabel := '% Cache misses';
  964.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Count';
  965.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Usage';
  966.         end;
  967.     75 : begin
  968.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Latch name';
  969.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Gets';
  970.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Misses';
  971.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Gets/Misses %';
  972.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Immediate gets';
  973.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Immediate misses';
  974.         end;
  975.     76 : begin
  976.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  977.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Disk reads';
  978.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Executions';
  979.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Reads/Execs';
  980.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'SQL Text';
  981.         end;
  982.     77 : begin
  983.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  984.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Buffer gets';
  985.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Executions';
  986.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Gets/Execs';
  987.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'SQL Text';
  988.         end;
  989.     78 : begin
  990.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Loads';
  991.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'First load time';
  992.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Sorts';
  993.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'SQL Text';
  994.         end;
  995.     79,80,81,82 : begin
  996.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  997.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'SID';
  998.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'SQL Text';
  999.         end;
  1000.     83 : begin
  1001.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  1002.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'SID';
  1003.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Object owner';
  1004.           frmMain.DBGrid1.Fields[2].DisplayWidth := 30;
  1005.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Object';
  1006.           frmMain.DBGrid1.Fields[3].DisplayWidth := 30;
  1007.         end;
  1008. //locks
  1009.     84 : begin
  1010.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'OS User';
  1011.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'OS PID';
  1012.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Oracle user';
  1013.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Oracle ID';
  1014.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Lock type';
  1015.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Lock held';
  1016.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Lock requested';
  1017.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Status';
  1018.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Object owner';
  1019.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Object name';
  1020.         end;
  1021.     85 : begin
  1022.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Oracle User';
  1023.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'SID';
  1024.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Serial#';
  1025.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Type';
  1026.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Held';
  1027.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Requested';
  1028.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'ID 1';
  1029.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'ID 2';
  1030.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'SQL';
  1031.         end;
  1032.     86 : begin
  1033.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'SID';
  1034.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Serial#';
  1035.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Username';
  1036.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'OS User';
  1037.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Server';
  1038.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Status';
  1039.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Type';
  1040.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Program';
  1041.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Logon';
  1042.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Last call';
  1043.         end;
  1044.     87 : begin
  1045.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  1046.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'OS User';
  1047.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'PID';
  1048.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'SID';
  1049.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Serial#';
  1050.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Physical reads';
  1051.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Block gets';
  1052.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Consistent gets';
  1053.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Block changes';
  1054.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Consistent changes';
  1055.         end;
  1056.     88 : begin
  1057.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  1058.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'SID';
  1059.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'CPU Usage';
  1060.         end;
  1061.     89 : begin
  1062.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'SID';
  1063.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Username';
  1064.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Statistic';
  1065.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Value';
  1066.         end;
  1067.     90 : begin
  1068.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Username';
  1069.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'SID';
  1070.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Statistic';
  1071.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Usage';
  1072.         end;
  1073.     92 : begin
  1074.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Namespace';
  1075.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Gets';
  1076.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Gethits';
  1077.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Gethit ratio';
  1078.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Pins';
  1079.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Pinhits';
  1080.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Pinhit ratio';
  1081.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Reloads';
  1082.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Invalidations';
  1083.         end;
  1084.     93 : begin
  1085.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  1086.           frmMain.DBGrid1.Fields[0].DisplayWidth := 35;
  1087.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Object';
  1088.           frmMain.DBGrid1.Fields[1].DisplayWidth := 35;
  1089.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Sharable memory';
  1090.         end;
  1091.     94 : begin
  1092.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  1093.           frmMain.DBGrid1.Fields[0].DisplayWidth := 35;
  1094.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Object';
  1095.           frmMain.DBGrid1.Fields[1].DisplayWidth := 35;
  1096.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Loads';
  1097.         end;
  1098.     95 : begin
  1099.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  1100.           frmMain.DBGrid1.Fields[0].DisplayWidth := 35;
  1101.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Object';
  1102.           frmMain.DBGrid1.Fields[1].DisplayWidth := 35;
  1103.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Executions';
  1104.         end;
  1105.     96 : begin
  1106.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Owner';
  1107.           frmMain.DBGrid1.Fields[0].DisplayWidth := 35;
  1108.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Name';
  1109.           frmMain.DBGrid1.Fields[1].DisplayWidth := 35;
  1110.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'DB Link';
  1111.           frmMain.DBGrid1.Fields[2].DisplayWidth := 15;
  1112.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Namespace';
  1113.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Type';
  1114.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Sharable memory';
  1115.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Loads';
  1116.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Executions';
  1117.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Locks';
  1118.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'Pins';
  1119.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'Kept';
  1120.         end;
  1121.     97 : begin
  1122.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Parameter';
  1123.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Value';
  1124.         end;
  1125.     98 : begin
  1126.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Object owner';
  1127.           frmMain.DBGrid1.Fields[0].DisplayWidth := 35;
  1128.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Object name';
  1129.           frmMain.DBGrid1.Fields[1].DisplayWidth := 35;
  1130.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Object type';
  1131.           frmMain.DBGrid1.Fields[2].DisplayWidth := 15;
  1132.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Kept status';
  1133.         end;
  1134. // Redo logs        
  1135.     99 : begin
  1136.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Member';
  1137.           frmMain.DBGrid1.Fields[0].DisplayWidth := 35;
  1138.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Group#';
  1139.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Thread#';
  1140.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Sequence#';
  1141.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Bytes';
  1142.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Members';
  1143.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Archived';
  1144.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Status';
  1145.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'First change#';
  1146.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'First time';
  1147.         end;
  1148.   100 : begin
  1149.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Day';
  1150.           for i := 0 to 23 do
  1151.           begin
  1152.             frmMain.DBGrid1.Fields[i+1].DisplayLabel := IntToStr(i);
  1153.             frmMain.DBGrid1.Fields[i+1].DisplayWidth := 4;
  1154.           end;
  1155.         end;
  1156.   101 : begin
  1157.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Parameter';
  1158.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Value';
  1159.         end;
  1160.   102 : begin
  1161.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Redo latch name';
  1162.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Gets';
  1163.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Misses';
  1164.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Sleeps';
  1165.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Immediate gets';
  1166.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Immediate misses';
  1167.         end;
  1168.   103 : begin
  1169.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Local tran id';
  1170.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Global tran id';
  1171.           frmMain.DBGrid1.Fields[1].DisplayWidth := 15;
  1172.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'State';
  1173.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'Mixed';
  1174.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Advice';
  1175.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'Tran comment';
  1176.           frmMain.DBGrid1.Fields[5].DisplayWidth := 15;
  1177.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Fail time';
  1178.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Force time';
  1179.           frmMain.DBGrid1.Fields[8].DisplayLabel := 'Retry time';
  1180.           frmMain.DBGrid1.Fields[9].DisplayLabel := 'OS User';
  1181.           frmMain.DBGrid1.Fields[9].DisplayWidth := 15;
  1182.           frmMain.DBGrid1.Fields[10].DisplayLabel := 'OS Terminal';
  1183.           frmMain.DBGrid1.Fields[10].DisplayWidth := 15;
  1184.           frmMain.DBGrid1.Fields[11].DisplayLabel := 'Host';
  1185.           frmMain.DBGrid1.Fields[12].DisplayLabel := 'DB User';
  1186.           frmMain.DBGrid1.Fields[13].DisplayLabel := 'Commit#';
  1187.         end;
  1188.   104 : begin
  1189.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Local tran id';
  1190.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'In/out';
  1191.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Database';
  1192.           frmMain.DBGrid1.Fields[2].DisplayWidth := 35;
  1193.           frmMain.DBGrid1.Fields[3].DisplayLabel := 'DB User Owner';
  1194.           frmMain.DBGrid1.Fields[4].DisplayLabel := 'Interface';
  1195.           frmMain.DBGrid1.Fields[5].DisplayLabel := 'DB ID';
  1196.           frmMain.DBGrid1.Fields[6].DisplayLabel := 'Sess#';
  1197.           frmMain.DBGrid1.Fields[7].DisplayLabel := 'Branch';
  1198.           frmMain.DBGrid1.Fields[7].DisplayWidth := 35;
  1199.         end;
  1200.   106 : begin
  1201.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Summed dirty queue length';
  1202.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Write requests';
  1203.           frmMain.DBGrid1.Fields[2].DisplayLabel := 'Write request queue length';
  1204.         end;
  1205.   107 : begin
  1206.           frmMain.DBGrid1.Fields[0].DisplayLabel := 'Dirty buffers inspected';
  1207.           frmMain.DBGrid1.Fields[1].DisplayLabel := 'Free buffers inspected';
  1208.         end;
  1209.   end;
  1210. end;
  1211.  
  1212. Procedure Delete_Views;
  1213. begin
  1214.   with frmMain.Orascript1 do
  1215.   begin
  1216.     SQL.Clear;
  1217.     SQL.Add('drop view ORASNAP_DDF;');
  1218.     SQL.Add('drop view ORASNAP_DFS;');
  1219.     SQL.Add('drop view ORASNAP_NOINDEX;');
  1220.     SQL.Add('drop view ORASNAP_NOPK;');
  1221.     SQL.Add('drop view ORASNAP_OBJEXT_WARN;');
  1222.     SQL.Add('drop view ORASNAP_DATAFILEIO;');
  1223.     SQL.Add('drop view ORASNAP_PTS;');
  1224.     SQL.Add('drop view ORASNAP_USER_HR;');
  1225.     SQL.Add('drop view ORASNAP_USER_CURSORS;');
  1226.     Execute;
  1227.     SQL.Clear;
  1228.   end;
  1229. end;
  1230.  
  1231.  
  1232. Procedure Create_View(Viewnr : Integer);
  1233. begin
  1234.  case Viewnr of
  1235.    1 : begin
  1236.          with frmMain.OraScript1 do
  1237.          begin
  1238.            SQL.Clear;
  1239.            SQL.Add('create or replace view ORASNAP_DDF');
  1240.            SQL.Add('as');
  1241.            SQL.Add('select TABLESPACE_NAME,');
  1242.            SQL.Add('sum(BYTES) BYTES');
  1243.            SQL.Add('from dba_data_files');
  1244.            SQL.Add('group by TABLESPACE_NAME');
  1245.            Execute;
  1246.            SQL.Clear;
  1247.          end;  
  1248.        end;
  1249.    2 : begin
  1250.          with frmMain.OraScript1 do
  1251.          begin
  1252.            SQL.Clear;
  1253.            SQL.Add('create or replace view ORASNAP_DFS');
  1254.            SQL.Add('as');
  1255.            SQL.Add('select TABLESPACE_NAME,');
  1256.            SQL.Add('sum(BYTES) BYTES');
  1257.            SQL.Add('from dba_free_space');
  1258.            SQL.Add('group by TABLESPACE_NAME');
  1259.            Execute;
  1260.            SQL.Clear;
  1261.          end;
  1262.        end;
  1263.    3 : begin
  1264.          with frmMain.Orascript1 do
  1265.          begin
  1266.            SQL.Clear;
  1267.            SQL.Add('create or replace view ORASNAP_NOINDEX');
  1268.            SQL.Add('as');
  1269.            SQL.Add('select OWNER,');
  1270.            SQL.Add('TABLE_NAME');
  1271.            SQL.Add('from dba_tables');
  1272.            SQL.Add('minus');
  1273.            SQL.Add('select TABLE_OWNER,');
  1274.            SQL.Add('TABLE_NAME');
  1275.            SQL.Add('from dba_indexes');
  1276.            Execute;
  1277.            SQL.Clear;
  1278.          end;
  1279.        end;
  1280.    4 : begin
  1281.          with frmMain.Orascript1 do
  1282.          begin
  1283.            SQL.Clear;
  1284.            SQL.Add('create or replace view SYS.ORASNAP_NOPK');
  1285.            SQL.Add('as');
  1286.            SQL.Add('select OWNER,');
  1287.            SQL.Add('TABLE_NAME');
  1288.            SQL.Add('from dba_tables');
  1289.            SQL.Add('minus');
  1290.            SQL.Add('select OWNER,');
  1291.            SQL.Add('TABLE_NAME');
  1292.            SQL.Add('from dba_constraints');
  1293.            SQL.Add('where CONSTRAINT_TYPE = ''P''');
  1294.            Execute;
  1295.            SQL.Clear;
  1296.          end;
  1297.        end;
  1298.    5 : begin
  1299.          with frmMain.Orascript1 do
  1300.          begin
  1301.            SQL.Clear;
  1302.            SQL.Add('create or replace view SYS.ORASNAP_OBJEXT_WARN');
  1303.            SQL.Add('as');
  1304.            SQL.Add('select seg.OWNER,');
  1305.            SQL.Add('seg.SEGMENT_NAME,');
  1306.            SQL.Add('seg.SEGMENT_TYPE,');
  1307.            SQL.Add('seg.TABLESPACE_NAME,');
  1308.            SQL.Add('t.NEXT_EXTENT');
  1309.            SQL.Add('from dba_segments seg, dba_tables t');
  1310.            SQL.Add('where (seg.SEGMENT_TYPE = ''TABLE''');
  1311.            SQL.Add('and seg.SEGMENT_NAME = t.TABLE_NAME');
  1312.            SQL.Add('and seg.owner = t.OWNER');
  1313.            SQL.Add('and NOT EXISTS (');
  1314.            SQL.Add('select TABLESPACE_NAME');
  1315.            SQL.Add('from dba_free_space free');
  1316.            SQL.Add('where free.TABLESPACE_NAME = t.TABLESPACE_NAME');
  1317.            SQL.Add('and BYTES >= t.NEXT_EXTENT))');
  1318.            SQL.Add('union');
  1319.            SQL.Add('select seg.OWNER,');
  1320.            SQL.Add('seg.SEGMENT_NAME,');
  1321.            SQL.Add('seg.SEGMENT_TYPE,');
  1322.            SQL.Add('seg.TABLESPACE_NAME,');
  1323.            SQL.Add('c.NEXT_EXTENT');
  1324.            SQL.Add('from dba_segments seg, dba_clusters c');
  1325.            SQL.Add('where (seg.SEGMENT_TYPE = ''CLUSTER''');
  1326.            SQL.Add('and seg.SEGMENT_NAME = c.CLUSTER_NAME');
  1327.            SQL.Add('and seg.OWNER = c.OWNER');
  1328.            SQL.Add('and NOT EXISTS (');
  1329.            SQL.Add('select TABLESPACE_NAME');
  1330.            SQL.Add('from dba_free_space free');
  1331.            SQL.Add('where free.TABLESPACE_NAME = c.TABLESPACE_NAME');
  1332.            SQL.Add('and BYTES >= c.NEXT_EXTENT))');
  1333.            SQL.Add('union');
  1334.            SQL.Add('select seg.OWNER,');
  1335.            SQL.Add('seg.SEGMENT_NAME,');
  1336.            SQL.Add('seg.SEGMENT_TYPE,');
  1337.            SQL.Add('seg.TABLESPACE_NAME,');
  1338.            SQL.Add('i.NEXT_EXTENT');
  1339.            SQL.Add('from dba_segments seg, dba_indexes  i');
  1340.            SQL.Add('where (seg.SEGMENT_TYPE = ''INDEX''');
  1341.            SQL.Add('and seg.SEGMENT_NAME = i.INDEX_NAME');
  1342.            SQL.Add('and seg.OWNER = i.OWNER');
  1343.            SQL.Add('and NOT EXISTS (');
  1344.            SQL.Add('select TABLESPACE_NAME');
  1345.            SQL.Add('from dba_free_space free');
  1346.            SQL.Add('where free.TABLESPACE_NAME = i.TABLESPACE_NAME');
  1347.            SQL.Add('and BYTES >= i.NEXT_EXTENT))');
  1348.            SQL.Add('union');
  1349.            SQL.Add('select seg.OWNER,');
  1350.            SQL.Add('seg.SEGMENT_NAME,');
  1351.            SQL.Add('seg.SEGMENT_TYPE,');
  1352.            SQL.Add('seg.TABLESPACE_NAME,');
  1353.            SQL.Add('r.NEXT_EXTENT');
  1354.            SQL.Add('from dba_segments seg, dba_rollback_segs r');
  1355.            SQL.Add('where (seg.SEGMENT_TYPE = ''ROLLBACK''');
  1356.            SQL.Add('and seg.SEGMENT_NAME = r.SEGMENT_NAME');
  1357.            SQL.Add('and seg.OWNER = r.OWNER');
  1358.            SQL.Add('and NOT EXISTS (');
  1359.            SQL.Add('select TABLESPACE_NAME');
  1360.            SQL.Add('from dba_free_space free');
  1361.            SQL.Add('where free.TABLESPACE_NAME = r.TABLESPACE_NAME');
  1362.            SQL.Add('and BYTES >= r.NEXT_EXTENT))');
  1363.            Execute;
  1364.            SQL.Clear;
  1365.          end;
  1366.        end;
  1367.    6 : begin
  1368.          with frmMain.Orascript1 do
  1369.          begin
  1370.            SQL.Clear;
  1371.            SQL.Add('create or replace view SYS.ORASNAP_DATAFILEIO');
  1372.            SQL.Add('as');
  1373.            SQL.Add('select sum(PHYRDS)  PHYS_READS,');
  1374.            SQL.Add('sum(PHYWRTS) PHYS_WRTS');
  1375.            SQL.Add('from sys.v_$filestat');
  1376.            Execute;
  1377.            SQL.Clear;
  1378.          end;
  1379.        end;
  1380.    7 : begin
  1381.          with frmMain.Orascript1 do
  1382.          begin
  1383.            SQL.Clear;
  1384.            SQL.Add('create or replace view sys.orasnap_pts');
  1385.            SQL.Add('as');
  1386.            SQL.Add('select ss.USERNAME "Username",');
  1387.            SQL.Add('se.SID "SID",');
  1388.            SQL.Add('sum(decode(NAME,''table scans (short tables)'',value)) "Short Scans",');
  1389.            SQL.Add('sum(decode(NAME,''table scans (long tables)'', value)) "Long Scans",');
  1390.            SQL.Add('sum(decode(NAME,''table scan rows gotten'',value)) "Rows Retreived"');
  1391.            SQL.Add('from sys.v_$session ss,');
  1392.            SQL.Add('sys.v_$sesstat se,');
  1393.            SQL.Add('sys.v_$statname sn');
  1394.            SQL.Add('where se.statistic# = sn.statistic#');
  1395.            SQL.Add('and (NAME  like ''%table scans (short tables)%''');
  1396.            SQL.Add('or NAME  like ''%table scans (long tables)%''');
  1397.            SQL.Add('or NAME  like ''%table scan rows gotten%'')');
  1398.            SQL.Add('and se.SID = ss.SID');
  1399.            SQL.Add('and ss.USERNAME is not null');
  1400.            SQL.Add('and ss.AUDSID != userenv(''SESSIONID'')');
  1401.            SQL.Add('group by ss.USERNAME, se.SID');
  1402.            Execute;
  1403.            SQL.Clear;
  1404.          end;
  1405.        end;
  1406.    8 : begin
  1407.          with frmMain.Orascript1 do
  1408.          begin
  1409.            SQL.Clear;
  1410.            SQL.Add('create or replace view ORASNAP_USER_HR ');
  1411.            SQL.Add('as ');
  1412.            SQL.Add('select nvl(se.USERNAME,''ORACLE PROC'') "Username", ');
  1413.            SQL.Add('se.SID "SID", ');
  1414.            SQL.Add('sum(decode(NAME, ''consistent gets'',value, 0))  "Consistent Gets", ');
  1415.            SQL.Add('sum(decode(NAME, ''db block gets'',value, 0))  "DB Block Gets", ');
  1416.            SQL.Add('sum(decode(NAME, ''physical reads'',value, 0))  "Physical Reads", ');
  1417.            SQL.Add('(sum(decode(NAME, ''consistent gets'',value, 0)) +');
  1418.            SQL.Add('sum(decode(NAME, ''db block gets'',value, 0)) - ');
  1419.            SQL.Add('sum(decode(NAME, ''physical reads'',value, 0)))/ ');
  1420.            SQL.Add('(sum(decode(NAME, ''consistent gets'',value, 0)) + ');
  1421.            SQL.Add('sum(decode(NAME, ''db block gets'',value, 0))) * 100 "Hit Ratio" ');
  1422.            SQL.Add('from sys.v_$sesstat ss, sys.v_$statname sn, sys.v_$session se ');
  1423.            SQL.Add('where ss.SID = se.SID ');
  1424.            SQL.Add('and sn.STATISTIC# = ss.STATISTIC# ');
  1425.            SQL.Add('and VALUE != 0 ');
  1426.            SQL.Add('and sn.NAME in (''db block gets'', ''consistent gets'', ''physical reads'') ');
  1427.            SQL.Add('group by se.USERNAME, se.SID ');
  1428.            Execute;
  1429.            SQL.Clear;
  1430.          end;
  1431.        end;
  1432.    9 : begin
  1433.          with frmMain.Orascript1 do
  1434.          begin
  1435.            SQL.Clear;
  1436.            SQL.Add('create or replace view sys.orasnap_user_cursors');
  1437.            SQL.Add('as');
  1438.            SQL.Add('select nvl(ss.USERNAME,''ORACLE PROC'') Username,');
  1439.            SQL.Add('se.SID SID,');
  1440.            SQL.Add('sum(decode(NAME,''recursive calls'',value)) "Recursive Calls",');
  1441.            SQL.Add('sum(decode(NAME,''opened cursors cumulative'',value)) "Opened Cursors",');
  1442.            SQL.Add('sum(decode(NAME,''opened cursors current'',value)) "Current Cursors"');
  1443.            SQL.Add('from sys.v_$session ss, sys.v_$sesstat se, sys.v_$statname sn');
  1444.            SQL.Add('where se.statistic# = sn.statistic#');
  1445.            SQL.Add('and (   NAME  like ''%opened cursors current%''');
  1446.            SQL.Add('or NAME  like ''%recursive calls%''');
  1447.            SQL.Add('or NAME  like ''%opened cursors cumulative%'')');
  1448.            SQL.Add('and se.SID = ss.SID');
  1449.            SQL.Add('and ss.USERNAME is not null');
  1450.            SQL.Add('and ss.AUDSID != userenv(''SESSIONID'')');
  1451.            SQL.Add('group by ss.USERNAME, se.SID');
  1452.            Execute;
  1453.            SQL.Clear;
  1454.          end;
  1455.        end;
  1456.   end;
  1457. end;
  1458.  
  1459.  
  1460.  
  1461.  
  1462. end.
  1463.  
  1464.