知识大全 ORACLE性能调优遵循的基本原则

Posted 索引

篇首语:任何人的知识不可能超过他自己的经验。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ORACLE性能调优遵循的基本原则相关的知识,希望对你有一定的参考价值。

ORACLE性能调优遵循的基本原则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  任何事情都有它的源头 要解决问题 也得从源头开始 影响ORACLE性能的源头非常多 主要包括如下方面      数据库的硬件配置 CPU 内存 网络条件   CPU 在任何机器中CPU的数据处理能力往往是衡量计算机性能的一个标志 并且ORACLE是一个提供并行能力的数据库系统 在CPU方面的要求就更高了 如果运行队列数目超过了CPU处理的数目 性能就会下降 我们要解决的问题就是要适当增加CPU的数量了 当然我们还可以将需要许多资源的进程KILL掉      内存 衡量机器性能的另外一个指标就是内存的多少了 在ORACLE中内存和我们在建数据库中的交换区进行数据的交换 读数据时 磁盘I/O必须等待物理I/O操作完成 在出现ORACLE的内存瓶颈时 我们第一个要考虑的是增加内存 由于I/O的响应时间是影响ORACLE性能的主要参数 我将在这方面进行详细的讲解     网络条件 NET*SQL负责数据在网络上的来往 大量的SQL会令网络速度变慢 比如 M的网卡和 的网卡就对NET*SQL有非常明显的影响 还有交换机 集线器等等网络设备的性能对网络的影响很明显 建议在任何网络中不要试图用 个集线器来将网段互联      OS参数的设置  下表给出了OS的参数设置及说明 DBA可以根据实际需要对这些参数进行设置   >   用户SQL质量  以上讲的都是硬件方面的东西 在条件有限的条件下 我们可以调整应用程序的SQL质量      不要进行全表扫描(Full Table Scan) 全表扫描导致大量的I/O     尽量建好和使用好索引 建索引也是有讲究的 在建索引时 也不是索引越多越好 当一个表的索引达到 个以上时 ORACLE的性能可能还是改善不了 因为OLTP系统每表超过 个索引即会降低性能 而且在一个sql 中 Oracle 从不能使用超过 个索引 当我们用到GROUP BY和ORDER BY时 ORACLE就会自动对数据进行排序 而ORACLE在INIT ORA中决定了sort_area_size区的大小 当排序不能在我们给定的排序区完成时 ORACLE就会在磁盘中进行排序 也就是我们讲的临时表空间中排序 过多的磁盘排序将会令 free buffer waits 的值变高 而这个区间并不只是用于排序的 对于开发人员我提出如下忠告:     ) select update delete 语句中的子查询应当有规律地查找少于 %的表行 如果一个语句查找的行数超过总行数的 % 它将不能通过使用索引获得性能上的提高        ) 索引可能产生碎片 因为记录从表中删除时 相应也从表的索引中删除 表释放的空间可以再用 而索引释放的空间却不能再用 频繁进行删除操作的被索引的表 应当阶段性地重建索引 以避免在索引中造成空间碎片 影响性能 在许可的条件下 也可以阶段性地truncate表 truncate命令删除表中所有记录 也删除索引碎片      ) 在使用索引时一定要按索引对应字段的顺序进行引用      ) 用(+)比用NOT IN更有效率      降低ORACLE的竞争   先讲几个ORACLE的几个参数 这几个参数关系到ORACLE的竞争      ) freelists 和 freelist 组 他们负责ORACLE的处理表和索引的空间管理      ) pctfree 及 pctused 该参数决定了freelists 和 freelist 组的行为 pctfree 和pctused 参数的唯一目的就是为了控制块如何在 freelists 中进出    设置好pctfree 及 pctused对块在freelists的移走和读取很重要      其他参数的设置   ) 包括SGA区(系统全局区) 系统全局区(SGA)是一个分配给Oracle 的包含一个 Oracle 实例的数据库的控制信息内存段     主要包括数据库高速缓存(the database buffer cache)     重演日志缓存(the redo log buffer)     共享池(the shared pool)     数据字典缓存(the data dictionary cache)以及其它各方面的信息     ) db_block_buffers(数据高速缓冲区)访问过的数据都放在这一片内存区域 该参数越大 Oracle在内存中找到相同数据的可能性就越大 也即加快了查询速度      ) share_pool_size (SQL共享缓冲池) 该参数是库高速缓存和数据字典的高速缓存      ) Log_buffer (重演日志缓冲区)     ) sort_area_size(排序区)     ) processes (同时连接的进程数)     ) db_block_size (数据库块大小) Oracle默认块为 KB 太小了 因为如果我们有一个 KB的数据 则 KB块的数据库要读 次盘 才能读完 而 KB块的数据库只要 次就读完了 大大减少了I/O操作 数据库安装完成后 就不能再改变db_block_size的值了 只能重新建立数据库并且建库时 要选择手工安装数据库      ) open_links (同时打开的链接数)     ) dml_locks      ) open_cursors (打开光标数)     ) dbwr_io_slaves (后台写进程数) cha138/Article/program/Oracle/201311/17955

相关参考

知识大全 ORACLE性能调优原则上篇(列表)

ORACLE性能调优原则上篇(列表)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  任何事情都有

知识大全 Oracle性能调优思路

Oracle性能调优思路  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  问oracle进程内存占

知识大全 通过Oracle动态性能视图采集查询调优数

通过Oracle动态性能视图采集查询调优数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于现

知识大全 可预见的Oracle应用程序性能调优

可预见的Oracle应用程序性能调优  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这篇技巧性文章是

知识大全 Oracle数据库索引优化技术关联查询性能调优

Oracle数据库索引优化技术关联查询性能调优  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数

知识大全 ORACLE性能初步调整

性能调优:ORACLE性能初步调整  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在UserSc

知识大全 数据库内存参数调优技术的总结

  近来公司技术研发都在问我关于内存参数如何设置可以优化Oracle的性能所以抽时间整理了这篇文档以做参考  目的:  希望通过整理此文档使公司同事对oracle内存结构有一个全面的了解并在实际的工作

知识大全 oracle内存调优参数详解

  实例结构  oracle实例=内存结构+进程结构  oracle实例启动的过程其实就是oracle内存参数设置的值加载到内存中并启动相应的后台进程进行相关的服务过程  进程结构  oracle进程

知识大全 Oracle专家调优秘密

Oracle专家调优秘密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在过去的十年中Oracl

知识大全 Oracle内存参数调优技术详解

Oracle内存参数调优技术详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目的  希望通过