您的位置:首页 > 数据库 > SQL

Scripts:找出使用最高的10个表的脚本perf_top_10_tables.sql

2014-06-02 17:09 471 查看
-- +----------------------------------------------------------------------------+

-- |                          Jeffrey M. Hunter                                 |

-- |                      jhunter@idevelopment.info                             |

-- |                         www.idevelopment.info                              |

-- |----------------------------------------------------------------------------|

-- |      Copyright (c) 1998-2011 Jeffrey M. Hunter. All rights reserved.       |

-- |----------------------------------------------------------------------------|

-- | DATABASE : Oracle                                                          |

-- | FILE     : perf_top_10_tables.sql                                          |

-- | CLASS    : Tuning                                                          |

-- | PURPOSE  : Report on top 10 tables with respect to usage and command type. |

-- | NOTE     : As with any code, ensure to test this script in a development   |

-- |            environment before attempting to run it in production.          |

-- +----------------------------------------------------------------------------+

SET LINESIZE 145

SET PAGESIZE 9999

SET VERIFY   off

COLUMN ctyp      FORMAT a13                  HEADING 'Command Type'

COLUMN obj       FORMAT a30                  HEADING 'Object Name'

COLUMN noe       FORMAT 999,999,999,999,999  HEADING 'Number of Executions'

COLUMN gets      FORMAT 999,999,999,999,999  HEADING 'Buffer Gets'

COLUMN rowp      FORMAT 999,999,999,999,999  HEADING 'Rows Processed'

BREAK ON report

COMPUTE sum OF noe   ON report

COMPUTE sum OF gets  ON report

COMPUTE sum OF rowp  ON report

SELECT

    ctyp

  , obj

  , 0 - exem noe

  , gets

  , rowp

FROM (

    select distinct exem, ctyp, obj, gets, rowp 

    from (select

              DECODE(   s.command_type

                      , 2,  'Insert into '

                      , 3,  'Select from '

                      , 6,  'Update  of  '

                      , 7,  'Delete from '

                      , 26, 'Lock    of  ')   ctyp

            , o.owner || '.' || o.name        obj

            , SUM(0 - s.executions)           exem

            , SUM(s.buffer_gets)              gets

            , SUM(s.rows_processed)           rowp

          from

              v$sql                s

            , v$object_dependency  d

            , v$db_object_cache    o 

          where

                s.command_type  IN (2,3,6,7,26) 

            and d.from_address  = s.address 

            and d.to_owner      = o.owner 

            and d.to_name       = o.name   

            and o.type          = 'TABLE' 

          group by

              s.command_type

            , o.owner

            , o.name

    )

)

WHERE rownum <= 10;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: