日期:2014-05-16  浏览次数:20944 次

请教一个Oracle数据库查询变慢的问题!!!
环境: Windows 2003 server 
       Oracle 9i
       Weblogic 8
硬件:IBM x346服务器  
      CPU:Xeon 3GHz  双CPU
      内存:1GB DDR2
现象:有套应用在服务器上跑,2006年上线,最近一年用户称在查询显示结果时缓慢,要等待数分钟,
      将查询的SQL语句直接在数据库里查询也是十分缓慢。
         
      原以为是因为相关表内的数据过多导致,经用户同意,备份数据库后,将2013年之前的数据删除。
      重启服务器和数据库,未开放用户访问的情况下,测试做同样的查询操作,只要15秒出结果。
      开放用户访问,使用一段时间后,再次做同样的查询操作,又变得和原来一样显示查询结果缓,
      直接在数据库里执行该sql 语句也要125秒以上才能显示结果(该SQL语句是对一个视图的查询
      ,该视图只涉及到两个表,查询出来的结果只有900条记录)
      调整了SQL语句查询条件的位置,可以使查询时间缩短40秒,但是还是没有达到用户的期望值。

问题: 1.是否是因为多用户访问应用导致数据库的查询效率降低?
       2.是否可以通过优化SGA和PGA来提高数据库的查询性能?
       3.是否需要升级服务器的内存或其他硬件,再配合优化SGA和PGA来提高数据库的查询性能?
       4.有人建议直接换oracle11G,换了之后能否解决查询数据的性能?
          
oracle 性能 优化

------解决方案--------------------
查询条件 建索引。
-------------------------
直接在数据库里执行该sql 语句也要125秒以上才能显示结果
-------------------------------------------
说明Sql语句本身有问题的。看执行计划,分析出什么地方耗时。