sp_trace_create (T-SQL)

Berlaku untuk:SQL Server

Membuat definisi pelacakan. Jejak baru dalam keadaan berhenti.

Penting

Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan Extended Events sebagai gantinya.

Konvensi sintaks transact-SQL

Sintaks

sp_trace_create
    [ @traceid = ] traceid OUTPUT
    , [ @options = ] options
    , [ @tracefile = ] N'tracefile'
    [ , [ @maxfilesize = ] maxfilesize ]
    [ , [ @stoptime = ] 'stoptime' ]
    [ , [ @filecount = ] filecount ]
[ ; ]

Argumen

[ @traceid = ] OUTPUT jejak

Nomor yang ditetapkan oleh SQL Server ke jejak baru. Setiap input yang disediakan pengguna diabaikan. @traceid adalah parameter OUTPUT dari jenis int, dengan default NULL. Pengguna menggunakan nilai @traceid untuk mengidentifikasi, memodifikasi, dan mengontrol jejak yang ditentukan oleh prosedur tersimpan ini.

[ @options = ] opsi

Menentukan opsi yang ditetapkan untuk pelacakan. @options int, tanpa default. Pengguna dapat memilih kombinasi opsi ini dengan menentukan nilai jumlah opsi yang dipilih. Misalnya, untuk mengaktifkan opsi TRACE_FILE_ROLLOVER dan SHUTDOWN_ON_ERROR, tentukan 6 untuk @options.

Tabel berikut mencantumkan opsi, deskripsi, dan nilainya.

Nama opsi Nilai opsi Deskripsi
TRACE_FILE_ROLLOVER 2 Menentukan bahwa ketika @filecount tercapai, file pelacakan saat ini ditutup, dan file baru dibuat. Semua rekaman baru ditulis ke file baru. File baru memiliki nama yang sama dengan file sebelumnya, tetapi bilangan bulat ditambahkan untuk menunjukkan urutannya. Misalnya, jika file pelacakan asli diberi nama filename.trc, file pelacakan berikutnya diberi nama filename_1.trc, file pelacakan berikut adalah filename_2.trc, dan sebagainya.

Karena lebih banyak file pelacakan rollover dibuat, nilai bilangan bulat yang ditambahkan ke nama file meningkat secara berurutan.

SQL Server menggunakan nilai default @filecount (5 MB) jika opsi ini ditentukan tanpa menentukan nilai untuk @filecount.
SHUTDOWN_ON_ERROR 4 Menentukan bahwa jika jejak tidak dapat ditulis ke file karena alasan apa pun, SQL Server akan dimatikan. Opsi ini berguna saat melakukan jejak audit keamanan.
TRACE_PRODUCE_BLACKBOX 8 Menentukan bahwa catatan informasi jejak 5 MB terakhir yang dihasilkan oleh server disimpan oleh server. TRACE_PRODUCE_BLACKBOX tidak kompatibel dengan semua opsi lainnya.

[ @tracefile = ] N'tracefile'

Menentukan lokasi dan nama file tempat pelacakan ditulis. @tracefile adalah nvarchar(245) tanpa default. @tracefile dapat berupa direktori lokal (seperti N'C:\MSSQL\Trace\trace.trc') atau UNC ke berbagi atau jalur (seperti N'\\<servername>\<sharename>\<directory>\trace.trc').

SQL Server menambahkan .trc ekstensi ke semua nama file pelacakan. TRACE_FILE_ROLLOVER Jika opsi dan @filecount ditentukan, SQL Server membuat file pelacakan baru ketika file jejak asli tumbuh ke ukuran maksimumnya. File baru memiliki nama yang sama dengan file asli, tetapi _n ditambahkan untuk menunjukkan urutannya, dimulai dengan 1. Misalnya, jika file pelacakan pertama diberi nama filename.trc, file pelacakan kedua diberi nama filename_1.trc.

Jika Anda menggunakan opsi , TRACE_FILE_ROLLOVER kami sarankan Anda tidak menggunakan karakter garis bawah dalam nama file pelacakan asli. Jika Anda menggunakan garis bawah, perilaku berikut terjadi:

  • SQL Server Profiler tidak secara otomatis memuat atau meminta Anda untuk memuat file rollover (jika salah satu opsi rollover file ini dikonfigurasi).

  • Fungsi sys.fn_trace_gettable tidak memuat file rollover (ketika ditentukan dengan menggunakan argumen @number_files ) di mana nama file asli berakhir dengan garis bawah dan nilai numerik. (Ini tidak berlaku untuk garis bawah dan angka yang ditambahkan secara otomatis saat file bergulir.)

Catatan

Sebagai solusi untuk kedua perilaku ini, Anda dapat mengganti nama file untuk menghapus garis bawah dalam nama file asli. Misalnya, jika file asli bernama my_trace.trc, dan file rollover diberi nama my_trace_1.trc, Anda dapat mengganti nama file menjadi mytrace.trc dan mytrace_1.trc sebelum Membuka file di SQL Server Profiler.

@tracefile tidak dapat ditentukan saat TRACE_PRODUCE_BLACKBOX opsi digunakan.

[ @maxfilesize = ] maxfilesize

Menentukan ukuran maksimum dalam megabyte (MB) file pelacakan dapat tumbuh. @maxfilesize besar, dengan nilai 5default .

Jika parameter ini ditentukan tanpa TRACE_FILE_ROLLOVER opsi , jejak akan berhenti merekam ke file ketika ruang disk yang digunakan melebihi jumlah yang ditentukan oleh @maxfilesize.

[ @stoptime = ] 'stoptime'

Menentukan tanggal dan waktu pelacakan akan dihentikan. @stoptime adalah datetime, dengan default NULL. Jika NULL, jejak berjalan sampai dihentikan secara manual atau sampai server dimatikan.

Jika @stoptime dan @maxfilesize ditentukan, dan TRACE_FILE_ROLLOVER tidak ditentukan, jejak teratas ketika waktu berhenti yang ditentukan atau ukuran file maksimum tercapai. Jika @stoptime, @maxfilesize, dan TRACE_FILE_ROLLOVER ditentukan, jejak berhenti pada waktu berhenti yang ditentukan, dengan asumsi pelacakan tidak mengisi drive.

[ @filecount = ] 'filecount'

Menentukan jumlah maksimum atau file pelacakan yang akan dipertahankan dengan nama file dasar yang sama. @filecount int, lebih besar dari 1. Parameter ini hanya valid jika TRACE_FILE_ROLLOVER opsi ditentukan. Ketika @filecount ditentukan, SQL Server mencoba mempertahankan tidak lebih dari @filecount melacak file dengan menghapus file jejak terlama sebelum membuka file pelacakan baru. SQL Server melacak usia file pelacakan dengan menambahkan angka ke nama file dasar.

Misalnya, ketika parameter @tracefile ditentukan sebagai C:\mytrace, file dengan nama C:\mytrace_123.trc lebih lama dari file dengan nama C:\mytrace_124.trc. Jika @filecount diatur ke 2, maka SQL Server menghapus file C:\mytrace_123.trc sebelum membuat file C:\mytrace_125.trcpelacakan .

SQL Server hanya mencoba menghapus setiap file sekali, dan tidak dapat menghapus file yang sedang digunakan oleh proses lain. Oleh karena itu, jika aplikasi lain bekerja dengan file pelacakan saat jejak berjalan, SQL Server dapat meninggalkan file pelacakan ini dalam sistem file.

Mengembalikan nilai kode

Tabel berikut ini menjelaskan nilai kode yang mungkin didapatkan pengguna setelah menyelesaikan prosedur tersimpan.

Mengembalikan kode Deskripsi
0 Tidak ada kesalahan.
1 Kesalahan tidak diketahui.
10 Opsi tidak valid. Dikembalikan ketika opsi yang ditentukan tidak kompatibel.
12 File tidak dibuat.
13 Kehabisan memori. Dikembalikan ketika tidak ada cukup memori untuk melakukan tindakan yang ditentukan.
14 Waktu berhenti tidak valid. Dikembalikan ketika waktu berhenti yang ditentukan telah terjadi.
15 Parameter tidak valid. Dikembalikan ketika pengguna menyediakan parameter yang tidak kompatibel.

Keterangan

sp_trace_create adalah prosedur tersimpan SQL Server yang melakukan banyak tindakan yang sebelumnya dijalankan oleh xp_trace_* prosedur tersimpan yang diperluas yang tersedia di versi SQL Server sebelumnya. Gunakan sp_trace_create alih-alih:

  • xp_trace_addnewqueue
  • xp_trace_setqueuecreateinfo
  • xp_trace_setqueuedestination

sp_trace_create hanya membuat definisi pelacakan. Prosedur tersimpan ini tidak dapat digunakan untuk memulai atau mengubah jejak.

Parameter semua prosedur tersimpan SQL Trace (sp_trace_*) diketik secara ketat. Jika parameter ini tidak dipanggil dengan jenis data parameter input yang benar, seperti yang ditentukan dalam deskripsi argumen, prosedur tersimpan mengembalikan kesalahan.

Untuk sp_trace_create, akun layanan SQL Server harus memiliki izin tulis pada folder file pelacakan. Jika akun layanan SQL Server bukan administrator di komputer tempat file pelacakan berada, Anda harus secara eksplisit memberikan izin tulis ke akun layanan SQL Server.

Catatan

Anda dapat secara otomatis memuat file pelacakan yang dibuat ke sp_trace_create dalam tabel dengan menggunakan fn_trace_gettable fungsi sistem. Untuk informasi selengkapnya, lihat sys.fn_trace_gettable.

Untuk contoh penggunaan prosedur tersimpan jejak, lihat Membuat Jejak (Transact-SQL).

TRACE_PRODUCE_BLACKBOX memiliki karakteristik berikut:

  • Ini adalah pelacakan rollover. @filecount default adalah 2 tetapi dapat ditimpa oleh pengguna menggunakan opsi @filecount.

  • @maxfilesize default, seperti halnya jejak lainnya, adalah 5 MB dan dapat diubah.

  • Tidak ada nama file yang dapat ditentukan. File disimpan sebagai: N'%SQLDIR%\MSSQL\DATA\blackbox.trc'.

  • Hanya peristiwa berikut dan kolomnya yang terkandung dalam jejak:

    • RPC dimulai
    • Awal batch
    • Pengecualian
    • Perhatian
  • Peristiwa atau kolom tidak dapat ditambahkan atau dihapus dari jejak ini.

  • Filter tidak dapat ditentukan untuk pelacakan ini.

Izin

Memerlukan izin ALTER TRACE.