문제

이것을 다루었지만 내 정확한 질문을 다루지 않는 몇 가지 질문이있었습니다.

사이트 설정의 경우 데이터베이스에 저장된 경우 다음을 수행하십시오.

  1. 누군가가 요청할 때마다 DB에서 검색
  2. 로그인시 세션 변수에 저장하십시오
  3. ???????

사용자 별 설정의 경우 사이트 설정과 동일하게 수행합니까 ??

모든 지침/모범 사례는 대단히 감사하겠습니다.

건배

도움이 되었습니까?

해결책

GloMek 제안과 같은 접근 방식을 선호합니다. 웹 캐시의 설정을 캐싱하면 액세스 속도가 크게 향상됩니다. 다음을 고려하세요:

    #region Data Access

private string GetSettingsFromDb(string settingName)
{
    return "";
}
private Dictionary<string,string> GetSettingsFromDb()
{
    return new Dictionary<string, string>();
}

#endregion

private const string KEY_SETTING1 = "Setting1";
public string Setting1
{
    get
    {
        if (Cache.Get(KEY_SETTING1) != null)
            return Cache.Get(KEY_SETTING1).ToString();

        Setting1 = GetSettingsFromDb(KEY_SETTING1);

        return Setting1;

    } 
    set
    {
        Cache.Remove(KEY_SETTING1);
        Cache.Insert(KEY_SETTING1, value, null, Cache.NoAbsoluteExpiration, TimeSpan.FromHours(2));
    }
}

private Cache Cache { get { return HttpContext.Current.Cache; } }

2 시간의 비 사용 후 캐시에서 항목을 던지는 메모리 보존 및 설정을 수정할 때 필요한 플러시 및 재 장전이 동적로드 혜성을 얻을 수 있습니다.

다른 팁

어느 쪽이든 구현할 수있는 환경 설정을 검색하기위한 모듈을 작성하는 것이 좋습니다. 그런 다음 첫 번째 구현을 위해 더 쉬워지기 때문에 매번 데이터베이스를 누르십시오. 성능 문제가있는 경우 모듈에 캐싱을 추가하여 데이터베이스 트래픽을 줄입니다.

일반적으로 여러 사이트가 있고 응용 프로그램 자체에 의해 자주 변경되는 애플리케이션을 구축하지 않는 한 일반적으로 사이트 설정을 Web.config 파일에 넣습니다. 일반적으로 처음에는 데이터베이스에 넣는 것이 합리적이지 않습니다.

사용자 별 설정의 경우 데이터베이스에 설정을 저장하고 요청 당 한 번만 사용자 설정의 재고를 관리하고 DB 호출 수를 최소화하기 위해 업데이트를 끝까지 저장하는 기본 ASP.NET 프로파일 제공 업체로 시작합니다. . 성능 문제에 도달하기 시작하면 캐싱 및/또는 특정 요구에 대한 프로필 제공 업체를 확장하는 것을 고려할 수 있습니다.

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