【问题标题】:SSIS : Execute SQL Server Agent Job Task run Asychronously or SynchronouslySSIS:执行 SQL Server 代理作业任务异步或同步运行
【发布时间】:2019-04-20 00:22:46
【问题描述】:

在 SSIS 中“执行 SQL Server 代理作业任务”,在 SSIS 中同步运行还是异步运行?

(a) 同步:意思是job触发并等待完成,然后进行下一步,

(b) 异步:还是直接触发,直接进入下一步?

【问题讨论】:

    标签: sql sql-server ssis sql-server-2017


    【解决方案1】:

    它异步运行 - 触发后忘记

    您可以通过以下方式轻松验证此行为。

    SQL 代理作业

    此作业执行名为 WAITFOR 的 TSQL 命令。我指定等待 15 秒。自行运行作业,在 16 秒或更短的时间内,您应该在作业历史记录报告中有一个条目显示作业已成功运行。

    USE msdb;
    GO
    
    DECLARE @jobId binary(16);
    
    EXEC msdb.dbo.sp_add_job
        @job_name = N'Run for 15 seconds'
    ,   @enabled = 1
    ,   @notify_level_eventlog = 0
    ,   @notify_level_email = 2
    ,   @notify_level_page = 2
    ,   @delete_level = 0
    ,   @category_name = N'[Uncategorized (Local)]'
    ,   @owner_login_name = N'sa'
    ,   @job_id = @jobId OUTPUT;
    
    SELECT
        @jobId;
    GO
    
    EXEC msdb.dbo.sp_add_jobserver
        @job_name = N'Run for 15 seconds'
    ,   @server_name = N'BUCKLAND\DEV2017';
    GO
    
    USE msdb;
    GO
    
    EXEC msdb.dbo.sp_add_jobstep
        @job_name = N'Run for 15 seconds'
    ,   @step_name = N'Wait for it'
    ,   @step_id = 1
    ,   @cmdexec_success_code = 0
    ,   @on_success_action = 1
    ,   @on_fail_action = 2
    ,   @retry_attempts = 0
    ,   @retry_interval = 0
    ,   @os_run_priority = 0
    ,   @subsystem = N'TSQL'
    ,   @command = N'WAITFOR DELAY ''00:00:15'';'
    ,   @database_name = N'master'
    ,   @flags = 0;
    GO
    
    USE msdb;
    GO
    
    EXEC msdb.dbo.sp_update_job
        @job_name = N'Run for 15 seconds'
    ,   @enabled = 1
    ,   @start_step_id = 1
    ,   @notify_level_eventlog = 0
    ,   @notify_level_email = 2
    ,   @notify_level_page = 2
    ,   @delete_level = 0
    ,   @description = N''
    ,   @category_name = N'[Uncategorized (Local)]'
    ,   @owner_login_name = N'sa'
    ,   @notify_email_operator_name = N''
    ,   @notify_page_operator_name = N'';
    GO
    

    SSIS 包

    我创建了一个 SSIS 包,添加了一个 Execute SQL Server Agent Job Task 类型的任务并将其指向服务器和作业。我运行了它,whoosh 包在两秒钟内成功完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多