2010-06-30 1 views
0

mondrian OLAP Server에서 생성 된 쿼리에 문제가 있습니다. 너무 오래 걸립니다. 쿼리는 다음과 같습니다.쿼리 최적화

select "TABLE1"."column0" as "c0" from "FACT_TABLE" as "FACT_TABLE", 
"TABLE7" as "TABLE7", 
"TABLE6" as "TABLE6", 
"TABLE5" as "TABLE5", 
"TABLE4" as "TABLE4", 
"TABLE4" as "TABLE3", 
"TABLE2" as "TABLE2", 
"TABLE1" as "TABLE2" 
where "FACT_TABLE"."column1" = 'VALUE' and 
"FACT_TABLE"."column2" =0 and 
"FACT_TABLE"."column3" = 0 and 
"TABLE2"."table1Fk" = "TABLE1"."table1Id" and 
"TABLE3"."table2Fk" = "TABLE2"."table2Id" and 
"TABLE4"."table3Fk" = "TABLE3"."table3Id" and 
"TABLE5"."table4Fk" = "TABLE4"."table4Id" and 
"TABLE6"."table5Fk" = "TABLE5"."table5Id" and 
"TABLE7"."table6Fk" = "TABLE6"."table6Id" and 
"FACT_TABLE"."table7Fk" = "TABLE7"."table7Id" 
    group by "TABLE1"."column0" 
    order by "TABLE1"."column0" ASC 

FACT_TABLE에는 1.346.000 행 aprox가 있습니다. TABLE7에는 895 개의 행 aprox가 있습니다. TABLE6에는 445 개의 행이 있습니다.TABLE5에는 183 개의 행이 있습니다.TABLE4에는 258 개의 행이 있습니다. TABLE3 = TABLE4. TABLE2에는 126 개의 행이 있습니다. TABLE1에는 29 개의 행이 있습니다.

쿼리가 생산 환경에 2.00 seg aprox를 사용하고 있으며 쿼리 성능이 향상되도록 어떻게 해야할지 잘 모릅니다.

8GB RAM 이상. 인텔 제온 L5420 at 2.50GHZ. MSSQL 2005

난 당신이 날

답변

0

되세요에게 실행 계획을 살펴 줄 수있는 도움이 apreciated 것입니다. 쿼리 시간을 향상시키기 위해 비 클러스터형 인덱스를 사용할 수있는 테이블을 발견하면이를 알려줍니다.

http://blogs.msdn.com/b/craigfr/archive/tags/joins/

링크 쿼리를 최적화에 많은 도움이 (그리고 다른 것들의 톤을 학습합니다.)

0

나는 당신이 당신의 외래 키 필드에 대한 인덱스가없는 것으로 의심되는 것이다.

이 문제가 발생하지 않지만 개인적으로 명시 적 조인 대신 암시 적으로 만드는 도구를 사용하고 싶지 않습니다. 18 년 전에 대체 된 구문을 사용하는 것을 어떻게 신뢰할 수 있습니까?

오, 내가 방금 알아봤을 때, 나는 어떤 집계도 보이지 않는다. 왜 당신은 그룹화를하고 있는가?

+0

문제는이 구문이 나에게 생성되지 않는다는 것입니다. 몬드리안 (Mondrian)이라는 다른 이름으로 생성 된 것은 OLAP 서버입니다. 난 단지 이것이 올바른 색인 또는 뭔가를 만드는 방법을 향상시킬 수있는 방법을 알고 싶다. – rfders