문제

웹 앱에서 참조 해야하는 10 개의 "카테고리"가 있다고 가정 해 봅시다. 현재이 카테고리를 DB에 저장하고 있으며, 기준에서 Pageload 동안 (카테고리 이름 및 ID)를 검색하고 해시 가능에 저장 한 다음 해시 가능을 사용하여 카테고리를 참조합니다. 각 Pageload 동안 DB 호출이 이루어지고 있음을 깨달았습니다. 주어진 세션 중에는 절대 변경되지 않으므로이 범주를 한 번만 가져와야합니다. 이것을하는 가장 좋은 방법은 무엇입니까?

  1. 내가하고있는 일이 무엇이든하지만 응용 프로그램 변수로 저장합니까?

  2. 하드 코드 코드의 카테고리를하고 데이터베이스를 사용하지 않습니까?

  3. 세션 변수에 카테고리를 저장 하시겠습니까? 세션이 비어있는 경우에만 DB에 전화하십시오.

  4. 또는 다른 것?

나는 그런 일을하는 데 가장 좋은 행위가 무엇인지 궁금합니다.

도움이 되었습니까?

해결책

범주가 사용자 의존적이면 세션 변수에 저장합니다. 그렇지 않으면 ASP.NET 캐싱 기능 (또는 선호 분산 캐싱)을 사용합니다. 이를 통해 카테고리를 얼마나 오래 캐시 해야하는지 제어 할 수있는 동안 데이터베이스를 치는 것을 피할 수 있습니다.

다른 팁

데이터베이스를 호출하는 것이 항상 비싸지는 않지만 일반적인 웹 사이트는 각 Pageload에서 DB에 수십 개의 호출을합니다. 그러나 성능 측면에서 번거롭게되면 ORM 솔루션 사용을 고려하십시오. 우수한 오픈 소스 nhibernate 데이터베이스를 클래스 및 객체에 매핑하기위한 "사실상"표준 인 "사실상"표준입니다. 매핑을 넘어서 자동으로 제공합니다 두 가지 수준의 캐싱 그리고 연결 풀링. 너무 많은 문제가 없으면 웹 사이트는 산사태로 다른 사람을 능가합니다.

ORM 사용의 단점? 많은 사람들에게 그것은 다소 가파른 학습 곡선으로 간주됩니다. 이것을 읽고 싶다면 모범 사례를 nhibernate. 처음에는 힘든 독서이지만 확실히 가치가 있습니다.

nhibernate를 결합한 경우 fluentnhibernate, 그것은 사용하는 것이 바람이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top