日期:2014-05-18  浏览次数:20528 次

很奇怪的问题,想不通!!!!
我做了一个视图,这个视图比较复杂一点,有表与其它视图之间的连接,还有几个UDF进行一些计算,其中有一个smalldatetime型字段.

查询整个结果集现在只有1W(以后会增长),用时差不多一秒,但如果带有日期条件进行查询,则速度奇慢(查询一天的334条符合条件的记录需要4分46秒的时间),另人无法忍受,想不通是什么原因,望达人解我之惑.

谢谢先.




------解决方案--------------------
你的按日期查询的条件是怎样的?
------解决方案--------------------
手工更新下表的统计信息试试:

UPDATE STATISTICS
在指定的表或索引视图中,对一个或多个统计组(集合)有关键值分发的信息进行更新。若要基于列生成统计,请参见 CREATE STATISTICS。

语法
UPDATE STATISTICS table | view
[
index
| ( statistics_name [ ,...n ] )
]
[ WITH
[
[ FULLSCAN ]
| SAMPLE number { PERCENT | ROWS } ]
| RESAMPLE
]
[ [ , ] [ ALL | COLUMNS | INDEX ]
[ [ , ] NORECOMPUTE ]
]

------解决方案--------------------
感觉记录不多,可以适当的在某些字段上建立一些索引。
------解决方案--------------------
有表与其它视图之间的连接

问题关键在这里。把该表,以及该视图涉及的表都建立相应的索引就可以了
------解决方案--------------------
难道你这个日期的字段有比较多的计算?
------解决方案--------------------
楼主可以在查询分析器中按Ctrl+L来查执行计划效率多少。
这样也许能找到原因。
还有使用多种时间格式来查询分析看看原因在哪里。


------解决方案--------------------
把smalldatetime转换成int储存吧