Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pelacakan kueri SQL dengan X-Ray SDK for .NET
X-Ray SDK for .NET menyediakan kelas pembungkus untuk System.Data.SqlClient.SqlCommand
, bernama TraceableSqlCommand
, yang dapat Anda gunakan sebagai pengganti SqlCommand
. Anda dapat menginisialisasi perintah SQL dengan kelas TraceableSqlCommand
.
Pelacakan kueri SQL dengan metode sinkron dan asinkron
Contoh berikut menunjukkan tentang menggunakan TraceableSqlCommand
untuk secara otomatis melacak kueri SQL Server secara sinkron dan asinkron.
contoh Controller.cs
- Instrumentasi klien SQL (sinkron)
using Amazon;
using Amazon.Util;
using Amazon.XRay.Recorder.Core;
using Amazon.XRay.Recorder.Handlers.SqlServer;
private void QuerySql(int id)
{
var connectionString = ConfigurationManager.AppSettings["RDS_CONNECTION_STRING"];
using (var sqlConnection = new SqlConnection(connectionString))
using (var sqlCommand = new TraceableSqlCommand("SELECT " + id, sqlConnection))
{
sqlCommand.Connection.Open();
sqlCommand.ExecuteNonQuery();
}
}
Anda dapat menjalankan kueri secara asinkron dengan menggunakan metode ExecuteReaderAsync
.
contoh Controller.cs
- Instrumentasi klien SQL (asinkron)
using Amazon;
using Amazon.Util;
using Amazon.XRay.Recorder.Core;
using Amazon.XRay.Recorder.Handlers.SqlServer;
private void QuerySql(int id)
{
var connectionString = ConfigurationManager.AppSettings["RDS_CONNECTION_STRING"];
using (var sqlConnection = new SqlConnection(connectionString))
using (var sqlCommand = new TraceableSqlCommand("SELECT " + id, sqlConnection))
{
await sqlCommand.ExecuteReaderAsync();
}
}
Mengumpulkan kueri SQL yang dibuat untuk SQL Server
Anda dapat mengaktifkan penangkapan SqlCommand.CommandText
sebagai bagian dari subsegment yang dibuat oleh kueri SQL Anda. SqlCommand.CommandText
muncul sebagai bidang sanitized_query
di subsegmen JSON. Secara default, fitur ini dinonaktifkan untuk keamanan.
catatan
Jangan mengaktifkan fitur pengumpulan jika Anda menyertakan informasi sensitif sebagai teks yang jelas dalam kueri SQL Anda.
Anda dapat mengaktifkan pengumpulan kueri SQL dengan dua cara:
-
Atur properti
CollectSqlQueries
untuktrue
dalam konfigurasi global untuk aplikasi Anda. -
Atur parameter
collectSqlQueries
dalam instansTraceableSqlCommand
untuktrue
mengumpulkan panggilan dalam instans.
Aktifkan properti global CollectSqlQueries
Contoh berikut menunjukkan tentang mengaktifkan properti CollectSqlQueries
untuk NET dan Inti .NET.
Aktifkan parameter collectSqlQueries
Anda dapat mengatur parameter collectSqlQueries
dalam instans TraceableSqlCommand
ke true
untuk mengumpulkan teks kueri SQL untuk kueri SQL Server dibuat menggunakan instans tersebut. Mengatur parameter ke false
menonaktifkan fitur CollectSqlQuery
untuk instans TraceableSqlCommand
.
catatan
Nilai collectSqlQueries
dalam instans TraceableSqlCommand
mengganti nilai yang ditetapkan dalam konfigurasi global properti CollectSqlQueries
.
contoh Contoh Controller.cs
– Aktifkan pengumpulan Kueri SQL untuk instans
using Amazon;
using Amazon.Util;
using Amazon.XRay.Recorder.Core;
using Amazon.XRay.Recorder.Handlers.SqlServer;
private void QuerySql(int id)
{
var connectionString = ConfigurationManager.AppSettings["RDS_CONNECTION_STRING"];
using (var sqlConnection = new SqlConnection(connectionString))
using (var command = new TraceableSqlCommand("SELECT " + id, sqlConnection, collectSqlQueries: true))
{
command.ExecuteNonQuery();
}
}