캐시가 있는 SQL Server의 CLR 프로시저
SQL 서버 알림을 사용하는 데이터베이스 종속성은 SQL 서버가 각 데이터 업데이트에 대해 별도의 알림을 발생시키므로 애플리케이션 성능을 저하시킬 수 있습니다. 데이터베이스에 변경 사항이 너무 많으면 이러한 알림이 네트워크 트래픽을 압도하여 두 가지 모두의 성능을 저하시킬 수 있습니다. NCache 및 사용자 애플리케이션.
NCache 캐시를 데이터베이스와 동기화하기 위해 데이터베이스에 대한 CLR 저장 프로시저를 작성할 수 있습니다. CLR 절차에는 다음과 같은 종속성 데이터 구조 생성이 포함되지 않습니다. SqlCacheDependency. 또한 데이터베이스 모니터링이나 알림 메커니즘도 없습니다.
캐시가 있는 SQL Server에서 CLR 프로시저를 사용하는 이유
복잡한 논리를 실행하는 동안 더 나은 결과를 제공하므로 CLR 프로시저를 사용할 수 있습니다. CLR 절차는 형식 안전성과 메모리 관리를 보장합니다. 또한 더 나은 코드 관리 기능을 제공하므로 CLR 절차를 사용하여 대규모 데이터 세트를 쉽게 관리할 수 있습니다.
CLR 저장 프로시저를 사용하려면 NCache, 아래에 지정된 단계를 따르십시오.
환경 설정에 대한 자세한 내용을 보려면 다음을 참조하세요. CLR 프로시저용 SQL Server 설정.
사전 조건
주의 사항
다음을 사용하는 것이 좋습니다. CLRStoredProcedure.NCache
개체 데이터 캐싱 응용 프로그램이 아닌 CLR 프로시저 응용 프로그램 전용 Nuget 패키지입니다.
1단계: 새 애플리케이션 만들기
새로운 애플리케이션을 생성하고, StoredProcedure
사용하여, Microsoft Visual Studio. 신청서는 다음 기준을 충족해야 합니다.
- 그것은 클래스 라이브러리.
- 그것은 사용해야합니다 .NET framework 4.8.
2단계: CLR 저장 프로시저 추가
애플리케이션에 CLR 저장 프로시저를 추가하고 애플리케이션 논리를 구현합니다. 자세한 내용은 Microsoft 설명서를 참조하십시오. CLR 절차.
다음은 항목이 업데이트될 경우 캐시에서 항목을 제거하는 CLR 저장 프로시저의 샘플입니다.
중대한
경우에 NCache CLR 저장 프로시저를 사용하는 컴퓨터에 설치되어 있지 않은 경우 클라이언트.ncconf 경로에 배치해야 합니다. C : \ WINDOWS \ System32. 그렇지 않으면 캐시에 대한 작업이 수행되지 않습니다.
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();
}
}
주의 사항
작업이 안전하도록 하려면 에 설명된 대로 응용 프로그램 내에서 잠재적인 예외를 처리하는 것이 좋습니다. 처리 실패.
주의 사항
작업을 일괄적으로 수행하는 동기화 로직을 작성해 보십시오.
3단계: CLR 저장 프로시저 실행
프로젝트 빌드
StoredProcudure
생성하는StoredProcudure.dll
.이제 SQL Server에서 다음 명령을 실행하여 dll을 배포합니다.
주의 사항
애플리케이션의 경로에 따라 이 쿼리의 경로를 수정하십시오.
CREATE ASSEMBLY [NCacheCLRStoredProcedures] FROM N'C:\Users\john_doe\source\repos\StoredProcedure\bin\Debug\StoredProcedure.dll' WITH PERMISSION_SET=UNSAFE
- 다음 명령을 사용하여 SQL Server와 CLR 통합을 활성화합니다.
sp_configure 'clr enabled', 1
- 다음 명령을 사용하여 SQL Server에서 저장 프로시저를 만듭니다.
CREATE PROCEDURE RemoveOnUpdate
@cacheName AS nvarchar(4000),
@key AS nvarchar(4000)
AS
EXTERNAL NAME NCacheCLRStoredProcedures.StoredProcedures.RemoveOnUpdate
- 다음 명령을 사용하여 CLR 저장 프로시저를 실행합니다.
주의 사항
이 단계에서 지정한 캐시가 다음 위치에 있는지 확인하십시오. 클라이언트.ncconf.
EXEC RemoveOnUpdate “demoCache”, “key:123”
도 참조
.그물: Alachisoft.NCache.런타임.종속성 네임 스페이스.