2011-02-18 4 views
3

환경 : SQL 서버 2005, 윈도우 서버 문제 2003좋은 성능의 쓸데없는 데이터를 유지하려면 어떻게합니까?

이 시스템은 온라인 예약 시스템입니다. 그것 안에, 너는 특별 제안을 만들 수있다.

특별 행사 기간은 유효 기간이 있습니다.

우리는 우리의 데이터베이스에 기간이 과거에 경우에도 우리의 클라이언트가 입력 한 모든 기간을 유지한다. 우리는이 기간을 지켜야합니다. 데이터베이스의 기간의 대부분은 과거 그래서

시스템 10 년 이후 존재한다.

문제 : 특별한 제안

  • 내가 관련된 유효 기간 특별 혜택을 선택 매우 긴에 대한

    • 이 기간을 선택, 그래서 나는 다음 내 기간 내 이벤트를 선택해야하고 그 후에는 유효 기간이없는 제안을 삭제합니다.

    어떻게 그런 케이스의 관리합니까? 어떤 경우에 데이터의 일부를 무시하는 내장 도구가 있습니까?

  • +1

    "특별 행사 기간은 매우 길다"- 적합한 색인 ....? –

    +0

    자, 일정 기간 동안 DateBegin 및 DateEnd 열이 있다고 가정 해 봅시다. "적합한 인덱스"는 무엇입니까? –

    +0

    은 실제 검색어에 따라 다릅니다 ... –

    답변

    2

    올바른 색인을 추가하여 작업 속도를 높일 수는 있지만, 그다지 도움이되지 않는다면 이전 제안을 보관할 두 번째 테이블을 만드는 방법을 생각해 볼 수 있습니다. 이전 데이터로 저장하지만 필요한 경우 (보고서 또는 기타 이유로) 아카이브를 계속 참조 할 수 있습니다.

    +0

    "올바른 인덱스"에 대한 조언이 있습니까? 10 개의 필드에서 기간을 필터링하고 모든 필드에 대한 인덱스를 만들어야한다고 가정 해 봅시다. 모든 분야를 포함? –

    +1

    쿼리가 어떻게 생성되는지에 따라 다릅니다. 각 열과 열의 조합에 대해 쿼리를하는 것이 유용 할 수 있습니다. 여기서는 말할 수 없지만 간단한 예를 들어 보겠습니다. A와 B 및 C 열이 있고 A와 C의 조합을 쿼리하는 경우 A와 C 열을 결합한 인덱스를 만들어야합니다. A, B 및 C를 결합한 색인을 만들면 (B가 두 번째 열임) A와 C를 기준으로 필터링하면 A 색인에 대해서만 색인을 사용할 수 있습니다. – GolezTrol

    +1

    모든 열에 인덱스가 필요하지는 않지만 적어도 열의 조합이 상대적으로 작은 행의 하위 집합 만 가져야합니다. 이러한 행에서 데이터베이스는 전체 검색을 수행하여 나머지 결과를 필터링 할 수 있습니다. 나는 당신의 테이블, 당신의 질의 및 그들의 설명 계획과 당신의 데이터를 숙고하여 추측을해야 할 필요가 있기 때문에 어떤 컬럼을 정확하게 말할 수 없으며, 그 후에도 실험을해야 할 수도 있습니다. – GolezTrol

    관련 문제