그래서 SQL Server 2008에서 상당히 많은 양의 데이터를 쿼리하는 ASP MVC 웹 응용 프로그램에서 작업하고 있습니다. 응용 프로그램이 시작되면 사용자에게 여러 필드가 포함 된 검색 마스크가 표시됩니다. 검색 마스크를 사용하여 사용자는 데이터베이스에서 데이터를 검색 할 수 있으며 마스크에 매개 변수를 지정하여 검색을 필터링 할 수도 있습니다. 검색 속도를 높이기 위해 서버 세션에서 데이터베이스 쿼리에 의해 반환 된 결과 집합을 저장합니다. 이후 검색 중에 세션에있는 데이터를 검색하여 DB 로의 불필요한 이동을 피할 수 있습니다.ASP MVC 응용 프로그램의 서버 세션에 많은 양의 데이터를 저장하는 가장 좋은 방법은 무엇입니까?
데이터베이스 쿼리에서 반환 할 수있는 데이터의 양이 매우 클 수 있기 때문에 웹 응용 프로그램의 확장 성이 심각하게 제한됩니다. 애플리케이션을 동시에 사용하는 사용자가 100 명이라면 서버는 각 개별 사용자에 대해 세션에서 검색 결과를 유지합니다. 이것은 결국 꽤 많은 양의 기억을 먹을 것입니다. 내 질문은 지금, 세션에 데이터를 저장하는 가장 좋은 대안은 무엇입니까? DB에있는 쿼리는 시간이 꽤 오래 걸릴 수 있으므로 이미 검색 한 데이터에 현재 검색중인 데이터가 포함되어있는 경우 지금 당장 쿼리를 실행하지 않아도됩니다. 내가 고려한 옵션은 검색된 데이터를 저장하고 후속 검색에 사용할 수있는 내 검색 쿼리의 DB에 임시 테이블을 만드는 것으로 간주됩니다. 문제는 SQL Server에 대한 경험이 너무 많아서 검색을 수행하는 사용자가 여러 명인 경우 SQL Server에서 각 사용자에 대한 임시 테이블을 만들지 모르겠다는 것입니다. 다른 가능성이 있습니까? SQL Server의 임시 테이블을 사용한 아이디어가 효과가 있었습니까, 아니면 SQL Server의 메모리 문제로 이어질 수 있습니까? 도와 주셔서 감사합니다! :)
편집 : 도움이되고 통찰력있는 답변을 주셔서 감사합니다. 그러나, 나는 중요한 세부 사항을 언급하지 않았다. 데이터베이스에 쿼리 할 때 결과 집합의 형식은 사용자마다 다를 수 있습니다. 이는 사용자가 검색 마스크에서 미리 정의 된 다중 선택기 상자에서 열을 선택하여 결과 테이블에 포함 할 수있는 열을 결정할 수 있기 때문입니다. 사용자 A가 ColA, ColB 및 ColC를 결과 테이블에 표시하려면 검색 마스크의 다중 선택 상자에서 해당 값을 선택합니다. 그러나 사용자 B는 ColA 및 ColC 만 선택할 수 있습니다. 따라서 테이블 columsn이 반드시 모든 사용자에게 동일하지는 않으므로 모든 사용자에 대해 단일 테이블로 결과를 캐싱하는 것은 다소 까다로운 일일 수 있습니다. 따라서 나는 각 사용자의 캐시 된 테이블을 별도로 저장하는 대안을 거의 사용해야 할 것이라고 생각합니다. 아래에서 언급 한 HTML5 로컬 저장소 대체 옵션은 흥미로운 것으로 들립니다. 인트라넷 응용 프로그램이므로 사용자가 HTML5를 지원하는 최신 브라우저를 사용한다고 가정하는 것이 적절할 수 있습니다. 너희들은 어떻게 생각하니? 다시, 도와 줘서 고마워.
팁에 대해 감사드립니다. 그러나 내 제품은 고객 회사를위한 것이며 데이터베이스를 변경할 수있는 권한이 없습니다. – cbbcloud