很奇怪的问题,想不通!!!!

BillTuan 2007-05-17 05:53:36
我做了一个视图,这个视图比较复杂一点,有表与其它视图之间的连接,还有几个UDF进行一些计算,其中有一个smalldatetime型字段.

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

谢谢先.


...全文
288 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
suifix 2007-05-20
  • 打赏
  • 举报
回复
把smalldatetime转换成int储存吧
BillTuan 2007-05-19
  • 打赏
  • 举报
回复
没有基于这个日期的计算的.

这个日期仅是一个单据的开单日期而已.
xiaoku 2007-05-19
  • 打赏
  • 举报
回复
难道你这个日期的字段有比较多的计算?
BillTuan 2007-05-19
  • 打赏
  • 举报
回复
这个视图相关的表中有两个比较大一点,一个有54W多条记录,一个有7W多条记录.
感觉表的索引该建的都应该建了的,这一点可以从对整个视图进行检索的速度只需一秒钟左右的时间这点得到证实.

这个日期字段是一个单据的开单日期,只要有基于这个日期的查询条件,其查询速度就慢得不行~

这个视图可能是太复杂了点,我目前解决这个问题的思路是增加一个表用来简化这个视图,但这个问题的根源还没有搞清,所以这个帖子暂时不结,希望看到更多人的看法.

谢谢上面各位的参与.
rym1020 2007-05-19
  • 打赏
  • 举报
回复
有表与其它视图之间的连接

问题关键在这里。把该表,以及该视图涉及的表都建立相应的索引就可以了
BillTuan 2007-05-19
  • 打赏
  • 举报
回复
复楼上:
查询计划中不带日期条件查询和带日期条件查询几乎完全一样,看不出问题所以.

Andy-W 2007-05-19
  • 打赏
  • 举报
回复
楼主可以在查询分析器中按Ctrl+L来查执行计划效率多少。
这样也许能找到原因。
还有使用多种时间格式来查询分析看看原因在哪里。

xiaoku 2007-05-18
  • 打赏
  • 举报
回复
感觉记录不多,可以适当的在某些字段上建立一些索引。
wgsasd311 2007-05-17
  • 打赏
  • 举报
回复
手工更新下表的统计信息试试:

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

语法
UPDATE STATISTICS table | view
[
index
| ( statistics_name [ ,...n ] )
]
[ WITH
[
[ FULLSCAN ]
| SAMPLE number { PERCENT | ROWS } ]
| RESAMPLE
]
[ [ , ] [ ALL | COLUMNS | INDEX ]
[ [ , ] NORECOMPUTE ]
]
BillTuan 2007-05-17
  • 打赏
  • 举报
回复
where formdate='2007-05-05'
gahade 2007-05-17
  • 打赏
  • 举报
回复
你的按日期查询的条件是怎样的?
BillTuan 2007-05-17
  • 打赏
  • 举报
回复
把整个查询结果集生成一个临时的表,再从这个临时表中查一天的记录,用时为0秒.

试着在视图中对该日期字段进行排序,也没有解决这个问题!

郁闷中...

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧