前一阶段公司开发的一个合同管理系统,使用oracle 9i作为数据库。其中对于合同明细项查询的速度比较慢,而对一些其他的很少做修改的表查询速度很快。想到的可能的原因有两个:
1、合同明细项表(T_ORDER_ITEM)数据量大,三个月有2万条数据吧,在一定程度上可能影响速度。
2、合同明细项表(T_ORDER_ITEM)数据操作频繁。由于可能有10个左右的人同时操作(包括增删改查)同一张表,因此该表的查询速度受到影响。    由于小弟对oracle的具体工作方式只有初步的了解,因此请教各位大侠,还可能有其他原因吗?类似于2中的相对动态的表,该如何对查询速度进行优化?

解决方案 »

  1.   

    2万条数据是很少的  oracle插入对查询影响也很小你说慢,是指慢到什么样呢,sql有没有优化过  机器是不是太差了
      

  2.   

    sql查询语句不优化也会影响速度    有时候影响还很大
      

  3.   


    oracle是自动对行记录进行加锁吧?使用Hibernate和JDBC访问,没有在程序里加锁理论并发数最大可达到100吧,监测的这几天最多有10人同时录入合同
      

  4.   


    机器没问题,8核16cpu,16G内存;sql语句做过检查,给过一些,请问还有什么好的进行sql语句优化的工具吗?关于慢,举个例子,只查询合同产品项T_ORDER_ITEM这一张表,现在总共有6万条数据,查询条件是合同ID(外键:F_ORDER_ID ref T_CUSTOMER_ORDER.F_ORDER_ID)。第一种情况:当只有一个人操作的时候,查询速度很快,10个人同时进行增删改查操作时,查询速度较慢;第二种情况:间歇性变慢,对于同样的查询条件(查询出20条数据),速度快的时候可能需要1秒,在某一段时间速度慢的时候可能需要6秒
      

  5.   


    嗯,求助sql查询语句的优化方法是用工具还是直接查看所有sql语句?
      

  6.   

    注意看一下应用程序,看一下是不是有及时的COMMIT,如果有的话,就10个并发数,应该不会慢吧。如果没有,有的时候会死锁在那边。或者你的数据库实在太烂了!还有看一下,是不是创建太多的存储索引了,或者用了簇级索引。
      

  7.   

    最终根据oracle的建议调整了SGA和PGA,速度有明显提升,结贴拿分!