Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32591
  • 博文数量: 7
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-26 12:51
文章分类

全部博文(7)

文章存档

2008年(7)

我的朋友
最近访客

分类: Oracle

2008-04-26 13:32:01

  ORALCE的配置上调优的参数很少,并且调试ORALCE的配置提高的性能也有限。程序上的问题主要包括:SQL语句拼写的有问题;数据库设计没建索引或索引没有应用上。

    以下是个人在几个项目中对ORACLE调优的一些技术参考信息:

 

1、字段类型上的差别

    在数据库设计上字段类型的设计很关键,CHARVARCHAR2类型有很大的差别,CHAR是固定字符长度的类型,当值的长度不足时,系统会自动补充空格,那么字段类型是CHAR是,索引就没法应用上,所有在字段使用上没特殊要求尽量使用VARCHAR2类型。

2、索引被抑制
   
当建立了索引,还有在SQL语句中很好的利用,避免出现SQL语句错误的拼写导致索引被抑制。
WHERE TO_CHAR(A)=’2006/12/13
应该改为 WHERE A=TO_CHAR(’2006/12/13’ )
 WHERE A+7>15
应该改为WHERE A>8

   3、Oracle的优化器(在使用索引时有关键性的应用)
      
   9I之前,统计信息需要手工采集,10G系统能够自动采集,但不能完全依靠         ORACLE系统自己处理。还是需要通过手工采集统计信息

 

  运用了统计,因为这是成本最低的一种解决方案,根本不需要改代码:

Exec dbms_stats.gather_schema_stats(ownname=> ‘eximuser’,cascade=>true)

对于分区表,建议使用DBMS_STATS,而不是使用Analyze语句。
   a)
可以并行进行,对多个用户,多个Table
   b)
可以得到整个分区表的数据和单个分区的数据。

   c)
可以在不同级别上Compute Statistics:单个分区,子分区,全表,所有分区
   d)
可以倒出统计信息
   e)
可以用户自动收集统计信息

4、分区
    
分区是实现历史数据迁移的最佳方式,当进行数据迁移时,删除操作(时间长,日志大),可以考虑交换技术;
    
分区的设计与表空间的设计是相关联的;
    
分区的交换技术(EXCHANGE)非常精彩,是把大量数据中的局部数据拿出来,处理完后再放回去,实际上是修改了数据的指针,所有在大数据量使用分区交换时非常非常的快。


5、日志
     INSERT
语句产生的日志最小;
     DELETE
语句产生的日志最大,并且不真正的释放空间,在一个数据量非常大的表中,执行删除操作实际是非常恐惧的操作;

 

阅读(667) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:HP-UNIX DB2安装配置

给主人留下些什么吧!~~