有个大型数据库,基于Oracle的,其中有几百万条记录,现在想从客户端执行查询操作,(只有查询权限,并且服务器不能建立存储过程等,因为服务器的东西不能动)。现在有20多条查询语句,如果每条语句递交到服务器进行查询的话,每条语句需要大概20分钟(返回的记录其实很少),如果把所有记录都取回然后在本地内存中进行比对,把一部分记录如100条读到内存中,然后全部分析此20多条查询语句,如此循环,好象全部读取加分析共花时3个小时左右)。各位有没有更高效的方法,我觉得好象提交SQL语句到服务器比对不应该这么慢的,有没有在服务器同时执行这些查询的方法(即只要扫描一遍数据库,就可以返回20条查询语句的结果)请提提建议。有好方案一定再加分。
建议根据数据库本身的特性改善你的查询语句,有时候调整查询条件的次序也会有一些效果的。
我对oracle sql语句优化还算有一点心得,也许可以帮到你.
对oralce表空间进行COALESCE
对talble&index进行analyze
具体的语法可以参考oracle帮助,oracle的优化是一门很高的学问,需要对oracle结构有很深的了解,牛x的dba最喜欢研究这个。