请教一个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,换了之后能否解决查询数据的性能?
------解决方案--------------------查询条件 建索引。
-------------------------
直接在数据库里执行该sql 语句也要125秒以上才能显示结果
-------------------------------------------
说明Sql语句本身有问题的。看执行计划,分析出什么地方耗时。