数据库系统和操作系统一样,在计算机上安装成功后,还需要进一步配置和优化,从而使其具有更强大的功能和运行在最佳状态。如果在设计阶段因为各种因素没有进行较为合理的配置和计划,那么就需要在后期对数据库系统进行优化。
数据库系统性能的优化,除了在设计阶段对其逻辑存储结构和物理存储结构设计进行优化,使之在满足需求条件下,时空开销性能最佳外,还可在运行阶段,采取一些优化措施,使系统性能最佳。本专题所讨论的性能优化主要指运行阶段的性能优化,即讨论如何使用Oracle所提供的优化手段来提高系统性能。大多数性能问题并不是一种孤立的症状,而是系统设计的结果,因此性能优化就集中在那些导致不可接受特征的同一的、固定的和潜在的问题上。优化是数据库设计中“计划”、“设计”、“监视”和“优化”四大步骤的最后一步。 除了用Oracle优化器来优化数据库的性能外,DBA还可通过优化Oracle的参数设置等手段来优化数据库的性能,对参数的细微优化便能影响系统整体性能。
为了有目的优化系统性能,首先应明确优化目标,然后再根据目标优化各种初始参数的设置,以达到更好效果。可有如下几个优化目标:
◆ 应用程序设计的优化
◆ 指定类型SQL语句的优化
◆ 内存使用的优化
◆ 数据存储、物理存储和逻辑存储的优化
◆ 网络通信量的优化
DBA可选定上述一个或多个目标来实施优化。性能优化主要是通过优化初始化参数来实现。本专题从以下几个方面来谈谈如何优化Oracle数据库,使其具有最佳性能。
(1)优化初始参数
(2)优化内存
(3)优化I/O
(4)优化资源争用
(5)其它参数优化
可变参数的优化
在对Oracle数据库进行优化时,需要用到许多的参数,其中有一部分参数对系统性能影响较大,这部分参数叫可变参数。可变参数按其作用可以分为两大类,一大类是起限制作用的,如OPEN_CURSORS;另一大类是影响系统性能的,如DB_BLOCK_BUFFERS。
在进行数据库系统性能优化时,需要熟练掌握和了解一些可变参数。本文讨论了一些对系统性能有较大影响的参数。
限制类可变参数
(1)DML_LOCKS
该参数表明多少个用户,可同时能修改多少张表。例如:有三个用户同时修改二张表,则要求表上的总数为6。若置为0,则组织队列不起作用,其性能会稍有提高。使用该参数时不能用DROP TABLE、CREATE INDEX或显式封锁。
(2)LICENSE_MAX_SESSION
该参数指出允许并发用户会话的最大数。若此参数为0,则不能实施并发。若并发的用户会话数已达到此极限,则只有具有RESTRICTED SESSION权限的用户才能连接到服务器。
(3)LICENSE_MAX_USERS
该参数指出在一个数据库上可建立的最大用户数。当达到最大值时,便不能再建新用户,可改变此值以放松限制。在LICENSE_MAX_SESSION或LICENSE_MAX_USER为0时,则并发会话或任何用户都不能用。若对不同的实例,此参数不同时,则以第一个登录的数据库实例的参数为准。
(4)MAX_DUMP_FILE_SIZE
该参数指定操作系统中写跟踪文件的块的最大值。可用此值来限制跟踪文件的空间。
(5)OPEN_CURSORS
该参数指明一个用户进程能同时打开光标的最大数,它能限制每个用户进程占用的内存空间量。
(6)OPEN_LINKS
该参数指定并发连接到远程数据库的最大用户进程数。若同时引用多个数据库,则应该增大该值。例如:同时交替访问A、B和C三个数据库时,若OPEN_LINKS设置为2,则需花费等待连接时间。此参数只用于分布事务。若该参数设置为0,则不允许进行分布事务处理。
(7)PROCESS
该参数指定同时连接到Oracle服务器上的最大用户进程数。该参数值包括6个后台进程和一个登录,因此,该参数值为20,则只能有13或14个并发用户连接到服务器。
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 优化 策略 性能 数据库 学习 应用 参数 设置 最大 系统 |
注册
个人空间
