db_file_multiblock_read_count:oracle在进行一次连续的数据库扫描时,一次I/O允许读取的最大数据块数,但有一个限制,就是每次I/O的大小不能超过oracle运行的操作系统的最大I/O值(通常是1MB)。
对于OLTP数据库,每次用户读取的记录数非常少,这个值可以考虑设置小一点;对于OLAP数据库,因为查询的量非常大,可以考虑设置大一些,但是需要注意多数据块读取只发生在以下两种情况下:
FTS(FULL TABLE SCAN) 和 INDEX_FFS(INDEX FAST FULL SCAN)。
在oracle10GR2以后,oracle不建议修改它的默认值,当设置这个参数为默认值,oracle会通过收集sql的I/O情况,来动态设置这个参数的值;如果手工修改了它的默认值,oracle将使用这个新值。
这个参数会影响到CBO对成本的评估,通常来说,如果这个值设置越大,FTS或者INDEX_FFS的成本就会越低,执行计划就越倾向这边。
db_writer_processes:这个参数的意思就是可以设置多个db_writer进程,以加快数据从缓冲区想磁盘写的速度。sql*loader通过直接加载的方式加载的数据并不会被放到SGA缓冲区中。所以,如果系统以这样的方式来加载数据,通过设置这个参数,并不能达到提高数据写入磁盘的效率。
disk_asynch_io:这个参数允许oracle在数据写入的时候以异步的方式进行数据写入。此时db_writer进程只管将数据块丢给操作系统,剩下的工作由操作系统来完成,这样数据写到磁盘的时间和db_writer写数据的时间是不同步的,所以称为异步I/O,但它缺提高了数据写入的速度。
dbwr_io_slaves:这个参数实际上是用来模拟一个异步I/O系统的。这个参数当在数据库实例中只有一个db_writer进程时有意义。当操作系统不支持异步I/O时,可以给DBW0进程增加几个从进程,这些从进程的功能就是模拟异步I/O的机制。
db_files:用来约束数据库能够打开的文件数,默认值为200。