同一个sql语句,当改变条件中的值时查询速度慢了好几十倍,只是为什么?
对一个视图做查询 ,sql语句简单描述如下:
select field1,field2,…… from view_tb where condition1 and rtype = '1' 执行时间 0.01秒
select field1,field2,…… from view_tb where condition1 and rtype = '2' 执行时间 21秒
这是为什么? 有没有那位遇见过同样的问题,希望能交流一下。
谢谢!
问题点数:0、回复次数:10Top
1 楼uuxiaoli(SQL你在何方)回复于 2005-06-04 16:52:28 得分 0
查询的速度会受数据量影响
可能原因是包含rtype = '2' 的记录比rtype = '1'Top
2 楼ejason(忏悔一生)回复于 2005-06-04 16:55:06 得分 0
数据表有多大了?
打开分析开关或CTRL+L分析即可得出答案Top
3 楼systemInput()回复于 2005-06-04 17:32:52 得分 0
to :uuxiaoli(SQL你在何方) 刚好相反 rtype = '2' 数据还没有20条
但是 rtype 为1 的有 5000多条
这个视图 才5000多条数据。Top
4 楼systemInput()回复于 2005-06-04 17:34:48 得分 0
我看了执行计划 两句的执行计划都一样的。可是结果 一个要不到1秒 一个却要 21 秒Top
5 楼uuxiaoli(SQL你在何方)回复于 2005-06-05 13:19:21 得分 0
20条数据,需要21秒,这么费时间.
不要用视图,直接写t_SQL查询一下,结果会怎么样.
分析一下执行计划,查询开销的时间在哪个数据表Top
6 楼systemInput()回复于 2005-06-05 16:15:44 得分 0
我发现这种现象时好时坏。不知为什么?Top
7 楼gdczch(一个好好人)回复于 2005-06-05 23:27:32 得分 0
接一下,
想请问uuxiaoli(SQL你在何方) 要在哪里才能看到你所说的"分析一下执行计划,查询开销的时间在哪个数据表"???Top
8 楼systemInput()回复于 2005-06-06 14:43:54 得分 0
gdczch(一个好好人) 只要你 按 CTRL+L 在原先现实查询结果的地方就会显示查询计划。Top
9 楼tony0115(下辈子不做技术!)回复于 2005-06-06 14:47:49 得分 0
你把两句都选中,然后按 Ctrl+L
看看百分比,看看哪里不一样?Top
10 楼cemma(佩)回复于 2005-06-06 15:04:57 得分 0
把完整的查询条件贴出来看,是不是你标记为CONDITION的条件与 RTYPE=‘1’有交集?Top




