oracle嵌套查询太慢了,嵌套查询sql

oracle建立对象表(嵌套表)能否提高查询的效率?1、这样即使不用分析,在一般情况下也可以提高查询性能 。但是表和索引经过分析后有助于找到最合适的执行计划 。设置cursor_sharing=FORCE 或SIMILAR 这种方法是8i才开始有的,oracle805不支持 。
2、如果数据量比较大,而且对数据的实时性要求不高,那么建议用oracle的物化视图来做 。物化视图是介于普通视图和表之间的一种oracle专有对象,物化视图会将查询的数据缓存起来,同时可以对物化视图进行修改、查询、删除和添加操作 。
3、(5)IN用EXISTS取代 。在对数个基础表查询过程中 , 一般需要进行表的连接 。因为利用IN的子查询过程中,ORACLE的扫描对象是全表,因此 , 出于提高查询效率目的的考虑,应当将IN用EXISTS取代 。(6)在索引列中不使用计算 。
4、建立分区表的话,是可以根据所分区的内容进行查询的 , 比如单独查询2011年度的记录,但是因为你已经有了一定的历史数据 , 所以相对比较麻烦,建议百度一下 。
如何提高oracle的查询速度(1)假设内存有512M,这通常是小型应用 。建议Oracle的SGA大约240M,其中:共享池(SHARED_POOL_SIZE)可以设置60M到80M,根据实际的用户数、查询等来定 。
(5)IN用EXISTS取代 。在对数个基础表查询过程中 , 一般需要进行表的连接 。因为利用IN的子查询过程中,ORACLE的扫描对象是全表 , 因此,出于提高查询效率目的的考虑,应当将IN用EXISTS取代 。(6)在索引列中不使用计算 。
. 确保最优的索引使用 :对于改善查询的速度,这是特别重要的 。有时 Oracle 可以选择多个索引来进行查询 , 调优专家必须检查每个索引并且确保 Oracle 使用正确的索引 。它还包括 bitmap 和基于函数的索引的使用 。
对于经常查询的大表,可以放在独立表空间,有利于查询性能提高 。E.日志文件与数据文件分开放 , 提高数据库安全性 。表分区管理 。
创建分区表,使查询时的大表尽量分割成小表 。Oracle提供范围分区、列表分区、Hash分区以及复合分区,具体选择哪种分区最优,需要根据你的业务数据来确定 。创建索引,创建合适的索引可以大大提高查询速度 。
...为什么加了一个exists后查询变得很慢很慢 。oracle~~~万分感谢...1、(2)改为嵌套查询 , 上面的结果查出来后再嵌套一层去查下面的结果,就是把exists放到外面一层,这样应该可以减少一部分时间,不过这种方法要实地测试 。
2、利用hint技术 。若果可以的话用union all 替代union 。
3、不要用in , in(select ...)语句在数据库语言里面是很慢的语句,因为里面要做一个大查询 。
4、这个查询,将根据索引中的,快速的知道 Oracle 这个数据,在当前表里面有没有 如果有,在什么位置 。然后根据 位置 读取文件 (如果缓存里面已经有的,就不读取磁盘了),然后返回 。
5、第一个exists没什么用 , 因为是EIMS_GWQUERY_FW 表本身,我把语句注释掉给成了直接条件 。
ORACLE关联三表视图查询过慢问题,如何解决?1、这种情况有很多可能性 , 首先,你的服务器的负载情况会影响到你的数据读取速度的 , 如果数据库服务器执行的进程过多,会导致查询速度下降很多 。
2、如果数据量比较大,而且对数据的实时性要求不高,那么建议用oracle的物化视图来做 。物化视图是介于普通视图和表之间的一种oracle专有对象,物化视图会将查询的数据缓存起来 , 同时可以对物化视图进行修改、查询、删除和添加操作 。

推荐阅读