Procédures CLR dans SQL Server avec cache
Les dépendances de base de données utilisant les notifications du serveur SQL peuvent réduire les performances de l'application, car le serveur SQL envoie des notifications distinctes pour chaque mise à jour de données. S'il y a trop de modifications dans la base de données, ces notifications peuvent submerger le trafic réseau, réduisant ainsi les performances des deux systèmes. NCache et les applications utilisateur.
NCache vous permet d'écrire des procédures stockées CLR pour la base de données afin de synchroniser le cache avec la base de données. Les procédures CLR n'impliquent pas la création de structures de données de dépendance comme SqlCacheDependency. De plus, aucun mécanisme de surveillance ou de notification de base de données.
Pourquoi utiliser les procédures CLR dans SQL Server avec cache
Vous pouvez utiliser les procédures CLR car elles donnent de meilleurs résultats lors de l'exécution d'une logique complexe. Les procédures CLR assurent la sécurité des types et la gestion de la mémoire. De plus, les grands ensembles de données peuvent être facilement gérés à l’aide des procédures CLR, car elles offrent une meilleure gestion du code.
Pour utiliser les procédures stockées CLR pour NCache, suivez les étapes indiquées ci-dessous.
Pour obtenir des détails complets sur la configuration de l'environnement, veuillez vous référer à Configurer SQL Server pour les procédures CLR.
Pré-requis
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté client, veuillez vous référer à la page donnée sur Prérequis de l'API côté client.
- Environnement de configuration pour utiliser les procédures CLR.
- La .NET Framework doit être 4.8.
- Microsoft SQL Server doit être SQL Server 2008 ou supérieur.
- Pour plus de détails sur l'API, reportez-vous à : ICache, Gestionnaire de cache, disposer, Effacer.
Notes
Il est recommandé d’utiliser le CLRStoredProcedure.NCache
Package Nuget uniquement pour les applications de procédure CLR et non pour les applications de mise en cache de données d'objet.
Étape 1 : Créer une nouvelle application
Créer une nouvelle application, StoredProcedure
, en utilisant Microsoft Visual Studio. La candidature doit répondre aux critères suivants;
- ça doit être un Bibliothèque de classe.
- il doit utiliser le .NET framework 4.8.
Étape 2 : ajouter une procédure stockée CLR
Ajoutez une procédure stockée CLR dans votre application et implémentez la logique de votre application. Pour plus de détails, reportez-vous à la documentation Microsoft sur Procédures CLR.
Voici un exemple de procédure stockée CLR, qui supprime un élément du cache en cas de mise à jour.
Important
Au cas où NCache n'est pas installé sur la machine sur laquelle vous utilisez les procédures stockées CLR, client.ncconf doit être placé sur le chemin C: \ Windows \ System32. Dans le cas contraire, les opérations sur le cache n'auront pas lieu.
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void RemoveOnUpdate(string cacheName, string key)
{
// Connect to the cache
ICache cache = CacheManager.GetCache(cacheName);
// Remove specified item
cache.Remove(key);
// Dispose the cache
cache.Dispose();
}
}
Notes
Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
Notes
Essayez d'écrire la logique de synchronisation qui effectue les opérations en bloc.
Étape 3 : Exécuter la procédure stockée CLR
Construire un projet
StoredProcudure
générerStoredProcudure.dll
.Exécutez maintenant la commande suivante dans SQL Server pour déployer la dll.
Notes
Modifiez le chemin dans cette requête en fonction du chemin de votre application.
CREATE ASSEMBLY [NCacheCLRStoredProcedures] FROM N'C:\Users\john_doe\source\repos\StoredProcedure\bin\Debug\StoredProcedure.dll' WITH PERMISSION_SET=UNSAFE
- Activez l'intégration CLR avec SQL Server à l'aide de la commande suivante :
sp_configure 'clr enabled', 1
- Créez une procédure stockée dans SQL Server à l'aide de la commande suivante :
CREATE PROCEDURE RemoveOnUpdate
@cacheName AS nvarchar(4000),
@key AS nvarchar(4000)
AS
EXTERNAL NAME NCacheCLRStoredProcedures.StoredProcedures.RemoveOnUpdate
- Exécutez la procédure stockée CLR à l'aide de la commande suivante :
Notes
Assurez-vous que le cache spécifié à cette étape existe dans client.ncconf.
EXEC RemoveOnUpdate “demoCache”, “key:123”
Voir aussi
.RAPPORTER: Alachisoft.NCache.Dépendances.d'exécution espace de noms.