0

そのため、多くの時間がかかる一連のクエリを最適化しようとしています。私が理解しようとしているのは、異なるテーブルの列にインデックスを作成する方法です。これが私の問題の簡単なバージョンです。

私がしたこと

グーグルの後、ビットマップインデックスを調べましたが、これが問題を解決する正しい方法であるかどうかはわかりません

問題

  1. Student(sid,...) と Report(rid, year, isdeleted) の間に多対多の関係があります。

  2. StudentReport(id, sid,rid) は結合テーブルです

クエリ

Select * 
from Report 
inner join StudentReport on Report.rid = StudentReport.rid
where Report.isdeleted = 0 and StudentReport.sid = x and Report.year = y

インデックスを作成する最良の方法は何ですか?

4

1 に答える 1

0

これを試してください:

with TMP_REP AS (
Select * from Report where Report.isdeleted = 0 AND Report.year = y
)
,TMP_ST_REP AS(
Select * 
from StudentReport where StudentReport.sid = x
)
SELECT * FROM TMP_REP R, TMP_ST_REP S WHERE S.rid = R.rid
于 2014-09-29T05:33:11.623 に答える