如何在不终止CLP的情况下取消或终止DB2CLP中长期运行的查询?

如何在不终止CLP的情况下取消或终止DB2CLP中长期运行的查询?,db2,command-line-interface,terminate,Db2,Command Line Interface,Terminate,假设我开始使用CLP在IBMDB2数据库中执行低效且长时间运行的查询。可能存在一些糟糕的连接,它们占用了数据库中大量的处理时间。也许我还没有最需要的索引 如何在不终止DB2 CLP的情况下取消对该语句/查询的处理?我可以通过终止它来实现,也就是说,按Ctrl-C: 但还有其他更优雅的方式吗?也许是另一个快捷键?我已经看到了,但它没有谈论我想要什么。好吧,没有CTRL键来终止CLP。您可以选择打开另一个终端会话并使用LIST/FORCE应用程序,按住CTRL-Z键并使用CLP将其挂起,然后使用另一

假设我开始使用CLP在IBMDB2数据库中执行低效且长时间运行的查询。可能存在一些糟糕的连接,它们占用了数据库中大量的处理时间。也许我还没有最需要的索引

如何在不终止DB2 CLP的情况下取消对该语句/查询的处理?我可以通过终止它来实现,也就是说,按Ctrl-C:


但还有其他更优雅的方式吗?也许是另一个快捷键?我已经看到了,但它没有谈论我想要什么。

好吧,没有CTRL键来终止CLP。您可以选择打开另一个终端会话并使用LIST/FORCE应用程序,按住CTRL-Z键并使用CLP将其挂起,然后使用另一个CLP来LIST/FORCE,或者使用GUI工具(如Data Server Manager)查找应用程序并强制其终止

db2 list applications for <database>
db2 force application ( application-handle )

请参阅和。

AFAIK,没有CTRL键来终止CLP。您可以选择打开另一个终端会话并使用LIST/FORCE应用程序,按住CTRL-Z键并使用CLP将其挂起,然后使用另一个CLP来LIST/FORCE,或者使用GUI工具(如Data Server Manager)查找应用程序并强制其终止

db2 list applications for <database>
db2 force application ( application-handle )

请参阅和。

您是否希望使用中的QueryTimeout配置

这样,您的命令将停止并报告
SQLSTATE 57013

-913 UNSUCCESSFUL EXECUTION CAUSED BY DEADLOCK OR TIMEOUT.

您是否希望使用中的QueryTimeout配置

这样,您的命令将停止并报告
SQLSTATE 57013

-913 UNSUCCESSFUL EXECUTION CAUSED BY DEADLOCK OR TIMEOUT.

与其直接使用CLP,为什么不直接从UNIX提示符开始

db2 "select * from view_with_inefficient_long_running_query"

您可以点击
Ctrl-C
取消查询。到数据库的连接由DB2后端进程(
db2bp
)维护,您可以获得在UNIX shell中工作的所有好处—卓越的历史记录、命令管道等。

与其直接使用CLP,为什么不直接从UNIX提示符开始

db2 "select * from view_with_inefficient_long_running_query"


您可以点击
Ctrl-C
取消查询。与数据库的连接由DB2后端进程(
db2bp
)维护,您可以获得在UNIX shell中工作的所有好处—卓越的历史记录、命令管道等。

我这样做会带来伤害。我会放弃视图关闭CLP有什么问题?@danny117视图只是一个示例场景。这与实际问题无关。@IanBjorhovde不雅观,出口不干净,失去了历史,不得不再次进入中电。我知道这只是一个例子。我确实喜欢下面的超时方法。我认为是一种高级语言或者更高级的中介程序在处理查询。当我这样做的时候,会很痛苦。我会放弃视图关闭CLP有什么问题?@danny117视图只是一个示例场景。这与实际问题无关。@IanBjorhovde不雅观,出口不干净,失去了历史,不得不再次进入中电。我知道这只是一个例子。我确实喜欢下面的超时方法。我认为应该使用高级语言或更高级的代理来处理查询。不,这需要服务器配置。我正在寻找CLP功能。不,这需要服务器配置。我正在寻找CLP功能。这需要我打开另一个终端会话,连接第二个CLP并查找“有问题”的数据库会话。我能不能在第一个会话中按Ctrl-(某个键)停止查询?我建议您查看知识中心的CLP部分:对于这个问题没有任何有用的内容。所以我所要求的是根本不可能的?好吧,没有CTRL-来终止CLP。您可以选择打开另一个终端会话并使用LIST/FORCE应用程序,按住CTRL-Z键并使用CLP将其挂起,然后使用另一个CLP来LIST/FORCE,或者使用GUI工具(如Data Server Manager)查找应用程序并强制其终止。我想我必须接受这一点。你能在回答的顶部加上你最后的评论吗?按住Ctrl-Z键挂起当前CLP并启动另一个CLP(终止第一个CLP的查询)是一个好主意。然后我可以退出第二个CLP并返回第一个CLP。这是最接近我想要的-没有服务器配置,不需要另一个终端会话,保留历史记录,仅终止查询(不是整个过程)。这需要我打开另一个终端会话,连接第二个CLP并查找“有问题”的数据库会话。我能不能在第一个会话中按Ctrl-(某个键)停止查询?我建议您查看知识中心的CLP部分:对于这个问题没有任何有用的内容。所以我所要求的是根本不可能的?好吧,没有CTRL-来终止CLP。您可以选择打开另一个终端会话并使用LIST/FORCE应用程序,按住CTRL-Z键并使用CLP将其挂起,然后使用另一个CLP来LIST/FORCE,或者使用GUI工具(如Data Server Manager)查找应用程序并强制其终止。我想我必须接受这一点。你能在回答的顶部加上你最后的评论吗?按住Ctrl-Z键挂起当前CLP并启动另一个CLP(终止第一个CLP的查询)是一个好主意。然后我可以退出第二个CLP并返回第一个CLP。它与我想要的最接近-无需服务器配置,无需另一个终端会话,保留历史记录,仅终止查询(不是整个过程)。那么
+c-m
呢?我必须为每个查询键入它吗?不,您可以设置使用
UPDATE命令选项
语句(以交互方式更改它们),和/或您可以设置
DB2OPTIONS
环境变量作为默认值。那么
+c-m
呢?我是否必须为每个查询键入它?否,您可以设置使用
UPDATE命令选项
语句(以交互方式更改它们),和/或您可以为默认值设置
DB2OPTIONS
环境变量。