일부 파일을 기반으로 처리량이 많은 소프트웨어가 있습니다. 이 과정에서 SQL Server의 일부 테이블을 쿼리해야하는데 이로 인해 DB와 응용 프로그램 성능이 저하됩니다. (다른 응용 프로그램은 동일한 테이블을 사용합니다).SQL Server 오버 헤드 캐싱 쿼리 결과 줄이기
쿼리와 코드를 최적화 한 후에 더 나은 결과를 얻지 만 충분하지 않습니다. 연구 후 나는 해결책에 도달했다 : 일부 쿼리 결과를 캐싱. 내 아이디어는 캐시되는 하나의 특정 테이블 (오버 헤드로 식별) 행을 파일에 필요한 프로세스입니다.
나는 (내가 MS 스택에있어) AppCache를 원단을 사용하여 생각했다가 작은 물체에 대한 큰 메모리 사용량이 몇 가지 테스트를했다 (앱 캐시 서비스를 객체 않고 RAM 사용 ~ 3백50메가바이트이). 하지만
내 두 번째 옵션은 MongoDB를이 캐시 저장소로이다 (LASTNAME, 사회 보장 번호 (SSN), 생년월일 등을 위해 검색과 같은) 이러한 결과 테이블의 일부 쿼리를 확인해야합니다. 나는 이것에 대한 연구를했고 대부분의 사람들은 memcached 나 Redis를 사용하는 것이 좋지만 Windows 서버를 사용하고 있으며 공식적으로 지원되지는 않습니다.
이 경우 캐시 저장소로 mongo를 사용하면 좋은 방법입니까? 또는 AppFabric 캐싱 + 태그 검색이 더 좋습니다?
같은 데이터를 자주 변경하지 마십시오. 실제 문제는 파일 행당 SQLServer를 쿼리하는 데 필요한 시간과 내가하는 쿼리 유형입니다 (내 검색은 주로 varchar 열입니다). 이 쿼리는 다른 응용 프로그램을 차단하고 파일을 처리하는 데 너무 오래 걸립니다. 오늘 나는 1.07 시간에 260MB의 파일을 처리한다. 가까운 장래에 GB 파일을 처리 할 것이고 처리는 하루 이상 지속될 수 없다. – Zingui
데이터가 꽤 정적인데 결과 집합 작성에 시간이 오래 걸리는 경우 Sql Server에서 "구체화 된보기"("인덱싱 된 뷰")를 만들 수 있습니다. 여기를 참조하십시오 : http : // msdn.microsoft.com/en-us/library/dd171921%28SQL.100%29.aspx 검색 기능을 만들려면 추가 테이블 등을 만들어야 할 수 있습니다. 그런 다음, 일부 프로세스가 모든 것을 채울 것입니다. 그런 다음 SQL Server에서 데이터 가용성을 높입니다. 이것이 사용자의 조건에 맞지 않으면 원하는 캐싱 메커니즘으로 항상 서버 메모리를 사용할 수 있습니다. –
인덱싱 된보기는 당분간 약간의 비용을 절약 할 수 있지만 앞으로는이 오버 헤드를 줄이기 위해 전용 서버에서 캐시를 사용해야 할 것입니다. Thanks @ T.S. – Zingui