文章带你去熟悉那些影响Oracle系统性能初始化参数。
什么是SGA(系统全局区)
1、系统全局区(SGA)是一个分配给Oracle的包含一个Oracle实例的数据库的控制信息内存段;
1、主要包括数据库高速缓存(thedatabasebuffercache),
2、重演日志缓存(theredologbuffer);
3、共享池(thesharedpool);
4、数据字典缓存(thedatadictionarycache)以及其它各方面的信息。
db_block_buffers
1、数据高速缓冲区。
2、访问过的数据都放在这一片内存区域,该参数越大,Oracle在内存中找到相同数据的可能性就越大,也即加快了查询速度。
3、db_block_buffers以块为单位,假如DB_BLOCK_SIZE=2KB,db_block_buffers=3200,则占用内存=3200*2KB=6400KB。
share_pool_size
1、SQL共享缓冲池。
2、该参数是库高速缓存和数据字典的高速缓存。
Log_buffer
1、重演日志缓冲区。
sort_area_size
1、排序区。
processes
1、同时连接的进程数。
global_names
1、假如“数据库链路名”和它所要连接的“数据库”拥有相同的名字,则设置global_names=TRUE,
否则,设置global_names=FALSE。
db_block_size
1、数据库块大小;
2、Oracle默认块为2KB,太小了,因为假如我们有一个8KB的数据,则2KB块的数据库要读4次盘,才能读完,而8KB块的数据库只要1次就读完了,大大减少了I/O操作;
3、数据库安装完成后,就不能再改变db_block_size的值了,只能重新建立数据库,并且建库时,要选择手工安装数据库。
open_links
1、同时打开的链接数。
dml_locks
1、用户一次可对表设定锁的最大数目;
2、假如有三个用户修改6个表,则需18个DML锁来实现并行操作,假如设定DML_LOCKS不够大,操作时执行将中断,你可以通过你的应用程序的操作规模和最大的并行使用的用户数来估算系统所需要的DML_LOCKS的值,但该值的大小对数据库的其他性能没有影响,所以一般都把它设得很大,远超过实际中可能达到的值,假如在系统运行中经常发生表锁死的现象,就应该考虑加大该值。
open_cursors
1、打开光标数;
2、这个参数可以同时被每个用户进程拥有,这个参数的最大值依操作系统不同而不同;
3、在创建一个包含很多表的合成视图时,假如此参数很小,则视图创建会不成功。
dbwr_io_slaves
1、后台写进程数。