数据库环境:
SunOS 5.6+Oracle8i Enterprise Edition Release 8.1.7.0.0
最近老是报共享池不够的错误,我想请问如何查共享内存用了多少?
我试过"show paramter share"不能执行,可能是版本原因,该怎么做呢.

解决方案 »

  1.   

    试过"show paramter share"肯定不能执行,
     show parameter share8i是可以的。
    select * from v$sgastat where name like 'free%' and pool='shared pool'select * from v$parameter where name like 'shared_pool_size'
      

  2.   

    如何查共享内存用了多少? 
    =============================
    SELECT pool, sum(bytes) "SIZE"
    FROM v$sgastat
    WHERE pool = ’shared pool’
    GROUP BY pool;
      

  3.   

    正常,
    但是评价一个数据库性能的问题,并不是某一个或几个参数使用情况决定的。需要综合的考虑。
    报shared_pool_size不够一般是劣质SQL导致的,
    首先,检查SQL,尤其是非常频繁的SQL,要绑定变量;可以查询软解析率加以佐证。对于一个较大系统也比应该分配shared_pool_size太大的值。否则适得其反/
      

  4.   

    昨天早上彻底连不上库了,只好重启数据库,share pool果然清空了,我的share_pool_size=180M,但到今天16点就剩下了110M,占用速度是否太快了,我该如何下手解决呢?
    您所说的检查方法,包括"劣质的SQL" "查询软解析率" 能否详细解释一下?谢谢了!