2010-06-30 4 views
0

У меня возникла проблема с запросом, созданным сервером OLAP Mondrian. это слишком долго. запрос выглядит следующим образом.Оптимизация запросов

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 строки. ТАБЛИЦА 4 имеет 258 строк. ТАБЛИЦА 3 = ТАБЛИЦА 4. TABLE2 имеет 126 строк. TABLE1 имеет 29 строк.

Запрос занимает 2,00 seg aprox над производственной средой, и я действительно не знаю, что делать, чтобы улучшить выполнение запроса.

im over 8GB RAM. intel xeon L5420 при 2.50GHZ. MSSQL 2005.

я буду apreciated любой помощи, которую вы можете дать мне

ответ

0

Посмотрите на плане выполнения. Он уведомит вас, если он замечает любые таблицы, которые могут использовать некластеризованный индекс для улучшения времени запроса.

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

Эта связь очень помогает с оптимизацией запросов (и обучение массу других вещей.)

0

Я подозреваю, что у вас нет индексов на ваших внешних ключевых полей.

Это не вызывает проблемы, но я лично не хочу использовать инструмент, который создает неявные, а не явные объединения. Как вы можете доверять тому, что использует синтаксис, который был заменен 18 лет назад чем-то лучше?

О, что-то еще, что я только что заметил, я не вижу никаких агрегатов, так почему вы группируетесь?

+0

Проблема в том, что этот синтаксис не генерируется мной. он генерируется чем-то другим, называемым Mondrian, - это OLAP-сервер. я просто хочу знать, как это может улучшить, может быть, создать правильные индексы или что-то еще – rfders

Смежные вопросы