- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(我需要以下内容的原因并不重要)
我想要做的是调整以下内容,以便它执行存储过程,这通常需要 30 分钟,但该过程会在 60 秒的设定时间后停止 - 实际上与我在 SSMS
运行该程序并在 60 秒后按取消按钮。
我不想重新配置整个数据库,以便其他所有长时间运行的存储过程在 30 秒后超时 - 只有特定过程 TESTexecuteLongRunningProc
。
这里是被调用的测试过程:
CREATE PROCEDURE [dbo].[TESTlongRunningProc]
AS
BEGIN
--placeholder that represents the long-running proc
WAITFOR DELAY '00:30:00';
END;
这是我想要调整的过程,以便它在 60 秒后自行取消:
CREATE PROCEDURE [dbo].[TESTexecuteLongRunningProc]
AS
BEGIN
EXECUTE WH.dbo.TESTlongRunningProc;
-->>here I would like some code that cancels TESTexecuteLongRunningProc after 60 seconds
END;
最佳答案
本质上,您可以创建一个单独的进程来监视后台的特定任务和指标,并在必要时终止。让我们首先将跟踪设备植入您想要跟踪的代码中。我使用了带有关键词“杀了我”的评论 block 。您可以在原始代码中放置类似的内容
CREATE PROCEDURE TrackedToKill
-- EXEC TrackedToKill
/* Comment Block tracking device: Kill Me*/
AS
BEGIN
DECLARE @Counter bigint = 0
WHILE 1 = 1
BEGIN
SET @Counter = @Counter + 1
WAITFOR DELAY '00:00:30'
END
END
然后让我们看看是否可以找到正在运行的 session
SELECT session_id,
command,database_id,user_id,
wait_type,wait_resource,wait_time,
percent_complete,estimated_completion_time,
total_elapsed_time,reads,writes,text
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text (sys.dm_exec_requests.sql_handle)
WHERE text LIKE '%Kill Me%'
AND session_id <> @@SPID
好的,这应该会返回与您的跟踪设备的 session 。然后,我们可以将其转换为另一个存储过程,该存储过程将根据跟踪设备和您可能需要的任何其他标准终止您的进程。您可以手动启动它,也可以在启动时使用 SQL 代理启动它。包括您需要的尽可能多的附加条件,以确保限制您要终止的范围(即尚未回滚的用户、数据库、 block 或进程)。
CREATE PROCEDURE HunterKiller
-- EXEC HunterKiller
AS
BEGIN
DECLARE @SessionToKill int
DECLARE @SQL nvarchar(3000)
WHILE 1=1
BEGIN
SET @SessionToKill = (SELECT TOP 1 session_id
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text (sys.dm_exec_requests.sql_handle)
WHERE session_id <> @@SPID
AND text LIKE '%Kill Me%'
AND total_elapsed_time >= 15000)
SET @SQL = 'KILL ' + CONVERT(nvarchar,@SessionToKill)
EXEC (@SQL)
WAITFOR DELAY '00:00:05'
END
END
关于sql-server - 强制特定存储过程在 30 秒后停止 : I do not want to reconfigure the timeout of the whole DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32070119/
使用 C#、.NET Core 3.1 我在 startup.cs 中添加了一个单例 httpclient: services.AddHttpClient().ConfigurePrimaryHttp
我需要在我的生产服务器上运行以下命令: EXEC sp_configure 'xp_cmdshell', 1; GO RECONFIGURE; GO 我的问题是,在生产环境中运行这个命令有什么危
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwa
文章在这里 http://en.wikipedia.org/wiki/Reconfigurable_computing#Example_of_a_streaming_model_of_computat
我想默认“接受”新证书。我尝试了以下方法。 $ dpkg-reconfigure -f noninteractive ca-certificates 它运行,但没有添加 CA。 如果不行,直接修改/e
我遇到了错误 Can't call reconfigure() on a recycled bitmap 使用 Glide 库加载图像时。 5 次中有 1 次出现此错误。图片大小约为 1.5MB。 我
我在 Ubuntu 16.04 服务器上设置了一个综合包 gitlab-ce 版本 8.12.7。我运行了 sudo gitlab-ctl reconfigure 并且第一次运行良好。然后我从我从 8
我正在 Vagrant box (Debian 18.04 LTS) 中安装 Gitlab-ce Omnibus。在我的供应脚本中,我运行 gitlab-ctl reconfigure。我得到一个错误
我正在尝试将我的 Java WindowBuilder SWT 应用程序重新配置为 64 位,而不是 32 位。 我的开发机器是Windows(Win7,64位),但代码也需要在CENTOS上运行。一
我正在创建一个 extjs 网格面板,它有一组用户可配置的列。 Ext.grid.Panel组件为此目的提供了一个方便的 reconfigure(store, columns) 方法。 此方法可按预期
(我需要以下内容的原因并不重要) 我想要做的是调整以下内容,以便它执行存储过程,这通常需要 30 分钟,但该过程会在 60 秒的设定时间后停止 - 实际上与我在 SSMS 运行该程序并在 60 秒后按
我正在将一些 ExtJS 4 的内容迁移到 ExtJS 5.1。我有一个网格,它从服务器获取元数据并在元更改事件上重新配置存储: store: Ext.create('Ext.data.Store',
我正在尝试让 VirtualBox 在内核 3.2.0-49-generic 的 ElementaryOS 上工作。我一直收到此错误: WARNING: The character device /d
我一直在修改 Linux 无线驱动程序 (ath9k) 以实现通知 channel 宽度操作框架。 需要做的一件事是在不中断数据传输的情况下在 HT20 和 HT40 之间更改 STATION 的 c
这是我第三次在服务器上安装 gitlab 并且以前从未出现过问题。 在处理 12.9.0 上的问题后,我决定重新安装 gitlab-ce ( 12.10.0 )。 在安装新版本之前,我已确保删除所有
我是一名优秀的程序员,十分优秀!