oracle 查询语句条件多速度会快些吗?
展开全部
因为Oracle执行时有一个特性:已经执行过一遍的sql,再次执行时,Oracle不会重复查询数据,而是会直接调用上一次查询的结果,所以速度会快上很多。
你的问题我也没太看明白,写的太不清楚了,不过大体意思应该跟上面的原理有关系。第一次执行存储过程时,procedure里的sql已经执行过一遍,得出结果A,再次在该存储过程上加上条件进行查询的话,那么Oracle不会重复执行sql,而是直接在A的基础上进行二次查询,所以速度会快上很多。而不是你所理解的查询条件越多,速度越快。
查询条件的多寡和执行速度不一定挂钩,如果查询条件中的字段有索引,自然速度快,没有的话,就很慢了。说白了,查询条件速度是和索引挂钩的。
希望对你有所帮助
针对补充:其实你说的还是有点糊度-
-
对于数据库的查询速度而言,影响查询时间的主要因素并不是查询条件的多寡,而是IO接口的传输数据的速度,因为数据库的自查时间远小于IO的传输时间。你查询出的最终结果数量比较少,那么IO需要传输的数据少,自然速度快;如果数据多,那么IO接口需要传输的数据量大,速度自然降下来了……所以如果条件可以的话,还是多加点限制条件比较好,这样Oracle的反应速度快点。
你的问题我也没太看明白,写的太不清楚了,不过大体意思应该跟上面的原理有关系。第一次执行存储过程时,procedure里的sql已经执行过一遍,得出结果A,再次在该存储过程上加上条件进行查询的话,那么Oracle不会重复执行sql,而是直接在A的基础上进行二次查询,所以速度会快上很多。而不是你所理解的查询条件越多,速度越快。
查询条件的多寡和执行速度不一定挂钩,如果查询条件中的字段有索引,自然速度快,没有的话,就很慢了。说白了,查询条件速度是和索引挂钩的。
希望对你有所帮助
针对补充:其实你说的还是有点糊度-
-
对于数据库的查询速度而言,影响查询时间的主要因素并不是查询条件的多寡,而是IO接口的传输数据的速度,因为数据库的自查时间远小于IO的传输时间。你查询出的最终结果数量比较少,那么IO需要传输的数据少,自然速度快;如果数据多,那么IO接口需要传输的数据量大,速度自然降下来了……所以如果条件可以的话,还是多加点限制条件比较好,这样Oracle的反应速度快点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询