Oracle 9i性能调整
Oracle 9i性能调整
/* *
作者:欧朝敬
QQ:35712069
手机:13873195792
请转载者不要更改原版内容
*/
1、设置合适的SGA
常常有人抱怨服务器硬件很好,但是Oracle就是很慢。很可能是内存分配不合理造成的。
(1)假设内存有512M,这通常是小型应用。建议Oracle的SGA大约240M,其中:共享池(SHARED_POOL_SIZE)可以设置60M到80M,根据实际的用户数、查询等来定。数据块缓冲区可以大致分配120M-150M,8i下需要设置 DB_BLOCK_BUFFERS,DB_BLOCK_BUFFER*DB_BLOCK_SIZE等于数据块缓冲区大小。9i 下的数据缓冲区可以用db_cache_size来直接分配。
(2)假设内存有1G,Oracle 的SGA可以考虑分配500M:共享池分配100M到150M,数据缓冲区分配300M到400M。
(3)内存2G,SGA可以考虑分配 1.2G,共享池300M到500M,剩下的给数据块缓冲区。
(4)内存2G以上:共享池300M到500M就足够啦,再多也没有太大帮助; (Biti_rainy有专述)数据缓冲区是尽可能的大,但是一定要注意两个问题:一是要给操作系统和其他应用留够内存,二是对于32位的操作系统,Oracle的SGA有1.75G的限制。有的32位操作系统上可以突破这个限制,方法还请看Biti的大作吧。
建议在设置参数的同时,init 中使用 lock_sga ,在不同的平台上可能有不同的方式,使得SGA 锁定在物理内存中而不被放入 SWAP 中,这样对效率有好处。
lock_sga = true 的问题
由于几乎所有的操作系统都支持虚拟内存,所以即使我们使用的内存小于物理内存,也不能避免操作系统将SGA 换到虚拟内存(SWAP)。所以我们可以尝试使得SGA 锁定在物理内存中不被换到虚拟内存中,这样减少页面的换入和换出,从而提高性能。但在这里遗憾的是,windows 是无法避免这种情况的。
WINDOWS 不能设置lock_sga=true(一个根据平台而定的参数, 如果该参数为 TRUE, 将把所有 SGA 页装载到内存中, 以便使该例程迅速达到最佳性能状态。这将增加例程启动和用户登录的时间, 但在内存充足的系统上能减少缺页故障的出现。),可以通过设置pre_page_sga=true,使得数据库启动的时候就把所有内存页装载,这样可能起到一定的作用。
警告:
当你把DB_CACHE_ADVICE设置为ON(默认值)时,Oracle会从共享的池中“窃取”RAM页面,这往往严重影响到了库cache。例如,如果设置DB_CACHE_SIZE为500m,Oracle就会从共享池中窃取相当多数量的RAM空间。
为了避免这个问题,我们应该在INIT.ORA文件中把DBA设置为DB_CACHE_ADVICE=REA
相关文档:
1. 设置页面显示总行数
1) 查看目前的pagesize,默认是14:
Sqlplus代码
1. show pagesize;
show pagesize;
2) 将pagesize设置好100,则可以一次显示够多行记录了:
Sqlplus代码
1. set pagesize 1 ......
author:skate
time:2010-05-25
Oracle数据库管理脚本说明
Oracle 中的数据字典是数据库中的非常重要的一部分,提供了相关数据库的信息,它是所有Oracle用户(从应用的最终用户、应用的设计开发者到数据库管理员)的非常重要的信息来源。数据字典的创建,是在Oracle数据库创建完毕后,运行一些相关的数据库管理脚本来完 ......
用java调用oracle存储过程总结
1、什么是存储过程。存储过程是数据库服务器端的一段程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。
......
在Oracle关于时间属性的建表
Example:
create table courses(
cid varchar(20) not null primary key,
cname varchar(20) not null,
ctype integer,
ctime date DEFAULT SYSDATE,
cscore float not null
)
insert into courses values('ss01','java',0,TO_DATE('2009-8-28','yyyy-mm-dd'),94)
insert into course ......