技术开发 频道

Oracle数据库优化之数据库对象

  【IT168 技术文档】
 Oracle数据库优化之数据库磁盘I/O   
Oracle数据库的优化之回滚段
Oracle数据库的优化之REDO日志  
Oracle数据库优化之系统全局区(SGA)

  管理表的动态分配。

  SELECT TABLESPACE_NAME,SEGMENT_NAME,SUM(BYTES),COUNT(*) EXT_QUAN FROM DBA_EXTENT_NAME WHERE TABLESPACE_NAME=’USERS’ AND SEGMENT_TYPE=’TABLE’ GROUP BY TABLE_NAME,SEGMENT_NAME ;

  统计各表的动态分配次数,若分区太多说明next参数设置的太低了。

  优化索引存储参数。

  设置适当的PCTFREE、PCTUSED值。

  **********************************************************************************

  附: 优化SGA

  什么是SGA(系统全局区)

  1、系统全局区(SGA)是一个分配给Oracle 的包含一个 Oracle 实例的数据库的控制信息内存段。

  主要包括数据库高速缓存(the database buffer cache),

  重演日志缓存(the redo log buffer),

  共享池(the shared pool),

  数据字典缓存(the data dictionary cache)以及其它各方面的信息。

  db_block_buffers

  1、数据高速缓冲区

  2、访问过的数据都放在这一片内存区域,该参数越大,Oracle在内存中找到相同数据的可能性就越大,也即加快了查询速度。

  3、db_block_buffers以块为单位,假如DB_BLOCK_SIZE=2K,db_block_buffers=3200,则占用内存=3200*2K=6400K。

  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、后台写进程数

  优化数据库磁盘I/O

  1、 为表和索引分别创建不同表空间

  2、 将表和索引的表空间置于不同的磁盘上

  3、 将redo日志和回滚段存于不同的磁盘上

  4、 将oracle可执行文件和数据文件放在单独的磁盘上

0
相关文章