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.
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. Anda 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 5
default .
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.trc
pelacakan .
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 mungkin meninggalkan file pelacakan ini dalam sistem file.
Mengembalikan nilai kode
Tabel berikut ini menjelaskan nilai kode yang bisa Anda dapatkan, mengikuti penyelesaian 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.
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.