SQL:中断查询

前端之家收集整理的这篇文章主要介绍了SQL:中断查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用专有的非sql数据库进行了一个项目,其中查询可能被中断,并且在代码库中有很多地方使用了该功能并且非常有意义(例如,停止长时间运行的查询被取消用户,或者当一个更新的查询发生并使之前的查询过时等等时,我意识到我以前从未真正看到过那种“中断的查询”,并认为它可以提出一个很好的问题(几个问题,但是他们都完全相同():

> SQL查询可以被中断吗?
>这是sql标准的一部分吗?
>如果它不是sql标准的一部分,哪些sql DB允许查询被中断(任何最受欢迎的例子)?
>中断数据库查询(sql或不是sql)是否常见,你知道你不再关心结果了? (在我工作的代码库中,它肯定有助于减轻服务器的负载)

解决方法

Imho“中断”应该被’杀死’或’终止’取代.中断的概念可能会令人困惑,因为人们可能会认为它将允许稍后恢复查询.

sql标准没有提供中断或终止正在运行的查询方法,但我知道的每个DBMS都实现了KILL命令或类似命令.例如,在MySQL中,用户可以使用SHOW [FULL] PROCESSLIST来查看所有正在运行的查询(及其状态,查询ID等).具有KILL权限的用户可以终止查询.

大多数KILL都会发生,因为查询可能会运行太长时间或阻止其他查询,例如.表缺少索引或磁盘已满.当您不关心结果时(例如,用户取消了网站导航),网络服务器本身通常会中止该过程,从而中止查询(无需手动或程序员交互)

猜你在找的MsSQL相关文章