Procedimientos CLR en SQL Server con caché
Las dependencias de la base de datos que utilizan notificaciones del servidor SQL pueden reducir el rendimiento de la aplicación, ya que el servidor SQL genera notificaciones separadas para cada actualización de datos. Si hay demasiados cambios en la base de datos, estas notificaciones pueden saturar el tráfico de la red, reduciendo el rendimiento de ambos. NCache y aplicaciones de usuario.
NCache le permite escribir procedimientos almacenados CLR para que la base de datos sincronice el caché con la base de datos. Los procedimientos CLR no implican la creación de estructuras de datos de dependencia como SqlCacheDependency. Además, no existe ningún mecanismo de notificación o seguimiento de la base de datos.
Por qué utilizar procedimientos CLR en SQL Server con caché
Puede utilizar procedimientos CLR ya que dan mejores resultados al ejecutar lógica compleja. Los procedimientos CLR garantizan la seguridad de tipos y la gestión de la memoria. Además, se pueden gestionar grandes conjuntos de datos utilizando procedimientos CLR fácilmente, ya que proporcionan una mejor gestión del código.
Para utilizar los procedimientos almacenados CLR para NCache, siga los pasos que se especifican a continuación.
Para obtener detalles completos sobre la configuración del entorno, consulte Configurar SQL Server para procedimientos CLR.
Requisitos previos
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache funciones del lado del cliente, consulte la página proporcionada en Requisitos previos de la API del lado del cliente.
- Entorno de configuración para el uso de procedimientos CLR.
- La .NET Framework debe ser 4.8.
- Microsoft SQL Server debe ser SQL Server 2008 o superior.
- Para obtener detalles de la API, consulte: Dolor, Administrador de caché, tiene, Eliminar.
Note
Se recomienda utilizar el CLRStoredProcedure.NCache
Paquete Nuget solo para aplicaciones de procedimientos CLR y no para aplicaciones de almacenamiento en caché de datos de objetos.
Paso 1: crear una nueva aplicación
Crear una nueva aplicación, StoredProcedure
, utilizando Microsoft Visual Studio. La solicitud debe cumplir con los siguientes criterios;
- debe ser un Biblioteca de clases.
- debe usar el .NET framework 4.8.
Paso 2: agregar un procedimiento almacenado CLR
Agregue un procedimiento almacenado CLR en su aplicación e implemente la lógica de su aplicación. Para obtener más detalles, consulte la documentación de Microsoft en Procedimientos CLR.
A continuación se muestra un ejemplo del procedimiento almacenado CLR, que elimina un elemento de la caché en caso de que se actualice.
Importante:
En los hogares NCache no está instalado en la máquina donde está utilizando procedimientos almacenados CLR, cliente.ncconf debe colocarse en el camino C: \ Windows \ System32. De lo contrario, las operaciones en la caché no se llevarán a cabo.
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
Para garantizar que la operación sea a prueba de fallas, se recomienda manejar cualquier posible excepción dentro de su aplicación, como se explica en Manejo de fallas.
Note
Intente escribir la lógica de sincronización que realiza operaciones de forma masiva.
Paso 3: Ejecute el procedimiento almacenado CLR
Proyecto de construcción
StoredProcudure
para generarStoredProcudure.dll
.Ahora ejecute el siguiente comando en SQL Server para implementar el dll.
Note
Modifique la ruta en esta consulta según la ruta de su aplicación.
CREATE ASSEMBLY [NCacheCLRStoredProcedures] FROM N'C:\Users\john_doe\source\repos\StoredProcedure\bin\Debug\StoredProcedure.dll' WITH PERMISSION_SET=UNSAFE
- Habilite la integración de CLR con SQL Server usando el siguiente comando:
sp_configure 'clr enabled', 1
- Cree un procedimiento almacenado en SQL Server usando el siguiente comando:
CREATE PROCEDURE RemoveOnUpdate
@cacheName AS nvarchar(4000),
@key AS nvarchar(4000)
AS
EXTERNAL NAME NCacheCLRStoredProcedures.StoredProcedures.RemoveOnUpdate
- Ejecute el procedimiento almacenado CLR usando el siguiente comando:
Note
Asegúrese de que el caché especificado en este paso exista en cliente.ncconf.
EXEC RemoveOnUpdate “demoCache”, “key:123”
Vea también
.NETO: Alachisoft.NCache.Dependencias.de.tiempo de ejecución espacio de nombres