Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

73

积分

0

好友

0

主题
1#
发表于 2012-2-29 16:19:26 | 查看: 6435| 回复: 2
我们的数据库似乎有share pool不够的现象,但是实际已经分配了20G,按理该够了,怀疑有碎片?有没有简单,对系统开销小一些的办法来确定这一点呢?谢谢!
2#
发表于 2012-2-29 16:26:56
referece ORA-4031 Common Analysis/Diagnostic Scripts
http://www.oracledatabase12g.com ... nostic-scripts.html
  1. set pages 1000 lines 120
  2. col name for a60
  3. col value for a30

  4. ttitle off
  5. set heading on
  6. set feedback on


  7. SELECT KSMCHCLS CLASS, COUNT(KSMCHCLS) NUM, SUM(KSMCHSIZ) SIZ,
  8. To_char( ((SUM(KSMCHSIZ)/COUNT(KSMCHCLS)/1024)),'999,999.00')||'k' "AVG SIZE"
  9. FROM X$KSMSP GROUP BY KSMCHCLS;


  10. select '0 (<140)' BUCKET,
  11.        KSMCHCLS,
  12.        KSMCHIDX,
  13.        10 * trunc(KSMCHSIZ / 10) "From",
  14.        count(*) "Count",
  15.        max(KSMCHSIZ) "Biggest",
  16.        trunc(avg(KSMCHSIZ)) "AvgSize",
  17.        trunc(sum(KSMCHSIZ)) "Total"
  18.   from x$ksmsp
  19. where KSMCHSIZ < 140
  20.    and KSMCHCLS = 'free'
  21. group by KSMCHCLS, KSMCHIDX, 10 * trunc(KSMCHSIZ / 10)
  22. UNION ALL
  23. select '1 (140-267)' BUCKET,
  24.        KSMCHCLS,
  25.        KSMCHIDX,
  26.        20 * trunc(KSMCHSIZ / 20),
  27.        count(*),
  28.        max(KSMCHSIZ),
  29.        trunc(avg(KSMCHSIZ)) "AvgSize",
  30.        trunc(sum(KSMCHSIZ)) "Total"
  31.   from x$ksmsp
  32. where KSMCHSIZ between 140 and 267
  33.    and KSMCHCLS = 'free'
  34. group by KSMCHCLS, KSMCHIDX, 20 * trunc(KSMCHSIZ / 20)
  35. UNION ALL
  36. select '2 (268-523)' BUCKET,
  37.        KSMCHCLS,
  38.        KSMCHIDX,
  39.        50 * trunc(KSMCHSIZ / 50),
  40.        count(*),
  41.        max(KSMCHSIZ),
  42.        trunc(avg(KSMCHSIZ)) "AvgSize",
  43.        trunc(sum(KSMCHSIZ)) "Total"
  44.   from x$ksmsp
  45. where KSMCHSIZ between 268 and 523
  46.    and KSMCHCLS = 'free'
  47. group by KSMCHCLS, KSMCHIDX, 50 * trunc(KSMCHSIZ / 50)
  48. UNION ALL
  49. select '3-5 (524-4107)' BUCKET,
  50.        KSMCHCLS,
  51.        KSMCHIDX,
  52.        500 * trunc(KSMCHSIZ / 500),
  53.        count(*),
  54.        max(KSMCHSIZ),
  55.        trunc(avg(KSMCHSIZ)) "AvgSize",
  56.        trunc(sum(KSMCHSIZ)) "Total"
  57.   from x$ksmsp
  58. where KSMCHSIZ between 524 and 4107
  59.    and KSMCHCLS = 'free'
  60. group by KSMCHCLS, KSMCHIDX, 500 * trunc(KSMCHSIZ / 500)
  61. UNION ALL
  62. select '6+ (4108+)' BUCKET,
  63.        KSMCHCLS,
  64.        KSMCHIDX,
  65.        1000 * trunc(KSMCHSIZ / 1000),
  66.        count(*),
  67.        max(KSMCHSIZ),
  68.        trunc(avg(KSMCHSIZ)) "AvgSize",
  69.        trunc(sum(KSMCHSIZ)) "Total"
  70.   from x$ksmsp
  71. where KSMCHSIZ >= 4108
  72.    and KSMCHCLS = 'free'
  73. group by KSMCHCLS, KSMCHIDX, 1000 * trunc(KSMCHSIZ / 1000)
  74. /

  75. SELECT alloc_type, alloc_size, num_objs_flushed, object_loaded
  76.   FROM (SELECT ksmlrcom alloc_type,
  77.                ksmlrsiz alloc_size,
  78.                ksmlrnum num_objs_flushed,
  79.                ksmlrhon object_loaded,
  80.                RANK() OVER(ORDER BY ksmlrsiz DESC) AS order_ranking
  81.           FROM x$ksmlru
  82.          WHERE inst_id = USERENV('INSTANCE')
  83.            AND ksmlrsiz > 0)
  84. WHERE order_ranking <= 100
  85. ORDER BY order_ranking
  86. /
复制代码

回复 只看该作者 道具 举报

3#
发表于 2012-2-29 16:29:39
Sample output:

SQL> SELECT KSMCHCLS CLASS, COUNT(KSMCHCLS) NUM, SUM(KSMCHSIZ) SIZ,
To_char( ((SUM(KSMCHSIZ)/COUNT(KSMCHCLS)/1024)),'999,999.00')||'k' "AVG SIZE"
  2  FROM X$KSMSP GROUP BY KSMCHCLS;
  3  

CLASS           NUM        SIZ AVG SIZE
-------- ---------- ---------- ------------
freeabl       30511   91174848        2.92k
recr          41740   73426352        1.72k
R-freea         158       7584         .05k
perm             62  105311592    1,658.76k
R-free           79   16674496      206.12k
R-perm            7   28010320    3,907.69k
free           1619   12760680        7.70k
R-recr            1    3977192    3,883.98k

BUCKET         KSMCHCLS   KSMCHIDX       From      Count    Biggest    AvgSize      Total
-------------- -------- ---------- ---------- ---------- ---------- ---------- ----------
0 (<140)       free              1         50         72         56         56       4032
0 (<140)       free              1        110         62        112        112       6944
0 (<140)       free              1         70        116         72         72       8352
0 (<140)       free              1         80        142         88         84      11936
0 (<140)       free              1         40        229         48         42       9792
0 (<140)       free              1        120        126        128        124      15664
0 (<140)       free              1         60         76         64         64       4864
0 (<140)       free              1         90         81         96         96       7776
0 (<140)       free              1        130         72        136        136       9792
0 (<140)       free              1        100        116        104        104      12064
1 (140-267)    free              1        140        127        152        147      18720
1 (140-267)    free              1        200          1        208        208        208
1 (140-267)    free              1        160         62        160        160       9920
2 (268-523)    free              1        350         23        376        376       8648
3-5 (524-4107) free              1       1000          1       1112       1112       1112
          FROM x$ksmlru
6+ (4108+)     free              1      48000         14      48936      48572     680008
6+ (4108+)     free              1      40000         14      40976      40595     568336
6+ (4108+)     free              1      63000          5      63848      63395     316976
6+ (4108+)     free              1      54000          9      54968      54502     490520
6+ (4108+)     free              1      52000          6      52912      52482     314896
6+ (4108+)     free              1      85000          3      85824      85506     256520
6+ (4108+)     free              1     220000          1     220416     220416     220416
6+ (4108+)     free              1      99000          6      99968      99714     598288
6+ (4108+)     free              1     373000          1     373192     373192     373192
6+ (4108+)     free              1     104000          2     104264     104204     208408

若 发现存在大量 小的 free bucket 则说明 共享池碎片多。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-24 00:25 , Processed in 0.047661 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569