엔터티 프레임워크 캐시 통합
Entity Framework는 데이터베이스에 저장된 기본 관계형 데이터의 추상화를 제공하고 해당 개념적 스키마를 애플리케이션에 제공하므로 데이터베이스 지속성 코드를 작성할 필요가 없습니다. 이는 확장성과 성능이 타협될 수 없는 대부분의 높은 트랜잭션 애플리케이션에서 볼 수 있습니다. 그러나 어떤 경우에는 데이터베이스 계층이 더 많은 서버 추가를 지원하지 않기 때문에 데이터베이스에 병목 현상이 발생합니다. 따라서 확장성을 확보하려면 NCache 두 번째 수준 캐시로 작동하고 쿼리 결과를 캐시할 수 있는 플러그형 인메모리 캐시 공급자를 제공합니다.
사용의 장점 NCache Entity Framework 응용 프로그램의 두 번째 수준 캐시는 다음과 같습니다.
- 완벽한 통합: NCache Entity Framework 캐시 공급자는 코드 변경 없이 애플리케이션에 통합될 수 있습니다.
- 더 나은 성능: NCache Entity Framework 캐시 공급자는 모든 데이터베이스 쿼리 호출을 가로채고 쿼리 결과 집합을 캐시합니다. 이는 비용이 많이 드는 데이터베이스 이동을 방지하여 애플리케이션 성능을 향상시킵니다.
- 애플리케이션 확장성: NCache저장소를 위한 안정적인 공유 메모리 리소스인 를 사용하면 Entity Framework 애플리케이션의 여러 엔터티 간에 트랜잭션 컨텍스트를 공유할 수 있습니다.
캐싱 공급자는 다음과 같은 다양한 기능을 수행할 수 있습니다.
- 연결, 명령, 트랜잭션 및 데이터 판독기 관리.
- 쿼리 및 명령을 실행하기 전에 모니터링합니다.
다음 그림은 방법과 위치를 보여줍니다. NCache Entity Framework 공급자는 Entity Framework 응용 프로그램에 연결됩니다.
Entity Framework 캐시 통합 모드
두 가지 실행 모드가 있습니다. NCache Entity Framework 캐싱 공급자:
- 분석 모드
- 캐싱 모드
이러한 모드는 상호 배타적이므로 NCache Entity Framework 캐싱 공급자는 동시에 두 모드에서 실행할 수 없습니다. "캐싱" 모드 또는 "분석" 모드일 수 있습니다.
주의 사항
추천: 먼저 분석 모드 내에서 Entity Framework 응용 프로그램을 실행하십시오. NCache 실행에 사용해야 하는 쿼리를 분석하는 Entity Framework 캐싱 공급자입니다.
분석 모드
분석 모드는 캐싱이 수행되지 않고 애플리케이션이 사용할 쿼리 세트를 검사하는 통과 모드입니다. 이 모드는 다음 기능도 제공합니다.
모니터 쿼리: 이는 Entity Framework 응용 프로그램에서 쿼리가 실행되는 횟수를 결정하는 데 도움이 됩니다. 이는 사용자가 캐싱에 대한 빈도가 높은 쿼리를 필터링하는 데 도움이 됩니다.
보고서 생성: 이것은 적절한 구문을 사용하고 내림차순으로 정렬하는 쿼리를 위한 것입니다. 또한 사용자가 관련 쿼리를 선택하고 캐싱을 위해 복사할 수 있습니다.
<analysis-report>
<query>
<!--Call count = 12-->
<cache-query query-text="SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName], [Extent1].[SupplierID] AS [SupplierID], [Extent1].[CategoryID] AS [CategoryID], [Extent1].[QuantityPerUnit] AS [QuantityPerUnit], [Extent1].[UnitPrice] AS [UnitPrice], [Extent1].[UnitsInStock] AS [UnitsInStock], [Extent1].[UnitsOnOrder] AS [UnitsOnOrder], [Extent1].[ReorderLevel] AS [ReorderLevel], [Extent1].[Discontinued] AS [Discontinued] FROM [dbo].[Products] AS [Extent1] WHERE 5 = [Extent1].[ProductID]"/>
<cache-policy vary-by-cache-param="" expiration-type="Absolute" enabled="True" expiration-time="30sec" dbsyncdependency="False" resyncProviderName="EFResync"/>
</query>
</analysis-report>
캐싱 모드
이 모드는 실제 사용을 위해 설계되었습니다. NCache Entity Framework 응용 프로그램에서. 이 시점에서 쿼리와 해당 결과 집합이 캐시됩니다. 캐싱 모드는 구성 파일에 제공된 쿼리만 처리합니다. 즉, efcaching.ncconf.
NCache Entity Framework에서 지원되는 기능
NCache Entity Framework 애플리케이션에 대한 두 번째 수준 캐시 역할을 하며 다음 기능을 제공합니다. Entity Framework 캐싱 구성 파일 :
데이터베이스와 캐시 동기화: 어떤 경우에는 캐시에 있는 일부 데이터가 애플리케이션의 개입 없이 데이터베이스에서 변경될 수 있습니다. 따라서 해당 클래스를 지정할 수 있습니다. 데이터베이스 동기화 특징 NCache. 이것은 허용 NCache 데이터베이스에 연결하고, 데이터 변경 사항을 모니터링하고, 캐시의 데이터가 항상 데이터베이스와 동기화되도록 캐시를 자동으로 업데이트합니다. NCache SQL Server용 SqlDependency, Oracle용 OracleDependency 및 모든 OLEDB 호환 데이터베이스용 DbDependency를 제공합니다.
절대 만료: 절대 만료 캐시된 각 항목에 대해 별도로 지정되며
DateTime
언제를 지정하는 값 NCache 항목이 자동으로 만료되어야 합니다. 엔터티 프레임워크의 경우 NCache "간격"을 초 단위로 지정하라는 메시지를 표시한 다음Now + interval
절대 만료의 날짜-시간 값을 계산하는 공식입니다.슬라이딩 만료: 슬라이딩 만료 캐시된 각 항목에 대해 별도로 지정되며 간격 값(초)입니다. NCache 이 간격 동안 가져오거나 업데이트되지 않은 경우 캐시된 항목이 만료됩니다.
컴팩트 직렬화: NCache Entity Framework 클래스를 등록할 수 있습니다. 컴팩트 직렬화 애플리케이션이 캐시에 연결될 때 직렬화 코드를 생성합니다. NCache 이 코드를 메모리 내에서 동적으로 컴파일하고 직렬화에 사용하여 직렬화 성능을 높입니다.
이 섹션의
사용 NCache EF(Entity Framework) 두 번째 수준 캐시
구성 및 사용 방법을 설명합니다. NCache Entity Framework 두 번째 수준 캐시로.
EF(Entity Framework) 캐싱 구성 파일
에 필요한 변경 사항을 설명합니다. efcaching.ncconf Entity Framework 애플리케이션을 실행하기 위한 파일 NCache.
Entity Framework 재동기화 공급자
재동기화 메커니즘을 설명합니다. NCache 클러스터 전체에서 데이터를 최신 상태로 유지하는 방법.