

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Suivi des requêtes SQL avec le SDK X-Ray pour .NET
<a name="xray-sdk-dotnet-sqlqueries"></a>

**Note**  
Avis de SDK/Daemon maintenance de X-Ray — Le 25 février 2026, le AWS X-Ray SDKs/Daemon passera en mode maintenance, où les versions du SDK et du Daemon de X-Ray AWS seront limitées uniquement pour résoudre les problèmes de sécurité. Pour plus d'informations sur le calendrier de support, consultez[Chronologie du support pour le SDK et Daemon X-Ray](xray-sdk-daemon-timeline.md). Nous vous recommandons de migrer vers OpenTelemetry. Pour plus d'informations sur la migration vers OpenTelemetry, consultez la section [Migration de l'instrumentation X-Ray vers OpenTelemetry l'instrumentation](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html).

Le SDK X-Ray pour .NET fournit une classe wrapper `System.Data.SqlClient.SqlCommand` pour, `TraceableSqlCommand` named, que vous pouvez utiliser à la place de. `SqlCommand` Vous pouvez initialiser une commande SQL avec la classe `TraceableSqlCommand`.

## Suivi des requêtes SQL avec des méthodes synchrones et asynchrones
<a name="xray-sdk-dotnot-sqlqueries-trace"></a>

Les exemples suivants montrent comment utiliser `TraceableSqlCommand` pour suivre automatiquement les requêtes SQL Server de manière synchrone et asynchrone.

**Example `Controller.cs` - Instrumentation de client SQL (synchrone)**  

```
using Amazon;
using Amazon.Util;
using [Amazon.XRay.Recorder.Core](https://docs.aws.amazon.com/xray-sdk-for-dotnet/latest/reference/html/N_Amazon_XRay_Recorder_Core.htm);
using [Amazon.XRay.Recorder.Handlers.SqlServer](https://docs.aws.amazon.com/xray-sdk-for-dotnet/latest/reference/html/N_Amazon_XRay_Recorder_Handlers_SqlServer.htm);

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();
  }
}
```

Vous pouvez exécuter la requête de manière asynchrone à l'aide de la méthode `ExecuteReaderAsync`.

**Example `Controller.cs` - Instrumentation de client SQL (asynchrone)**  

```
using Amazon;
using Amazon.Util;
using [Amazon.XRay.Recorder.Core](https://docs.aws.amazon.com/xray-sdk-for-dotnet/latest/reference/html/N_Amazon_XRay_Recorder_Core.htm);
using [Amazon.XRay.Recorder.Handlers.SqlServer](https://docs.aws.amazon.com/xray-sdk-for-dotnet/latest/reference/html/N_Amazon_XRay_Recorder_Handlers_SqlServer.htm);
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();
  }
}
```

## Collecte de requêtes SQL sur SQL Server
<a name="xray-sdk-dotnot-sqlqueries-collect"></a>

Vous pouvez activer la capture de `SqlCommand.CommandText` dans le cadre du sous-segment créé par votre requête SQL. `SqlCommand.CommandText` apparaît en tant que champ `sanitized_query` dans le sous-segment JSON. Par défaut, cette fonction est désactivée pour des raisons de sécurité. 

**Note**  
N'activez pas la fonction de collecte si vous incluez des informations sensibles sous forme de texte clair dans vos requêtes SQL.

Vous pouvez activer la collection de requêtes SQL de deux manières : 
+ Définissez la propriété `CollectSqlQueries` sur `true` dans la configuration globale de votre application.
+ Définissez le paramètre `collectSqlQueries` dans l'instance `TraceableSqlCommand` sur `true` pour collecter les appels au sein de l'instance.

### Activer la CollectSqlQueries propriété globale
<a name="xray-sdk-dotnot-sqlqueries-collect-global"></a>

Les exemples suivants montrent comment activer la propriété `CollectSqlQueries` pour .NET et .NET Core.

------
#### [ .NET ]

Pour définir la propriété `CollectSqlQueries` sur `true` dans la configuration globale de votre application dans .NET, modifiez la valeur de `appsettings` de votre fichier `Web.config` ou `App.config`, comme indiqué.

**Example `App.config`Ou `Web.config` — Activez la collecte de requêtes SQL de manière globale**  

```
<configuration>
<appSettings>
    <add key="CollectSqlQueries" value="true">
</appSettings>
</configuration>
```

------
#### [ .NET Core ]

Pour définir la `CollectSqlQueries` propriété sur `true` dans la configuration globale de votre application dans .NET Core, modifiez votre `appsettings.json` fichier sous la touche X-Ray, comme indiqué.

**Example `appsettings.json`— Active la collecte de requêtes SQL de manière globale**  

```
{
  "XRay": {
    "CollectSqlQueries":"true"
  }
}
```

------

### Activez le collectSqlQueries paramètre
<a name="xray-sdk-dotnot-sqlqueries-collect-instance"></a>

Vous pouvez définir le paramètre `collectSqlQueries` dans l'instance `TraceableSqlCommand` sur `true` afin de collecter le texte de la requête SQL pour les requêtes SQL Server effectuées à l'aide de cette instance. La définition du paramètre sur `false` désactive la fonction `CollectSqlQuery` pour l'instance `TraceableSqlCommand`. 

**Note**  
 La valeur de `collectSqlQueries` dans l'instance `TraceableSqlCommand` remplace la valeur définie dans la configuration globale de la propriété `CollectSqlQueries`.

**Example Exemple `Controller.cs` — Activer la collecte de requêtes SQL pour l'instance**  

```
using Amazon;
using Amazon.Util;
using [Amazon.XRay.Recorder.Core](https://docs.aws.amazon.com/xray-sdk-for-dotnet/latest/reference/html/N_Amazon_XRay_Recorder_Core.htm);
using [Amazon.XRay.Recorder.Handlers.SqlServer](https://docs.aws.amazon.com/xray-sdk-for-dotnet/latest/reference/html/N_Amazon_XRay_Recorder_Handlers_SqlServer.htm);

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();
  }
}
```