调整shared pool
v$sgastat 描述sga的祥细信息
shared_pool_size(初始化参数) 调整share pool的大小
v$librarycache 视图包括librarycache的统计性能。
查看librarycache sql执行小于一个数目的sql语句。
select sql_text from v$sqlarea where executions < 5 order by upper(sql_text);
查看硬解析语句:
select sql_text,parse_calls,executions from v$sqlarea order by parse_calls;
librarycache视图
v$sysstat, v$librarycache ,v$sql, v$sqlarea, v$sqltext, v$db_object_cache
一:shared pool contents
共享池的主要组件:
library cache
data dictionary cache
user global area for shared server sessions
共享池包括如下结构:
(1)library cache存储共享sql和pl/sql代码
(2)data dictionary cache保存数据字典对象信息
调整shared pool:
错误的data dictionary cache 或者 library cache的缓存大小将要比SGA内存要花费的多。所以调整shared pool是很重要的。
当调整shared pool时,应该把更精力更集中于library cache,因为分配内存空间的法则更喜欢控制dictionary data内存多于library cache。因此,调整library cache为一个可接受的缓存命中率以确保data dictionary cache也有一个可接受的命中率。
如果shared pool太小,服务器必须用更多的资源管理有限的可用空间。这样消耗cpu资源和引起竞争。
如果shared pool 太大能降低性能:有较少的内存为其他内存结构,一些接入能找到内容要慢于一个小一点的池。
Shared的大小
在初始化参数文件中用SHARED_POOL_SIZE设置大小。实际大小依赖其他因素,例如
SGA内存范围,默认大小8388608bytes(8MB)。
Library cache
Library cache 包括shared sql和pl/sql areas:完全解析和编译pl/sql块和sql
pl/sql块包括:过程、函数、包、触发器、匿名pl/sql块
Data Dictionary Cache
Data Dictionary Cache保存字典对象
二the library cache
用于保存sql语句和pl/sql块,共享给所有用户。
用LRU(least recently used)算法管理
用于预防语句重新解析
报告错误ora-04031当共享池没有空闲内存。
分享到:
相关推荐
- **调整Shared Pool大小**:根据系统的实际负载调整Shared Pool的大小,以满足应用需求。 - **SQL语句优化**:确保SQL语句尽可能地使用绑定变量,避免不必要的解析操作。 - **使用SQL Profile**:对于性能不佳的...
在10g之后,可以通过设置`sga_target`让Oracle自动调整Sharedpool的大小。值得注意的是,Library Cache是Sharedpool中需要重点关注的部分,因为它直接影响到SQL语句的解析和执行效率。 在内存结构上,Sharedpool...
尽管我们可以调整Shared Pool的整体大小,但无法单独设置这三个区域的大小。要查看各个部分的使用情况,可以通过查询`v$sgastat`视图来获取相关信息。 在数据库操作中,解析SQL语句有两种方式:硬解析(Hard Parse...
### Oracle Shared Pool 学习资料知识点详述 #### 17.1 Shared Pool 的基本原理 ...开发人员应当注重编写可重用性强的代码,同时 DBA 需要根据实际工作负载灵活调整 Shared Pool 的大小,以达到最佳性能表现。
如果`request misses`为0或没有持续增长,或者`free_memory`大于`shared pool reserved size`的50%,则可能需要调整shared pool reserved size。 3. 大的匿名PL/SQL代码块应尽量拆分为小块,以减少内存碎片。从9i...
这可能包括监控V$SGASTAT视图以了解内存使用情况,调整Shared Pool大小,或者根据需要调整_latch参数以优化并发访问。 总之,Oracle Latch是数据库性能调优的关键要素之一,特别是在处理高并发和复杂查询的环境中。...
将SQL Profile放在SHARED POOL中,意味着每次执行相关SQL语句时,都会使用预定义的执行计划,避免了不必要的解析和计划选择过程,从而提升性能。 要查看和管理SQL Profile,可以使用以下SQL*Plus命令: - `SELECT ...
当Free Memory不足时,可能会出现ORA-4031错误,这可以通过调整Shared Pool大小或优化SQL来缓解。 优化Oracle数据库性能的关键在于有效利用内存,减少不必要的I/O操作和硬解析。共享SQL语句能显著提高性能,通过...
优化库缓存命中率可通过调整Shared Pool大小和编写高效的SQL语句。 3. **闩命中率**:衡量数据库内部锁机制的效率。正常值应在99%以上,低命中率可能表明锁竞争激烈。使用绑定变量和适当调整`shared_pool_size`可以...
- 调整Shared Pool大小,确保常用SQL语句能在内存中快速访问。 - 设置合适的PGA(Program Global Area)内存分配,平衡多用户并发访问时的性能需求。 - 使用Automatic Memory Management (AMM) 功能自动调整内存...
《SharedPool:开源对象池实现详解》 在软件开发中,高效地管理和复用资源是提升性能的关键之一。"SharedPool"项目正是一款专注于实现这一目标的开源工具,它允许在多个客户端之间共享对象,避免了频繁创建和销毁...
2. 调整shared pool中的不同子池大小,比如shared pool的java pool、pl/sql pool等,以减少特定类型对象的争用。 3. 优化应用程序中SQL硬解析的频率,例如通过绑定变量来避免不必要的硬解析。 4. 分析v$library...
调整Shared Pool的大小和结构也是减少“library cache lock”的一种方式。增大Shared Pool的大小可以减少SQL重解析的发生,而对Shared Pool内部结构的调整,如增加Library Cache大小,可以提高缓存命中率,从而降低...
- **最佳实践**:调整Shared Pool的大小,以确保最近使用频繁的数据能在cache中得到保留,减少不必要的硬解析和字典访问。 #### 4. Load Profile分析 - **Load Profile**:显示数据库负载概况,用于评估系统的整体...
同时,调整Shared Pool的大小可以减少SQL语句的解析次数,降低解析开销。通过监控V$视图,如V$SGASTAT和V$BUFFER_POOL_STATISTICS,可以分析内存使用情况,找出性能瓶颈。 其次,减少物理读写的优化主要通过优化...
6. **调整Shared Pool大小**:根据需要增加Shared Pool大小,以避免争用导致的性能下降。 7. **监控数据库统计信息**:定期收集statspack或其他性能监控数据,以便及时发现问题并作出调整。 通过以上分析和建议,...
3. 调整SHARED POOL大小,以延长SQL解析计划的缓存时间。 4. 使用变量,确保变量名和数据类型与查询的数据库对象一致,以达到SQL语句的精确匹配。 5. 注意SQL语句的大小写、空格、查询对象、执行用户、变量和注释的...
- 调整`SHARED_POOL_SIZE`以减少Library Cache latch竞争。 - 使用`DBMS_STATS`定期收集统计信息,确保CBO(Cost-Based Optimizer)做出准确的决策。 - **2.1.3 Session Snap** - Session Snap是一种性能监控...