为什么我在查询分析器里执行时,没有时间限制,而在控制台里用同样的代码建一个试图或写在存储过程里都会超时呢·········

tanbi52 2003-09-11 08:35:24
如题
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanbi52 2003-09-17
  • 打赏
  • 举报
回复
to tjan:

我也很想在视图上建索引,但老是提示:
不行啊,怎么老是提示 :"it contians one or more disallowed column"
请指点(不好意思,又麻烦你了,答完就给分)
tjan 2003-09-15
  • 打赏
  • 举报
回复
因为 group by 也会使用索引,索引按照 HTLH、JLR 顺序建,group by 会使用这个索引,where 子句也使用这个索引,如果索引反过来建,where 子句会使用这个索引,但 group by 不使用这个索引。
如果你的基表数据基本不变,你可以在视图上建索引。
tanbi52 2003-09-13
  • 打赏
  • 举报
回复
我也应该可以在试图上直接建索引吧,但每次建时,都会提示错误
还有,请问:为何条件里,jlr放在htlh前,速度会慢一些呢
romail 2003-09-12
  • 打赏
  • 举报
回复
是这样的,大概是因为查询分析器是用于调试程序用的,不考虑时间问题,而在控制台内的操作被认为是用户的操作,不能允许它长时间占用服务器吧
tjan 2003-09-12
  • 打赏
  • 举报
回复
把代码帖出来看看
tjan 2003-09-12
  • 打赏
  • 举报
回复
在视图 inputbom_ht02 的基表的 HTLH、JLR 列上创建一个复合索引,并把你的 where 子句修改为下面的样子:
WHERE HTLH>=@STHTLH and HTLH<=@EDHTLH
and JLR>=@QCDATE and JLR<=@EDDATE

tanbi52 2003-09-12
  • 打赏
  • 举报
回复
就是先对一个有着好几万条记录的试图先按合同料号进行江总一个数值型字段,它就会超时:

INSERT INTO #lpbhtlbjybjtempdata_0 (HTLH,HTJY)
SELECT HTLH, SUM(HTYL)
FROM INPUTBOM_HT02
WHERE JLR>=@QCDATE and JLR<=@EDDATE
and HTLH>=@STHTLH and HTLH<=@EDHTLH
GROUP BY HTLH
说明:inputbom_ht02为有着几万笔记录的试图

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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