`
ruilin215
  • 浏览: 1143399 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

oracle Shared Pool优化思路

 
阅读更多
shared pool主要由保存数据字典的data_dictionary和保存SQL和PL/SQL代码和执行计划的library cache组成 。还包括其它供系统不同特性和技术使用的若干缓冲区,如为shared server模式提供的UGA等。
优化shared pool的思路:
1)根据设置经验,例如,可设置shared_pool_size=sga_target*(10%~15%)。
2)重点关注保存SQL和PL/SQL代码和执行计划的library cache相关指标。查看AWR报告Load Profile部分,分析Hard Parses/s等指标。分析Instance Efficiency Percentages (Target 100%)中LibraryHit %、Execute to Parse %、Soft Parse %等
需要关注的等待事件:
Latch:library cache
Latch:shared pool
3)查看Time Model Statistics中与shared pool相关指标(parse time elapsed与hard parse elapsed time)。
如果hard parse elapsed time所占比例较高,说明应用的语句共享性存在严重问题。

优化方法:
1)评估语句共享性
Execute to Parse %=(execute次数-Parse次数)/Execute次数*100%

如果Execute to Parse %太低,说明解析次数非常高,系统整体共享性差。一般该指标达到70%以上,就说明语句共享性不错。

AWR报告中Library Hit %、Soft Parse %和Hard Parses/s。Parse包含Hard Parse与Soft Parse次数,但我们应关注Hard Parses。

查询非共享的sql语句(执行次数为1):
select sql_text from v$sqlarea where executions=1 order by upper(sql_text);

2)通过shared pool advisory设置合理的shared_pool_size。也可以通过设置shared_pool_reserved_size参数,使一些比较大的PL/SQL对象常驻内存中,减少shared pool出现碎片的可能性。

3)合理设置large_pool_size参数

large pool缓冲区用于备份恢复操作、并行处理、ASM、共享连接模式、模拟异步I/O操作等场景,应合理设置large_pool_size以避免使用shared pool缓冲区,加剧shared pool缓冲区空间的紧张和产生碎片的可能性。

注意:并不是所有的sql都需要共享,对于统计报表类sql因其单笔事务的资源消耗大,并发量不高的特点,应该保证其执行计划的最优,这时候不用绑定变量。


分享到:
评论

相关推荐

    oracle性能调整 Shared pool深入分析及性能调整.pdf

    ### Oracle性能调整:Shared Pool深入分析及性能优化 #### 一、Shared Pool概念与重要性 **Shared Pool** 是Oracle数据库实例内存结构SGA(System Global Area)中的一个重要组成部分,主要用于存储共享的数据结构...

    相克军 ORACLE 讲座 shared pool 笔记

    在相克军的ORACLE讲座中,这一章节详细探讨了Shared Pool的工作原理、优化策略以及相关问题的解决方法。 首先,Shared Pool由三个主要部分构成:Free(剩余空间)、Library Cache和Row Cache。Free区域是用来存储未...

    oracle share pool学习资料

    ### Oracle Shared Pool 学习资料知识点详述 #### 17.1 Shared Pool 的基本原理 **概述:** Shared Pool 是 Oracle SGA (System Global Area) 中的一个关键组成部分,主要负责存储可共享的数据结构,例如 SQL 语句...

    Oracle数据库性能优化

    ### Oracle数据库性能优化——SharedPool原理及性能分析 #### SharedPool的基本原理 Oracle数据库通过引入SharedPool机制,显著提高了数据库的性能。在Oracle 7版本以前,并没有SharedPool的概念,每个用户连接...

    ORACLE SQL性能优化系列

    这块位于系统全局区域 SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享。因此,当你执行一个 SQL 语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同...

    计算机软件及应用Sharedpool深入分析及性能调整PPT学习教案.pptx

    总的来说,理解并优化Sharedpool是提升Oracle数据库性能的关键。通过对Sharedpool的深入分析,我们可以更好地掌握SQL语句的缓存机制,减少解析开销,从而实现系统性能的提升。在实际操作中,合理设置初始化参数,...

    oracle性能优化-比较全面

    本文将深入探讨Oracle性能优化的两个关键方面:SGA(System Global Area)的Shared Pool优化和Buffer Cache的优化。 首先,我们关注Shared Pool的调优。Shared Pool是SGA的一个组成部分,它存储了SQL语句、PL/SQL...

    Oracle参数优化

    如果`shared_pool_size`不足,Oracle会报4031错误。 `shared_pool_reserved_size`参数用于在Shared Pool中预留空间给大对象,如大型软件包。系统默认会保留5%的Shared Pool空间,一般不建议手动设置,让系统自动...

    ORACLE配置文件优化

    优化SPFILE涉及到动态性能监视,定期分析并调整如DB_CACHE_SIZE、SHARED_POOL_SIZE等参数,以适应数据量的增长和应用的变化。 3. **PFILE(Parameter File)**:当没有SPFILE时,Oracle使用PFILE启动。虽然PFILE不...

    使用SQL PROFILE固定SHARED POOL中的执行计划

    在数据库管理领域,SQL Profile是一种优化工具,它用于在Oracle数据库中固定特定的执行计划,以提高查询性能。本文将详细讲解SQL Profile的工作原理、如何创建以及如何利用它来优化数据库性能。 首先,理解SQL ...

    oracle数据库的优化

    通过调整SHARED_POOL_SIZE,保持足够的空间以减少硬解析。 **优化数据字典高速缓存:** 增大DB_CACHE_SIZE,确保数据字典信息能快速访问。 **优化游标:** 管理游标缓存,避免过多的软解析,优化 cursor_sharing ...

    oracle数据库性能优化与内部原理解析

    通过优化内存分配,如合理配置共享池(Shared Pool)、数据库缓冲区(Database Buffer Cache)等,可以显著提高数据库的处理能力。 6. 并发和锁定优化:监控和调整数据库的并发机制,优化锁的使用策略和死锁的处理...

    oracle性能调整的十大要点

    1. **Shared Pool优化**:Shared Pool是Oracle内存结构的一部分,用于存储解析的SQL语句、数据字典信息以及PL/SQL代码。优化Shared Pool可以显著提升性能,因为它减少了对磁盘I/O的需求。 2. **Gets、Pins和Reloads...

    Oracle Goldengate性能优化方案

    其他需要关注的初始化参数,如DB_CACHE_SIZE(数据库缓存大小)、SHARED_POOL_SIZE(共享池大小)、JAVA_POOL_SIZE(Java池大小)等,都可能需要调整。 4. ADDM的使用 自动化数据库诊断监视器(ADDM)是Oracle...

    oracle机制及内存区的优化建议

    系统全局区(SGA)是Oracle内存管理的关键部分,它包括了Shared Pool、Database Buffer Cache、Redo Log Buffer、Java Pool、Streams Pool、Large Pool等子区域。SGA的大小可以通过`ALTER SYSTEM SET SGA_MAX_SIZE=?...

    Oracle数据库性能优化.rar

    同时,缓存策略的设置,如Redo Log Buffer、Shared Pool、Buffer Cache等,也需要根据实际负载进行优化。 数据库的物理存储结构,如数据文件、控制文件、重做日志文件的布局,也会影响性能。通过合理规划这些文件的...

    Oracle 10g性能优化.pdf

    Oracle 10g中的Shared Pool、Large Pool、Java Pool等内存组件的合理配置,对于保持良好的数据库响应时间和吞吐量非常重要。此外,利用Oracle 10g的内存自动管理功能(Automatic Memory Management)可以简化内存...

    oracle性能优化技巧

    - SQL语句及其执行计划会被缓存在共享缓冲池(shared buffer pool)中。 2. **SQL缓存**: - 为了进一步提高性能,可以通过调整`init.ora`文件中的参数来控制SQL缓存的大小。 - 更大的缓存可以存储更多的SQL语句...

Global site tag (gtag.js) - Google Analytics