標籤:
》共用sql:
1、統一書寫風格
2、使用綁定變數
》》找出沒有共用的SQL語句:
在v$sql尋找執行次數較小的SQL語句,觀察這些SQL語句是否是經常執行的。
select SQL_FULLTEXT from v$sql where EXECUTIONS=1 and sql_text like ‘%from t%‘;
select SQL_FULLTEXT from v$sql where EXECUTIONS=1 order by sql_text; --將執行次數只有一次的語句列出,同時排序
》解析命中率:
select sum(pinhits)/sum(pins)*100 from v$librarycache; --軟解析
select sum(gets),sum(getmisses),100*sum(gets-getmisses)/sum(gets) from v$rowcache where gets>0;
》解決4031錯誤方法
1、alter system flush shared_pool; --臨時手段
2、共用sql
alter system set cursor_sharing=‘force‘;
3、select * from v$db_object_cache where sharable_mem > 10000
and (type = ‘PACKAGE‘ or type=‘PACKAGE BODY‘ or type=‘FUNCTION‘ or type=‘PROCEDURE‘)
and kept = ‘NO‘;
執行dbms_shared_pool.keep(‘上一條語句出來的對象名‘);
DBMS_SHARED_POOL
@?/rdbms/admin/dbmspool.sql
4、保留區
select REQUEST_MISSES from v$shared_pool_reserved;
show parameter shared;
5、增加shared pool空間
select COMPONENT,CURRENT_SIZE from V$SGA_DYNAMIC_COMPONENTS;
show parameter sga_target
show parameter sga_max_size
alter system set shared_pool_size=150M scope=both;--Oracle 預設會有159M,只能修改比159M大
Oracle學習之sql共用以及4031解決方案