どの場合に内部結合できるか(SELECT…一時テーブルを使用して書き換えられない
-
22-07-2019 - |
質問
SQLパターンINNER JOIN(SELECTが発生するたびにパフォーマンスの問題が発生するGridSQLを使用しています。したがって、これらすべてのクエリを2つのクエリに書き換えることを検討しています。一時テーブルでは、パターンは代わりにINNER JOIN temp_table(...)になります。
どの場合にこれは機能しませんか?あなたが疑うかもしれないように、私はこの質問に対する答えがないことを望んでいます。 ;)
解決
サブセレクトを一時テーブルに簡単に分割できないのは、外部テーブルのフィールドを参照するときだけです。
" ... INNER JOIN(SELECT ..."については、フィールドを参照するだけでよいので、その問題があるとは思わないでしょう(可能であれば、試してみたことはありません)結合条件の最初のテーブルから。
他のヒント
一時テーブルがクエリを高速化するとは思わない!代わりに、クエリを最適化する必要があります。できること:
- レコードを他のレコードセットと内部結合する前にフィルタリングします
- 適切なインデックスを定義する
-Pavel
どの場合にINNER JOIN(SELECT …一時テーブルを使用して書き換えられない
一時テーブルに置き換えるクエリの結果セットが膨大になる可能性がある場合は、一時テーブルの使用を避けます。それを生成するオーバーヘッドは、可能なゲインを無効にします。
所属していません StackOverflow