2012-05-31 2 views
1

우리는 몇 가지 테이블을 가지고 있습니다. 대부분의 쿼리는 조인을 몇 개만 사용합니다. 즉, 거의 모든 쿼리가 사용하는 2-3 조인과 같은 것이 있습니다. 테이블이 커지면이 일반적인 조인의 속도를 높이는 가장 일반적인 방법은 무엇입니까? 우리는 SQL Server 또는 Oracle을 사용하고자합니다. 데이터 Denonormalise 소수 테이블의 일반적인 조인

  • 이 (가) <을 필요하지 않은 조인 할 후에 그들이 당신이 데이터를 포함 있도록
  • 에 가입 테 열에

  • +1

    색인 생성에 대해 생각하십시오. –

    +0

    잠깐, SQL Server 또는 Oracle에서 느린 몇 가지 쿼리가 있습니까? –

    +0

    @Aaron 네, 그게 그렇게 빠르지 않습니다, 왜? – Cartesius00

    답변

    1

    가장 일반적인 방법은 인덱싱이지만 더 구체적인 정보는 제공하지 않습니다.

    는 여기에 몇 가지 시나리오입니다 :

    (1) 이러한 사실 테이블로 중앙 테이블에 연결된 참조 테이블의 무리가 있습니다.

    이 경우 참조 테이블에 자동 증가 기본 키를 정의하려고합니다. 이 기능은 자동으로 색인으로 작동합니다.

    (2) 귀하의 질의는 당신이 어디에 절에있는 필드에 인덱스를 집중하고 싶어요,이 경우

    매우 선택적이다. 두 번째 테이블이 매우 작을 때 특히 그렇습니다. 순차 검색은 인덱스 검색과 비슷합니다.

    (3) 귀하의 조인 된 테이블 정말이 경우 성능 병목

    , 당신은 테이블이나 인스턴스화보기로 중, 조인의 결과를 인스턴스화 할 수 있습니다. 이것은 조인 기준에서 데이터 범위를 사용하는 것과 같이 조인 기준이 복잡 할 때 필요할 수 있습니다.

    (4) 데이터 파티셔닝과 같은 다른 옵션도 있습니다.

    1

    일부 옵션

    • 레이 인덱스는 인덱스를 확인 = 가장 큰 승리
    • SQL Server의 인덱싱 된 뷰 또는 Oracle의 구체화 된 뷰를 사용하십시오.
    • 쿼리를 제공했는지 확인하십시오 최적화 프로그램은 최적의 조인 전략 (해시/병합/루프)을 사용하도록 얻을 수있는 최상의 통계를 제공합니다.
    2
    1. 구체화 된보기 - 오라클은 이들을 지원하며, 경우에 따라서는 유용합니다. 쓰기와 반대되는 읽기가 많을 때 : http://docs.oracle.com/cd/B10501_01/server.920/a96520/mv.htm

    2. indicies - 쿼리 계획을 분석/설명하고 색인 추가가 도움이되는지 확인하십시오. 매우 자주 다른 쿼리에 대한 표시를 사용하여 속도를 향상시킬 수 있습니다. 힌트를 제공하여 쿼리 파서에 특정 쿼리에 사용할 인덱스를 알릴 수도 있습니다.

    3. 비정규 화 - 비정규 화 -이 테이블의 데이터 중 일부를 가져 와서 관련 테이블에 저장하는 대신 비정규 화합니다.

    4. 캐싱 - 쿼리 캐시의 크기를 늘리거나 앱에 캐싱 계층을 생성합니다.

    관련 문제