Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkah Anda memantau eksekusi paket SSIS, dalam BIDS, saat dijalankan di server?

Opsi yang memungkinkan:

Anda perlu menggunakan Logging fitur di SSIS. Ini memungkinkan Anda untuk mengonfigurasi acara yang ingin Anda tangkap pesannya. Saya biasanya lebih suka log OnWarning dan OnError untuk melacak semua pesan peringatan dan kesalahan yang terjadi dalam paket. Anda memiliki berbagai penyedia untuk menyimpan data logging. Saya lebih suka menggunakan SQL Server sehingga saya dapat menanyakan informasi logging.

Opsi logging ditampilkan dari SSIS 2012:

Untuk mengaktifkan logging dalam sebuah paket, Anda perlu mengklik paket Business Intelligence Development Studio (BIDS) jika Anda mengembangkan paket di SSIS 2005 - 2008 R2 atau SQL Server Data Tools (SSDT) jika Anda mengembangkan paket di SSIS 2012.

Klik SSIS menu lalu klik Logging...

Anda akan melihat dialog Konfigurasikan Log SSIS.

Di sisi kiri, Anda dapat memeriksa paket atau tugas individu untuk mencatat data acara.

Di Penyedia dan Log tab, Anda dapat memilih penyedia yang sesuai untuk menyimpan informasi log. Tangkapan layar di bawah ini menunjukkan bahwa informasi acara ditangkap dalam database SQL Server menggunakan manajer koneksi OLEDB_PracticeDB .

Di Rincian tab, Anda dapat memilih acara mana yang ingin Anda tangkap. Tangkapan layar di bawah ini menunjukkan bahwa saya merekam peristiwa berikut.

  • OnError
  • Informasi
  • OnTaskFailed
  • Peringatan

Terima kasih kepada @William Todd Salzman untuk merekomendasikan OnTaskFailed acara

Contoh ilustrasi paket:

Katakanlah kita memiliki sebuah paket bernama SO_15004109.dtsx dengan Tugas Aliran Data dan Tugas Skrip . Tugas Aliran Data hanyalah boneka tanpa komponen di dalamnya.

Tugas skrip memiliki kode berikut dalam metode Utama untuk mengaktifkan informasi khusus, peringatan, dan pesan kesalahan sehingga kami dapat mengamati bagaimana hal itu ditangkap di sumber data logging. Kode ini ditulis untuk SSIS 2012 sehingga Anda mungkin perlu mengubahnya untuk SSIS 2005. Saya memilih VB.NET bukannya C# karena Anda telah menandai pertanyaan ini di bawah dan SSIS 2005 hanya mendukung VB.NET.

Kode Tugas Skrip di VB.NET untuk SSIS 2005 dan yang lebih baru.

#Region "Imports"
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
#End Region

<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute()> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
    Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

    Public Sub Main()

        Dim fireAgain As Boolean = False
        Dts.Events.FireInformation(101, "Custom Script Information", "This is a test information message.", String.Empty, 0, fireAgain)
        Dts.Events.FireWarning(201, "Custom Script Warning", "This is a test warning message.", String.Empty, 0)
        Dts.Events.FireError(201, "Custom Script Error", "This is a test error message.", String.Empty, 0)

        Dts.TaskResult = ScriptResults.Success
    End Sub

#Region "ScriptResults declaration"
   
    Enum ScriptResults
        Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
        Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    End Enum

#End Region

End Class

Jika kami menjalankan paket, itu akan gagal karena kami memunculkan kesalahan dalam Tugas Skrip .

Jika Anda menavigasi ke sumber data tempat Anda mencatat kesalahan, Anda akan melihat bahwa SSIS membuat tabel untuk mencatat informasi jika Anda memilih penyedia pengelogan SQL Server. Tabel di bawah ini mencantumkan tabel logging yang dibuat SSIS dalam database SQL Server yang dipilih sebagai penyedia log.

SSIS Version   Log table name    Table type
-------------- ----------------  ----------
SSIS 2005      dbo.sysdtslog90   User
SSIS 2008      dbo.sysdtslog100  User
SSIS 2008 R2   dbo.sysssislog    System
SSIS 2012      dbo.sysssislog    System

Kueri di bawah ini dieksekusi dalam database untuk melihat peristiwa yang ditangkap oleh paket sampel ini. Anda akan melihat beberapa pesan dua kali karena peristiwa dicatat untuk setiap wadah dan tugas. Tabel tersebut bernama dbo.sysssislog karena paket dibuat di SSIS 2012.

select id, event, source, message from dbo.sysssislog;

Pengalaman pribadi dengan logging:

Saya telah cukup sukses hanya dengan melihat pesan kesalahan logging untuk memahami apa yang salah. Men-debug paket di lingkungan produksi tidak disarankan, menurut saya. Namun, merekam peristiwa log lebih disukai.

Ketika saya bekerja di SSIS 2005 dan 2008, saya telah membuat laporan berbasis SSRS yang menanyakan tabel log untuk menghasilkan laporan harian dari pelaksanaan pekerjaan dan mengirim lampiran PDF ke orang yang berkepentingan.

Banyak hal telah ditingkatkan di SSIS 2012 karena alat ini dilengkapi dengan kemampuan pelaporan bawaan dengan Katalog Layanan Integrasi yang membuat database bernama SSIDB .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jenis Kursor SQL Server - Kursor KEYSET | Tutorial SQL Server / Tutorial TSQL

  2. Menghindari kursor untuk memperbarui banyak catatan menggunakan pemicu

  3. Cara Mengubah Nama Database di SQL Server menggunakan T-SQL

  4. Pantau Harapan Hidup Halaman di SQL Server

  5. SQL Server Ekspresi reguler di T-SQL