oracle服务器配置及优化
1.在ORACLE中实现分布式快速存取和充实内存是很重要的。
要不惜任何代价避免页面调度和交换﹐每次都必须把系统全局区(SGA)放到内存。
将SGA放到内存中﹐在INIT.ORA中设置参数 PRE_PAGE_SGA
PRE_PAGE_SGA=YES
2.回卷段的竟争会降低系统的性能。
SELECT GETS,WAITS from V$ROLLSTAT;
GETS代表回卷段被访问的次数
WAITS代表进程等待回卷段中哪个进程的次数
如果GETS与WAITS的比大于2%表示存在竟争问题
解决办法是创建更多的回卷段。
有两种类型的锁存竟争会产生严重的后果﹕立即锁存(IMMEDIATE)和等待(WAIT)锁存。
等待锁存的计算公式﹕
WAIT CONTENTION=(MISSES/(GETS+MISSES))*100
立即锁存的计算公式﹕
IMMEDIATE CONNECTION=(IMMEDIATE_MISSES/(IMMEDIATE_GETS+IMMEDIATE_MISSES))*100
如果任何一个值>0则就存在对锁存的竟争
如果发生恢复分配锁存的竟争﹐可以减小INIT.ORA中的LOG_SMALL_ENTRY_MAX_SIZE的参数值。如果发生恢复复制竟争﹐可以增大INIT.ORA中的LOG_SIMULATANOUS_COPIES的参数值。 中国网管联盟www_bitscn_com
任何回卷段的OPTIMAL参数的设置不能太小﹐如果OPTIMAL
SELECT CLASS,COUNT from V$WAITSTAT WHERE UPPER(CLASS) IN ('SYSTEM UNDO HEADER)','SYSTEM UNDO BLOCK',
'UNDO HEADER','UNDO BLOCK');
SELECT SUM(VALUE) from V$SYSSTAT WHERE UPPER(NAME)
IN ('DB BLOCK GETS','CONSISTENT GETS');
第一条查询中的每一类与第二条查询中的比率最好<0.01
3.提高缓冲区的效率。
SELECT RELOADS,PINS from V$LIBRARYCACHE;
RELOADS存入SQL命令被加载和分解的次数
PINS存入数据库对SQL高速缓冲区查找一条语句的次数
如果RELOADS与PINS的比率大于1%则应增加INIT.ORA中的SHARED_POOL_SIZE的参数值。
SELECT GETMISSES,GETS from V$ROWCACHE;
如果RELOADS与PINS的比率大于10%则应增加INIT.ORA中的
SHARED_POOL_SIZE的参数值。
4.用户任何时点拥有的打开光标的最大数
修改INIT.ORA中的OPEN_
相关文档:
oracle巨大表的数据删除的方法,20分钟搞定
一个客户的日志表,已经有3000多千万的记录了,容量大约30G,打算维护一下,看了一下字段,发现日志是按日期记录的,打算只保留3个月的日志就好了。
第一个思路:
按条件查出来,直接DELETE
试了一下
delete from NTLS_LOGS where to_char(START ......
软件环境:
1、Windows XP + Oracle 10g
2、Oracle安装路径为:d:\Oracle
实现方法:
1、开始->设置->控制面板->管理工具->服务停止所有Oracle服务;
2、开始->程序->Oracle – OraDb10g_home1>Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal I ......
使用nulls first 或者nulls last 语法
Nulls first和nulls last是Oracle Order by支持的语法
如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
使用语法如下:
--将nulls ......
Oracle还是比较常用的,于是我研究了一下Oracle用户表空间,在这里拿出来和大家分享一下,希望对大家有用。在我们为微软的NTFS分区格式中的用户磁盘配额鼓掌的时候,Oracle数据库中也已经实现了用户磁盘配额的技术。可以借助表空间,来对用户进行磁盘配额管理。利用表空间的用户磁盘配额,可以实现很多功能。
如可以利用用 ......
学习Oracle时,你可能会遇到Oracle用户表空间问题,这里将介绍Oracle用户表空间问题的解决方法,在这里拿出来和大家分享一下。其实就是在已有的数据库实例上创建一个新的帐号,访问一些新的表。
操作步骤如下:
1、登录linux,以Oracle用户登录(如果是root用户登录的,登录后用su-oracle命令切换成oracle用户)
2、以sy ......