0

私は SQL が苦手なので、クエリの作成について皆さんに助けを求めました。
SQL クエリ - テーブル結合
の問題 答えが得られ、うまくいきました! ただ著しく遅いです。私はそれをするのが嫌いですが、誰かがクエリを最適化するいくつかの方法を推奨したいと思っていることを本当に望んでいます. グーグルを始めるほどSQLについて十分に知らないので、私は自分でこれを試みたことさえありません。

4

2 に答える 2

2

役立つかもしれないのは、結合している列にインデックスを作成することです。例えば;

CREATE INDEX name_for_index ON Main (StatusID);

クエリを実行するアルゴリズムが使用するこの列のルックアップ テーブルを生成します。

編集: データベースの変更が許可されていない場合は、うまくいかない可能性があります。JOIN ステートメントを緩和することでパフォーマンスが向上したケースを見てきました。

...
FROM
  Main m, Status st, Secondary s
WHERE
  st.ID = m.StatusID
  AND s.MainID = m.ID
  AND 
  ( s.MainID IS NULL AND m.WhenDate = <YourDate>
    OR
    s.MainID IS NOT NULL AND s.WhenDate = <YourDate> )
  AND TypeId = <TypeFilter>
  AND ... other filters, if you need any ...

そして、INNER JOINもう少し詳細が必要な他のケースを処理します。

于 2013-07-04T20:03:48.583 に答える