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 行あります。TABLE7 には約 895 行あります。TABLE6 には 445 行あります。TABLE5 には 183 行あります。TABLE4 には 258 行あります。表 3 = 表 4。TABLE2 には 126 行あります。TABLE1 には 29 行あります。

クエリは本番環境よりも約 2.00 セグかかっており、クエリのパフォーマンスを向上させるために何をすべきか本当にわかりません。

私は8GBのRAMを超えています。2.50GHZ のインテル Xeon L5420。MSSQL 2005。

私はあなたが私に与えることができるどんな助けにも感謝します

4

2 に答える 2

0

外部キー フィールドにインデックスがないと思われます。

これは問題の原因ではありませんが、個人的には、明示的な結合ではなく暗黙的な結合を作成するツールを使用したくありません。18 年前に新しい構文に置き換えられた構文を使用しているものを、どのように信頼できるのでしょうか?

ああ、もう 1 つ気付きましたが、集計が表示されないのに、なぜグループ化するのですか?

于 2010-06-30T20:49:45.333 に答える
0

実行計画を見てみましょう。非クラスター化インデックスを使用してクエリ時間を改善できるテーブルが見つかった場合は、通知されます。

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

このリンクは、クエリの最適化 (および他の多くのことの学習) に大いに役立ちます。

于 2010-06-30T14:45:35.033 に答える