|
|
1
6
imho“interrupted”应替换为“killed”或“terminated”。中断的概念可能会令人困惑,因为我们可以假定它允许稍后恢复查询。 SQL标准不提供中断或终止正在运行的查询的方法,但我认识的每个DBMS都会实现kill命令或类似命令。例如,在mysql中,用户可以使用show[full]processlist查看所有正在运行的查询(以及它们的状态、查询ID等)。具有kill权限的用户可以终止查询。 大多数终止操作都是因为查询可能运行太长或正在阻塞其他查询,例如表缺少索引或磁盘已满。当您不关心结果时(例如用户取消了站点导航),通常Web服务器本身会中止进程,从而自行终止查询(不需要手动或程序员交互)。 |
|
|
2
5
我曾经使用过的所有RDBMS访问层都提供了一种异步取消正在运行的查询的取消方法。检查文档中是否有您正在使用的任何数据访问技术堆栈。.NET/ADO/JDBC提供“取消”方法。ODBC-SQLCancel。 显然,底层RDBMS供应商的数据访问驱动程序也必须实现该方法。 就取消的有用性而言,我倾向于批评任何经常使用它的计划。在我看来,更好的协调和/或设计将有助于缓解非行政需求。 这主要取决于RDBMS的内部、事务的性质和隔离方案。如果RDBMS使用乐观并发模型(即commit基本上是免费的),取消正在运行的查询可能会涉及一个潜在的昂贵的回滚操作。在最坏的情况下,运行一个小时直到取消点的查询可能需要一个小时才能回滚。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |