CLR-Prozeduren in SQL Server mit Cache
Datenbankabhängigkeiten, die SQL Server-Benachrichtigungen verwenden, können die Leistung der Anwendung beeinträchtigen, da der SQL Server für jede Datenaktualisierung separate Benachrichtigungen auslöst. Wenn zu viele Änderungen in der Datenbank vorhanden sind, können diese Benachrichtigungen den Netzwerkverkehr überlasten und die Leistung beider beeinträchtigen NCache und Benutzeranwendungen.
NCache ermöglicht es Ihnen, gespeicherte CLR-Prozeduren für die Datenbank zu schreiben, um den Cache mit der Datenbank zu synchronisieren. Bei CLR-Prozeduren werden keine Abhängigkeitsdatenstrukturen wie z. B. erstellt SqlCacheDependency. Außerdem gibt es keine Datenbanküberwachung oder Benachrichtigungsmechanismen.
Warum CLR-Prozeduren in SQL Server mit Cache verwenden
Sie können CLR-Prozeduren verwenden, da diese bei der Ausführung komplexer Logik bessere Ergebnisse liefern. CLR-Verfahren gewährleisten Typsicherheit und Speicherverwaltung. Darüber hinaus können große Datenmengen mithilfe von CLR-Prozeduren problemlos verwaltet werden, da sie eine bessere Codeverwaltung ermöglichen.
Zur Verwendung der gespeicherten CLR-Prozeduren für NCache, führen Sie die unten angegebenen Schritte aus.
Ausführliche Informationen zum Einrichten der Umgebung finden Sie unter Richten Sie SQL Server für CLR-Prozeduren ein.
Voraussetzungen:
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache Weitere Informationen zu clientseitigen Funktionen finden Sie auf der angegebenen Seite Clientseitige API-Voraussetzungen.
- Einrichtungsumgebung für die Verwendung von CLR-Prozeduren.
- Das .NET Framework muss 4.8 sein.
- Microsoft SQL Server muss SQL Server 2008 oder höher sein.
- Einzelheiten zur API finden Sie unter: ICache, CacheManager, Entsorgen, Entfernen.
Note
Es wird empfohlen, das zu verwenden CLRStoredProcedure.NCache
Nuget-Paket nur für CLR-Prozeduranwendungen und nicht für Objektdaten-Caching-Anwendungen.
Schritt 1: Erstellen Sie eine neue Anwendung
Erstellen Sie eine neue Anwendung, StoredProcedure
unter Verwendung von Microsoft Visual Studio. Die Bewerbung sollte folgende Kriterien erfüllen;
- es muss ein sein Klassenbibliothek.
- es muss die verwenden .NET framework 4.8.
Schritt 2: Fügen Sie eine gespeicherte CLR-Prozedur hinzu
Fügen Sie Ihrer Anwendung eine gespeicherte CLR-Prozedur hinzu und implementieren Sie Ihre Anwendungslogik. Weitere Einzelheiten finden Sie in der Microsoft-Dokumentation zu CLR-Prozeduren.
Im Folgenden finden Sie ein Beispiel der gespeicherten CLR-Prozedur, die ein Element aus dem Cache entfernt, falls es aktualisiert wird.
Wichtig
Im Fall NCache nicht auf dem Computer installiert ist, auf dem Sie gespeicherte CLR-Prozeduren verwenden, client.ncconf müssen auf dem Weg platziert werden C: \ Windows \ System32. Andernfalls werden die Vorgänge im Cache nicht ausgeführt.
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();
}
}
Note
Um sicherzustellen, dass der Vorgang ausfallsicher ist, wird empfohlen, alle potenziellen Ausnahmen in Ihrer Anwendung zu behandeln, wie in erläutert Umgang mit Fehlern.
Note
Versuchen Sie, die Synchronisierungslogik zu schreiben, die Operationen in großen Mengen ausführt.
Schritt 3: Führen Sie die gespeicherte CLR-Prozedur aus
Projekt erstellen
StoredProcudure
generierenStoredProcudure.dll
.Führen Sie nun den folgenden Befehl in SQL Server aus, um die DLL bereitzustellen.
Note
Ändern Sie den Pfad in dieser Abfrage entsprechend dem Pfad Ihrer Anwendung.
CREATE ASSEMBLY [NCacheCLRStoredProcedures] FROM N'C:\Users\john_doe\source\repos\StoredProcedure\bin\Debug\StoredProcedure.dll' WITH PERMISSION_SET=UNSAFE
- Aktivieren Sie die CLR-Integration mit SQL Server mit dem folgenden Befehl:
sp_configure 'clr enabled', 1
- Erstellen Sie mit dem folgenden Befehl eine gespeicherte Prozedur in SQL Server:
CREATE PROCEDURE RemoveOnUpdate
@cacheName AS nvarchar(4000),
@key AS nvarchar(4000)
AS
EXTERNAL NAME NCacheCLRStoredProcedures.StoredProcedures.RemoveOnUpdate
- Führen Sie die gespeicherte CLR-Prozedur mit dem folgenden Befehl aus:
Note
Stellen Sie sicher, dass der in diesem Schritt angegebene Cache in vorhanden ist client.ncconf.
EXEC RemoveOnUpdate “demoCache”, “key:123”
Siehe auch
.NETZ: Alachisoft.NCache.Laufzeitabhängigkeiten Namespace.