Как получить фактическое время выполнения пакета служб SSIS при использовании утилиты командной строки DTEXEC.EXE - PullRequest
0 голосов
/ 28 ноября 2018

Я выполняю один пакет служб SSIS, используя DTEXEC.EXE, как показано ниже

C: \ Program Files \ Microsoft SQL Server \ 140 \ DTS \ Binn> DTExec.exe / Server localhost / ISServer "\MyServer \ mypackage.dtsx "

После выполнения команды отображается следующая информация.

Started:  3:28:09 PM
Execution ID: 41165.
To view the details for the execution, right-click on the Integration Services Catalog, and open the [All Executions] report
Started:  3:28:09 PM
Finished: 3:28:09 PM
Elapsed:  0.172 seconds

Фактическое время выполнения пакета составило 20 минут, но« Истекшее время отображается как0,172 секунды.Есть ли возможность получить фактическое время выполнения при запуске пакета с помощью командной строки?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Когда вы запускаете пакеты служб SSIS из DTEXEC, они будут работать в режиме синхронного выполнения. Если , вы просите, чтобы они запускались из SSISDB.Затем вам нужно добавить дополнительный параметр к вашему вызову DTEXEC, равный /Par "$ServerOption::SYNCHRONIZED(Boolean)";True

. Я создал пакет с явным ожиданием 15 секунд и дважды запустил его с моего компьютера.

C:\Users\billinkc>dtexec /server .\dev2017 /ISServer "\ssisdb\So\JustWait\Package.dtsx"
Microsoft (R) SQL Server Execute Package Utility
Version 14.0.3037.1 for 32-bit
Copyright (C) 2017 Microsoft. All rights reserved.

Started:  7:41:06 AM
Execution ID: 161421.
To view the details for the execution, right-click on the Integration Services Catalog, and open the [All Executions] report
Started:  7:41:06 AM
Finished: 7:41:07 AM
Elapsed:  0.141 seconds

C:\Users\billinkc>dtexec /server .\dev2017 /ISServer "\ssisdb\So\JustWait\Package.dtsx" /Par "$ServerOption::SYNCHRONIZED(Boolean)";True
Microsoft (R) SQL Server Execute Package Utility
Version 14.0.3037.1 for 32-bit
Copyright (C) 2017 Microsoft. All rights reserved.

Started:  7:41:12 AM
Execution ID: 161422.
To view the details for the execution, right-click on the Integration Services Catalog, and open the [All Executions] report
Started:  7:41:12 AM
Finished: 7:41:30 AM
Elapsed:  18.39 seconds

Первое, выполнение по умолчанию, не занимает много времени, потому что оно передает ответственность самому SQL Server.Вторая заставляет нас получать сообщения в режиме реального времени и, таким образом, 15 секунд + время установки

0 голосов
/ 29 ноября 2018

То, что показано выше, является фактическим временем загрузки и выполнения пакета.Среда выполнения пакета - это то, что вы ищете.

Обычная практика - записывать строки в таблицу аудита. Вы запускаете пакет, записывая идентификатор и текущее время, имя и все, что вы хотите, в таблицу.(сообщения об ошибках и т. д.)

В конце пакета вы обновляете строку в БД с указанием времени окончания.

Вы можете запросить эту таблицу и сравнить время начала и окончания, чтобы найти общее времядля запуска пакета.

Пример таблицы аудита, которую мы обычно используем здесь;

USE [database]
GO


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[dim_audit](
    [AuditKey] [int] IDENTITY(1,1) NOT NULL,
    [ParentAuditKey] [int] NOT NULL,
    [TableName] [nvarchar](50) NOT NULL,
    [PkgName] [nvarchar](50) NOT NULL,
    [PkgGUID] [uniqueidentifier] NULL,
    [PkgVersionGUID] [uniqueidentifier] NULL,
    [PkgVersion] [nvarchar](50) NULL,
    [ExecStartDT] [datetime] NOT NULL,
    [ExecStopDT] [datetime] NULL,
    [ExecutionInstanceGUID] [uniqueidentifier] NULL,
    [ExtractRowCnt] [bigint] NULL,
    [InsertRowCnt] [bigint] NULL,
    [UpdateRowCnt] [bigint] NULL,
    [DeleteRowCnt] [bigint] NULL,
    [TableInitialRowCnt] [bigint] NULL,
    [TableFinalRowCnt] [bigint] NULL,
    [TableMaxSurrogateKey] [bigint] NULL,
    [SuccessfulProcessingInd] [nchar](1) NOT NULL,
 CONSTRAINT [PK_dim_audit] PRIMARY KEY CLUSTERED 
(
    [AuditKey] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
...