Yes, you are right. However I said it because of some
bugs that can be mostly find on 8.0.5. The sympton is
that when you issue a query over v$bh or v$cache it
gives you no rows selected.
Regards.
--- Brian MacLean <[EMAIL PROTECTED]> wrote:
> Works fine for me on Solaris 2.6 and Oracle
> v8.1.7.0.0
>
> -----Original Message-----
> Sent: Monday, August 06, 2001 2:56 AM
> To: Multiple recipients of list ORACLE-L
>
>
> That doesn't work on 8i. You should change the
> scripts
> using x$bh instead of v$cache and v$bh.
>
> Regards.
>
> --- Brian MacLean <[EMAIL PROTECTED]> wrote:
> > As already stated you get v$bh and v$cache views.
> >
> > Here is a script that uses them to tell you WTF is
> > using your
> > db_block_buffers. Sample output follows the
> script
> > (have fun).
> >
> >
> >
> > REM
> > REM Brian P. Mac Lean 01-JUL-01
> > REM
> > REM SGA DB Block Hogs and Activity
> > REM
> > REM Must Be Run As SYS or Internal
> > REM
> > REM tool_db_buffer_map2.sql
> > REM
> > set verify off
> > set pagesize 36
> > set linesize 132
> > set pause off
> > set pause 'Hit enter to continue'
> > set feedback off
> > set showmode off
> > set echo off
> >
> > REM
> >
>
----------------------------------------------------------------------------
> >
> > col db_block_size new_value nv_db_block_size
> > noprint
> > select value db_block_size from v$parameter where
> > name = 'db_block_size';
> >
> > REM
> >
>
----------------------------------------------------------------------------
> >
> > ttitle "V$BH, Ordered by Status and Count"
> > col status format a10 heading
> > "Block|Status|Types"
> > col status2 format a25 heading
> > "Block|Status|Description"
> > col block_status format a32 heading "------Block
> > Status
> > Details------|Dirty-Temp-Ping-Stale-Direct-New"
> > col cnt format 99999999 heading "Blocks"
> > col sga_kbytes format 99999999 heading "Kbytes"
> > col sga_mbytes format 99999999 heading "Mbytes"
> > compute sum of cnt on report
> > compute sum of sga_kbytes on report
> > compute sum of sga_mbytes on report
> > break on report
> > select count(*) cnt,
> > count(*) * (&nv_db_block_size / 1024)
> > sga_kbytes,
> > trunc((count(*) * (&nv_db_block_size /
> 1024))
> > / 1024) sga_mbytes,
> > status,
> > decode(upper(status), 'FREE', 'not
> currently
> > in use',
> > 'XCUR', 'exclusive',
> > 'SCUR', 'shared
> > current',
> > 'CR', 'consistent
> > read',
> > 'READ', 'being read
> > from disk',
> > 'MREC', 'in media
> > recovery mode',
> > 'IREC', 'in instance
> > recovery mode', 'UNKNOWN')
> > status2,
> > dirty || ' ' || temp || ' ' || ping
> ||
> > ' ' || stale || '
> > ' || direct || ' ' || new block_status
> > from v$bh
> > group by status,
> > dirty || ' ' || temp || ' ' ||
> ping
> > || ' ' || stale || '
> > ' || direct || ' ' || new
> > order by 2,1;
> > clear break
> > clear compute
> >
> > REM
> >
>
----------------------------------------------------------------------------
> >
> > ttitle off
> > set pause off
> >
> > PROMPT
> > PROMPT Sort BY Selections
> > prompt For DB Buffer Cache Map
> > PROMPT ------------------------
> >
> > PROMPT 1 = Object Owner
> > PROMPT 2 = Object Name
> > PROMPT 3 = Object Type
> > PROMPT 4 = SGA Blocks
> > PROMPT 5 = SGA KBytes
> > PROMPT 6 = Segment KBytes
> > PROMPT 7 = Percent in SGA
> > ACCEPT USER_INPUT1 NUMBER PROMPT 'Please enter one
> > now:>'
> > col sort_by_number new_value sort_by_number_value
> > noprint
> > col sort_by_text new_value sort_by_text_value
> > noprint
> > select decode(&USER_INPUT1, 1,1, 2,2, 3,3, 4,4,
> 5,5,
> > 6,7, 7,9, 4)
> > sort_by_number,
> > decode(&USER_INPUT1, 1, 'Object Owner',
> > 2,'Object Name',
> > 3,'Object Type',
> > 4,'SGA Blocks',
> > 5,'SGA KBytes',
> > 6,'Segment KBytes',
> > 7,'Percent in SGA',
> > 'SGA Blocks')
> > sort_by_text
> > from dual;
> >
> > REM
> >
>
----------------------------------------------------------------------------
> >
> > PROMPT
> > PROMPT Sort ORDER Selections
> > PROMPT ---------------------
> >
> > PROMPT 1 = Descending
> > PROMPT 2 = Ascending
> > ACCEPT USER_INPUT2 NUMBER PROMPT 'Please enter one
> > now:>'
> > col order_by_text new_value order_by_text_value
> > noprint
> > select decode(&USER_INPUT2, 1,'Desc', 2,'Asc',
> > 'Desc') order_by_text
> > from dual;
> >
> > REM
> >
>
----------------------------------------------------------------------------
> >
> > ACCEPT USER_INPUT3 CHAR PROMPT 'Include SYS
> objects
> > (Y/N):>'
> > col include_sys new_value nv_include_sys
> noprint
> > select decode(upper('&USER_INPUT3'), 'Y','Y', 'N')
> > include_sys
> > from dual;
> >
> > REM
> >
>
----------------------------------------------------------------------------
> >
> > set feedback on
> >
> > create table tmp_v$cache
> > as select owner#, name, kind, partition_name,
> > count(*) sga_cnt, count(*) *
> > (&nv_db_block_size / 1024) sga_kb
> > from v$cache
> > group by owner#, name, kind, partition_name;
> > create index tmp_v$cache_idx
> > on tmp_v$cache(owner#, name, kind,
> partition_name,
> > sga_cnt, sga_kb);
> > analyze table tmp_v$cache
> > compute statistics
> > for table
> > for all indexes
> > for all indexed columns;
> >
> > create table tmp_dba_users
> > as select user_id, username
> > from dba_users;
> > create index tmp_dba_users_idx
> > on tmp_dba_users(user_id, username);
> > analyze table tmp_dba_users
> > compute statistics
> > for table
> > for all indexes
> > for all indexed columns;
> >
> > create table tmp_dba_segments
> > as select owner, segment_name, segment_type,
> > partition_name, blocks *
> > (&nv_db_block_size / 1024) seg_kb
> > from dba_segments;
> > create index tmp_dba_segments_idx
> > on tmp_dba_segments(owner, segment_name,
> > segment_type, partition_name,
> > seg_kb);
> > analyze table tmp_dba_segments
> > compute statistics
> > for table
> > for all indexes
> > for all indexed columns;
> >
> > REM
> >
>
----------------------------------------------------------------------------
> >
> > PROMPT spooling output to
> > /tmp/tool_db_buffer_map2_&1..lst
> > PROMPT
> > PROMPT Working, please wait...
> >
> > set feedback off termout off
> > spool /tmp/tool_db_buffer_map2_&1..lst
> >
> > ttitle 'Sga Usage, Ordered by &sort_by_text_value
> > &order_by_text_value '
> > col username heading 'Object Owner' format
> a20
> > col name heading 'Object Name' format
> a40
> > col kind heading 'Object Type'
> > col sga_cnt heading 'SGA|Blocks' format
> > 9999999
> > col sga_kb heading 'SGA|KBytes' format
> > 999999
> > col sga_mb heading 'SGA|MBytes' format
> > 99999
> > col seg_kb heading 'Segment|KBytes' format
> > 9999999
> > col seg_mb heading 'Segment|MBytes' format
> > 99999
> > col pct_load heading 'Pct In|SGA' format
> > 999.999
> >
> > select /*+ RULE */
> > B.username
> > username,
> > nvl(substr(A.name ||
> > decode(A.partition_name,NULL,NULL,'.' ||
> > A.partition_name
> > ),1,40
> > ), 'FREE BLOCKS'
> > )
> > name ,
> > A.kind
> > kind ,
> > A.sga_cnt
> > sga_cnt ,
> > A.sga_kb
> > sga_kb ,
> > trunc(A.sga_kb / 1024)
> > sga_mb ,
> > C.seg_kb
> > seg_kb ,
> > trunc(C.seg_kb / 1024)
> > seg_mb ,
> > (A.sga_kb / C.seg_kb) * 100
> > pct_load
> > from tmp_dba_segments C, tmp_dba_users B,
> > tmp_v$cache A
> > where A.owner# = B.user_id
> > and ((B.username != 'SYS'
>
> > ) or
> > (B.username = 'SYS' and '&nv_include_sys'
> =
> > 'Y')
> > )
> > and B.username = C.owner
> > and A.name =
> C.segment_name
> > and A.kind =
> C.segment_type
> > and nvl(A.partition_name,'NULL') =
> > nvl(C.partition_name,'NULL')
> > union all
> > select /*+ RULE */
> > C.owner
> > username,
> > nvl(substr(C.segment_name ||
> > decode(C.partition_name,NULL,NULL,'.' ||
> > C.partition_name
> > ),1,40
> > ), 'FREE BLOCKS'
> > )
> > name ,
> > C.segment_type
> > kind ,
> > 0
> > sga_cnt ,
> > 0
> > sga_kb ,
> > 0
> > sga_mb ,
> > C.seg_kb
> > seg_kb ,
> > trunc(C.seg_kb / 1024)
> > seg_mb ,
> > 0
> > pct_load
> > from tmp_dba_segments C
> > where ((C.owner != 'SYS'
>
> > ) or
> > (C.owner = 'SYS' and '&nv_include_sys' =
> > 'Y')
> > )
> > and (C.owner || C.segment_name ||
> C.segment_type
> > || C.partition_name) not
> > in
> > (select B.username || A.name || A.kind ||
> > A.partition_name
> > from tmp_dba_users B, tmp_v$cache A
> > where A.owner# =
> > B.user_id
> > and ((B.username != 'SYS'
>
> > ) or
> > (B.username = 'SYS' and
> > '&nv_include_sys' = 'Y')
> > )
> > )
> > order by &sort_by_number_value
> > &order_by_text_value, 1,2;
> >
> > spool off
> > ttitle off
> > set feedback on termout on
> > drop table tmp_dba_segments;
> > drop table tmp_dba_users;
> > drop table tmp_v$cache;
> >
> > exit
> >
> > REM ================================ END OF FILE
> > ===============================
> >
> >
> >
> >
> >
> > Fri Aug 03
> > page 1
> >
> > V$BH, Ordered by Status and
> > Count
> >
> > Block Block
> > Status Status
> > ------Block Status Details------
> > Blocks Kbytes Mbytes Types
> Description
> > Dirty-Temp-Ping-Stale-Direct-New
> > --------- --------- --------- ----------
> > -------------------------
> > --------------------------------
> > 1 8 0 xcur exclusive
>
> > Y Y
> > N N N N
> > 6 48 0 cr
> consistent
> > read N N
> > N N N N
> > 92 736 0 cr
> consistent
> > read Y N
> > N N N N
> > 731 5848 5 xcur exclusive
>
> > Y N
> > N N N N
> > 149170 1193360 1165 xcur exclusive
>
> > N N
> > N N N N
> > --------- --------- ---------
> > 150000 1200000 1170
> >
> > Sort BY Selections
> > For DB Buffer Cache Map
> > -----------------------
> > 1 = Object Owner
> > 2 = Object Name
> > 3 = Object Type
> > 4 = SGA Blocks
> > 5 = SGA KBytes
> > 6 = Segment KBytes
> > 7 = Percent in SGA
> > Please enter one now:>4
> >
> >
> >
> >
> > Sort ORDER Selections
> > --------------------
> > 1 = Descending
> > 2 = Ascending
> > Please enter one now:>1
> >
> >
> >
> > Include SYS objects (Y/N):>n
> >
> > Fri Aug 03
> > page 1
> > Sga
> > Usage, Ordered by SGA
> > Blocks Desc
> >
> >
> > SGA SGA SGA Segment Segment Pct In
> > Object Owner Object Name
>
> > Object Type
> > Blocks KBytes MBytes KBytes MBytes SGA
> > --------------------
> > ----------------------------------------
> > ------------------ -------- ------- ------
> --------
> > ------- --------
> > PROD VEND_PROD
>
> > TABLE
> > 39652 317216 309 671744 656 47.223
> > PROD DISP_PRODUCTS
>
> > TABLE
> > 33771 270168 263 1007616 984 26.813
> > PROD SO_HISTORY
>
> > TABLE
> > 29001 232008 226 245760 240 94.404
> > PROD DS_ORDERS
>
> > TABLE
> > 12122 96976 94 110592 108 87.688
> > PROD DS_ORDER_LINES
>
> > TABLE
> > 7561 60488 59 102400 100 59.070
> > PROD AK_VP_MODIFIED
>
> > INDEX
> > 4708 37664 36 40960 40 91.953
> > PROD AK_VENP_ID
>
> > INDEX
> > 2870 22960 22 69632 68 32.973
> >
> > -----Original Message-----
> > Sent: Thursday, July 26, 2001 12:06 PM
> > To: Multiple recipients of list ORACLE-L
> >
> >
> > Is there any sense to run catparr.sql if I do not
> > use OPS?
> >
> > Alex Hillman
> > --
> >
>
>
> =====
> Eng. Christian Trassens
> Senior DBA
> Systems Engineer
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> Phone : 541149816062
>
> __________________________________________________
> Do You Yahoo!?
> Make international calls for as low as $.04/minute
> with Yahoo! Messenger
> http://phonecard.yahoo.com/
> --
> Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> --
> Author: Christian Trassens
> INET: [EMAIL PROTECTED]
>
> Fat City Network Services -- (858) 538-5051 FAX:
> (858) 538-5051
> San Diego, California -- Public Internet
> access / Mailing Lists
>
--------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an
> E-Mail message
> to: [EMAIL PROTECTED] (note EXACT spelling of
> 'ListGuru') and in
> the message BODY, include a line containing: UNSUB
> ORACLE-L
> (or the name of mailing list you want to be removed
> from). You may
> also send the HELP command for other information
> (like subscribing).
>
=====
Eng. Christian Trassens
Senior DBA
Systems Engineer
[EMAIL PROTECTED]
[EMAIL PROTECTED]
Phone : 541149816062
__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Christian Trassens
INET: [EMAIL PROTECTED]
Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051
San Diego, California -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).