相剋軍 SQL語句解析型別 硬解析 軟解析

2021-08-13 00:47:18 字數 2064 閱讀 4115

一、shared pool的組成

3塊區域:free、library cache、row cache

select * from v$sgastat a where a.name='library cache';

select * from v$sgastat a where a.pool='shared pool' and a.name='free memory';

select * from v$sgastat a where a.name='row cache';

二、硬解析、軟解析

硬解析步驟、軟解析步驟

講解shared pool記憶體塊組成結構

ora-4031錯誤

select count(*) from x$ksmsp;

select count(*) from dba_objects;

select count(*) from x$ksmsp;

alter system flush shared_pool;

軟硬解析的具體情況

select name,value from v$sysstat where name like 'parse%'

三、sql共享,繫結變數

sql語句組成,動態部分、靜態部分

cursor_sharing

delare

vl varchar2(10);

nl int;

begin

nl:=1;

select salary into vl from test where id=n1;

end;

select sql_id,sql_text,executions from v$sql where sql_text like        

四、找出沒有共享的sql語句

如何找出不能共享cursor的sql

在v$sql查詢執行次數較小的sql語句,觀察這些sql語句是否是經常執行的。

select sql_fulltext from v$sql where exections=1 and sql_text like '%from t%';

select sql_fulltext from v$sql where exections=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

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;

5、增加shared pool空間

select component.current_size  from v$sga_dynamic_components;

show parameter sga_target;

show parameter sga_max_target;

alter system set shared_pool_size=150m scope=both;

七、檢視執行計畫

select * from table(dbms_xplan.display_cursor('07hpk6hpb7pp8'));

SQL基礎語句解析

sql structuredquerylanguage 語句又叫結構化查詢語言,適用於關係型據庫比如mysql,oracle,sqlserver等資料庫.ddl 資料定義語言 用於運算元據庫和表 dml 資料操作語言 用於操作表中的記錄 dql 資料查詢語言 用於查詢表中的記錄 dcl 資料控制語言...

ibatis 繫結變數 sql硬軟解析

關於避免sql的硬解析 1.ibatis中,所有的 都是繫結變數,所有的 都不算繫結變數,所以盡量避免使用 但是對於in,中傳入的值,不被看成乙個整體,此在in條件中可以順利使用只是不是繫結變數如 1 2 3 4這種語句 如果in的值是 傳入的,則in查不到任何資料因為 裡面的東西被看成乙個整體。2...

SQL 語句的解析過程

由於最近需要做一些 sql query 效能提公升的研究,因此研究了一下 sql語句的解決過程。在園子裡看了下,大家寫了很多相關的文章,大家的側重點各有不同。本文是我在看了各種資料後收集總結的,會詳細的,一步一步的講述乙個 sql 一 sql語句的解析順序 簡單的說乙個 sql語句是按照如下的順序解...