其实一般来讲我们只需设置sga-target的大小就可以了, oracle会自动管理shared pool的size. 但是当服务器内存不能增加的时候, 也就是说sga-target被指定的情况下,怎么手动设置shared pool的size 其实oracle有个系统动态视图 v$shared_pool_advice 叫共享池建议.. 我们可以借助它算出 大概的shared pool最佳大小(当前sg...
1、Oracle若没有实现SQL语句共享,则shared pool不应该设置为较大的值 2、查看执行计划 select sql_id,sql_text from v$sql where sql_text like '%count(*) from dba_objects%';--生成的sql语句id select * from table(dbms_xplan.display_cursor('07hpk6hpb7pp8'));--上边语句生成的sql id:07hpk6hp...
A shared SQL area is always in the shared pool.Oracle allocates memoryfromthe shared pool when a SQL statement is parsed; the size of this memory depends on the complexity of the statement.If a SQL statement requires a new shared SQL area and the entire shared pool has already been alloca...
Shared pool latch用来保护共享池的结构,在分配,释放共享池空间的时候就会获得该latch,那么在这个案例中,由于共享池太小,在对一个新的SQL进行硬解析的时候需要老化某些对象,为新对象腾出空间,那么这个释放空间的过程就需要获得shared pool latch。当然了,在进行硬解析,也需要获得一个shared pool latch因为硬解析需要申...
SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执行的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value...
1.free(shared pool中空闲的内存部分) Q:何时需要从free中找chunk呢? A:在硬解析的时候。 注意:如果硬解析失败,会报一个非常经典的错误Ora-4031。 产生这个错误的原因:①系统产生大量的硬解析;②大量的硬解析产生了大量碎片,此时又来一个大的sql需要解析,而free空间不够(有可能本身空间有剩余,但是都是碎片,没...
(1)共享池(Shared Pool):缓存了各用户间可共享的各种结构,例如,缓存最近被执行的SQL语句和最近被使用的数据定义。共享池主要包括:库缓存(Library Cache)、数据字典缓存(Data Dictionary Cache)、保留池(Reserved Pool)和结果缓存(Result Cache)。 Ø 库缓存(Library Cache)是存放用户SQL命令、解析树和执行计划的区...
用户A执行了SELECT ename, sal FROM emp WHERE empno=7902查询。 Oracle数据库会将该SQL语句及其解析结果(执行计划)存入共享池中。 如果用户B随后执行相同的SQL查询,由于该查询已经存在于共享池中,Oracle将直接使用缓存的执行计划,这样可以显著减少查询时间。 2.3 参数配置 共享池的大小由初始化参数SHARED_POOL_SIZE来...
from v$shared_pool_advice where shared_pool_size_factor = 1) c); 2.设置上个SQL语句中查到的PARSE_TIME_FACTOR首次等于1的记录所在行的ESTD_SP_SIZE的值为shared pool。 3.设置语句如下: alter system set shared_pool_size=XXX scope=spfile;或者alter system set shared_pool_size=XXX scope=both;...
from v$shared_pool_advice a, (select * from v$sysstat where NAME = 'parse time elapsed') e, (select estd_lc_time_saved from v$shared_pool_advice where shared_pool_size_factor = 1) c); 2.设置上个SQL语句中查到的PARSE_TIME_FACTOR首次等于1的记录所在行的ESTD_SP_SIZE的值为shared pool。