我可以看到谁在SQL Server上启动了当前正在运行的作业吗?

施密茨

最近,我们构建了一个小型应用程序,该应用程序允许最终用户远程启动SQL Server上的作业。为了确定作业是否已经在运行,我们使用以下查询:

SELECT 
    sj.job_id
    , name
FROM 
    msdb.dbo.sysjobactivity AS sja
    INNER JOIN msdb.dbo.sysjobs AS sj 
        ON sja.job_id = sj.job_id
WHERE 
    sja.start_execution_date IS NOT NULL
        AND sja.stop_execution_date IS NULL

这就像一个符咒,但在理想情况下,如果已经开始工作,我们还希望显示开始该工作的用户的ID /名称。

我检查了不同的sysjobs *表,但是无法找到任何可以让我们获取该信息的列。

我希望我只是忽略了一些东西,希望有人能够帮助我找出完成此任务的捷径。我的替代方法是在作业开始时添加一个自己的额外表,其中包含作业ID和用户名,然后以这种方式输入名称。

施密茨

我们最终建立了自己的表来存储要开始的作业的详细信息:

CREATE TABLE [dbo].[dwh_jobs](
    [job_id] [uniqueidentifier] NOT NULL,
    [started_by_user_name] [nvarchar](255) NOT NULL,
    [start_time] [datetime] NOT NULL,
    [end_time] [datetime] NULL,
    [run_time] [nvarchar](250) NULL,
    [rows_affected] [bigint] NULL DEFAULT ((0))
)

然后,我们创建了两个存储过程来记录正在启动的作业的开始和结束时间:

CREATE PROCEDURE [dbo].[usp_job_start]
    @job_id uniqueidentifier
    , @started_by_user_name nvarchar(255) 
    , @start_time datetime
AS 
BEGIN
    INSERT INTO msdb.dbo.dwh_jobs 
        (job_id, started_by_user_name, start_time, end_time, run_time, rows_affected)
    VALUES
        (@job_id, @started_by_user_name, @start_time, NULL, NULL, 0)
END

这是结束过程:

CREATE PROCEDURE [dbo].[usp_job_end]
    @job_id uniqueidentifier
    , @started_by_user_name nvarchar(255) 
    , @start_time datetime
    , @end_time datetime
    , @run_time nvarchar(255)
    , @rows_affected bigint
AS 
BEGIN
    UPDATE msdb.dbo.dwh_jobs 
    SET 
        end_time = @end_time
        , run_time = @run_time
        , rows_affected = @rows_affected
    WHERE
        job_id = @job_id
        AND started_by_user_name = @started_by_user_name
        AND start_time = @start_time
        AND end_time IS NULL
        AND run_time IS NULL
        AND rows_affected = 0
END;

最后,我们添加了一个proc来查找哪个用户开始了特定工作:

CREATE PROCEDURE [dbo].[usp_job_lookup_user]
    @job_id uniqueidentifier
    , @started_by_user_name nvarchar(255) OUTPUT
AS 
BEGIN
    SELECT 
        @started_by_user_name = started_by_user_name
    FROM
        msdb.dbo.dwh_jobs
    WHERE
        start_time = (SELECT MAX(start_time) FROM msdb.dbo.dwh_jobs 
            WHERE job_id = @job_id AND end_time IS NULL)

END;

这还不是很完美,因为还没有维护来清理未关闭的工作,但是它至少可以让我们找出哪个用户开始了特定工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以看到谁在我的SQL Server上启动了当前正在运行的作业吗?

来自分类Dev

我可以看到 cron 运行 @reboot 的作业列表吗?

来自分类Dev

我可以访问当前终端正在运行的 bash 配置文件的副本吗?

来自分类Dev

退出终端,运行“ nohup ./my_script&” =>“您正在运行作业”。可以退出吗?

来自分类Dev

可以添加当前正在运行的命令完成时要运行的命令吗?

来自分类Dev

我可以在正在运行的Oracle数据库上更改SHELL吗?

来自分类Dev

SQL * Plus可以从正在运行的机器上读取环境变量吗?

来自分类Dev

我可以在运行ping命令时看到汇总结果吗?

来自分类Dev

我可以监视谁在使用Mac OS X Internet共享吗?

来自分类Dev

我可以在Ubuntu上运行SQL Server吗?

来自分类Dev

我可以在Ubuntu上运行SQL Server吗?

来自分类Dev

如何在我的机器上找到当前正在运行的内核的来源?

来自分类Dev

当我尝试在YARN上运行pi-example时,Hadoop2.5.2陷入“正在运行的作业”中

来自分类Dev

当我尝试在YARN上运行pi-example时,Hadoop2.5.2陷入“正在运行的作业”中

来自分类Dev

我可以使用Facebook API获取有关谁在我的Facebook页面上发布的详细信息吗?

来自分类Dev

下次启动该功能时,我在哪里可以看到?

来自分类Dev

网站可以看到我的内部IP地址吗?

来自分类Dev

我可以看到聚合管道的部分结果如何吗?

来自分类Dev

我可以在html源代码中看到ViewStateUserKey吗?

来自分类Dev

我可以使C ++代码结构互相看到吗?

来自分类Dev

我可以在控制台中看到总是时间吗?

来自分类Dev

如果目录是文件,我可以看到该文件的内容吗?

来自分类Dev

我正在运行32位或64位Sql Server

来自分类Dev

气流重启会影响当前正在运行的作业吗?

来自分类Dev

可以在正在运行的服务器上安装“ netdata”吗?

来自分类Dev

在我的启动器应用程序中显示当前正在运行的应用程序的对话框

来自分类Dev

如何确保我正在运行当前的库存内核?

来自分类Dev

如何确保我正在运行当前的库存内核?

来自分类Dev

使用Grsync通过GUI设置备份作业,我可以看到它创建的rsync命令吗?

Related 相关文章

  1. 1

    我可以看到谁在我的SQL Server上启动了当前正在运行的作业吗?

  2. 2

    我可以看到 cron 运行 @reboot 的作业列表吗?

  3. 3

    我可以访问当前终端正在运行的 bash 配置文件的副本吗?

  4. 4

    退出终端,运行“ nohup ./my_script&” =>“您正在运行作业”。可以退出吗?

  5. 5

    可以添加当前正在运行的命令完成时要运行的命令吗?

  6. 6

    我可以在正在运行的Oracle数据库上更改SHELL吗?

  7. 7

    SQL * Plus可以从正在运行的机器上读取环境变量吗?

  8. 8

    我可以在运行ping命令时看到汇总结果吗?

  9. 9

    我可以监视谁在使用Mac OS X Internet共享吗?

  10. 10

    我可以在Ubuntu上运行SQL Server吗?

  11. 11

    我可以在Ubuntu上运行SQL Server吗?

  12. 12

    如何在我的机器上找到当前正在运行的内核的来源?

  13. 13

    当我尝试在YARN上运行pi-example时,Hadoop2.5.2陷入“正在运行的作业”中

  14. 14

    当我尝试在YARN上运行pi-example时,Hadoop2.5.2陷入“正在运行的作业”中

  15. 15

    我可以使用Facebook API获取有关谁在我的Facebook页面上发布的详细信息吗?

  16. 16

    下次启动该功能时,我在哪里可以看到?

  17. 17

    网站可以看到我的内部IP地址吗?

  18. 18

    我可以看到聚合管道的部分结果如何吗?

  19. 19

    我可以在html源代码中看到ViewStateUserKey吗?

  20. 20

    我可以使C ++代码结构互相看到吗?

  21. 21

    我可以在控制台中看到总是时间吗?

  22. 22

    如果目录是文件,我可以看到该文件的内容吗?

  23. 23

    我正在运行32位或64位Sql Server

  24. 24

    气流重启会影响当前正在运行的作业吗?

  25. 25

    可以在正在运行的服务器上安装“ netdata”吗?

  26. 26

    在我的启动器应用程序中显示当前正在运行的应用程序的对话框

  27. 27

    如何确保我正在运行当前的库存内核?

  28. 28

    如何确保我正在运行当前的库存内核?

  29. 29

    使用Grsync通过GUI设置备份作业,我可以看到它创建的rsync命令吗?

热门标签

归档