一个小问题~~~~

zhuyx808 2008-07-03 10:30:04
我先进行一个select查询,假如这个查询的时间超过了我设定的值,我怎么中断这个查询,比如:



select name from table1 (假设这个语句要执行很长时间)
//下面我怎么用语句直接得到这个select的spid?从而用kill命令直接把这个select干掉。用程序自动执行,不需要我去看~

...全文
95 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuyx808 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 M1CR0S0FT 的回复:]
如果楼主的需求是我说的那样的环境,推荐使用9楼的方法,把处理放在应用程序端去处理.
[/Quote]


关键是我在应用程序端结束掉那个线程的话,数据库的那个select会不会同时终止的问题,假如要是我终止了那个线程同时数据库的select也同时终止的话那这个就好办的多了
M1CR0S0FT 2008-07-03
  • 打赏
  • 举报
回复
如果楼主的需求是我说的那样的环境,推荐使用9楼的方法,把处理放在应用程序端去处理.
zhuyx808 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 pt1314917 的回复:]
引用 7 楼 zhuyx808 的回复:
引用 3 楼 zjcxc 的回复:
如果你写的是程序, 你可以为程序连接设置 CommandTimeOut
 
如果你是在查询分析器/Managent Studio, 则可以在"工具--选项"中设置查询超时时间



实际中是这样的,在我的页面查询中有时候他们输入的字符查询耗时比较长,容易造成表的死锁,我就想要是在查询的时候我来判断这个查询的时间,要是超过了我的这个限定,程序就自动执行某个语句来主动结束这个…
[/Quote]


我结束掉该线程是不是同时数据库就同时中断查询了?
yinqi025 2008-07-03
  • 打赏
  • 举报
回复
connectionstring中配置Connect Timeout=秒数 
pt1314917 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhuyx808 的回复:]
引用 3 楼 zjcxc 的回复:
如果你写的是程序, 你可以为程序连接设置 CommandTimeOut

如果你是在查询分析器/Managent Studio, 则可以在"工具--选项"中设置查询超时时间



实际中是这样的,在我的页面查询中有时候他们输入的字符查询耗时比较长,容易造成表的死锁,我就想要是在查询的时候我来判断这个查询的时间,要是超过了我的这个限定,程序就自动执行某个语句来主动结束这个查询,因为死锁什么的都是这个语句造成…
[/Quote]

那就在程序中用线程来做,用计时器来计算时间,当查询语句执行时间超过指定的时间,结束掉该线程。。
zhuyx808 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 M1CR0S0FT 的回复:]
如果不是上数据库去看的话,你需要再执行一个查询去查询sys.sysprocesses(2005是另外的视图)
然后,根据你的应用程序类型和你的SQL语句或者客户端IP等信息去获取该SPID,然后KILL.
[/Quote]


能不能举个例子啊
zhuyx808 2008-07-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zjcxc 的回复:]
如果你写的是程序, 你可以为程序连接设置 CommandTimeOut

如果你是在查询分析器/Managent Studio, 则可以在"工具--选项"中设置查询超时时间
[/Quote]


实际中是这样的,在我的页面查询中有时候他们输入的字符查询耗时比较长,容易造成表的死锁,我就想要是在查询的时候我来判断这个查询的时间,要是超过了我的这个限定,程序就自动执行某个语句来主动结束这个查询,因为死锁什么的都是这个语句造成的,设置commandtimeout时间的话,假如这个时候表死锁了,后面的一系列语句全部都杜塞在哪里,有可能数据库本身结束的命令不是引起问题的那个语句,这点还请老大多多指教~
lff642 2008-07-03
  • 打赏
  • 举报
回复
如果你是在查询分析器/Managent Studio, 则可以在"工具--选项"中设置查询超时时间
pxpsoft 2008-07-03
  • 打赏
  • 举报
回复
关注
M1CR0S0FT 2008-07-03
  • 打赏
  • 举报
回复
如果不是上数据库去看的话,你需要再执行一个查询去查询sys.sysprocesses(2005是另外的视图)
然后,根据你的应用程序类型和你的SQL语句或者客户端IP等信息去获取该SPID,然后KILL.
zjcxc 2008-07-03
  • 打赏
  • 举报
回复
如果你写的是程序, 你可以为程序连接设置 CommandTimeOut

如果你是在查询分析器/Managent Studio, 则可以在"工具--选项"中设置查询超时时间
pt1314917 2008-07-03
  • 打赏
  • 举报
回复
没试过```
可以在应用程序中用线程试试```
nzperfect 2008-07-03
  • 打赏
  • 举报
回复
可以为单个进程的单条sql指定超时时间?

22,209

社区成员

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

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