0
処理に非常に時間がかかる(> 30秒)複数のJOINSを持つOracle DBに対するLINQ文があります。出力されたSQLを見ると、非常に奇妙に見え、多くのサブクエリが含まれています。私はこのステートメントを何らかの形で最適化する必要があると思っていますが、私はあまりよく分かりません。複数の結合を含むLINQ文は非常に遅い
var WRs = (from c in db.WR_CONTACT
join wr in db.WORK_REQUEST on c.WR_NO equals wr.WR_NO
join z in db.TASKS on wr.WR_NO equals z.WR_NO
join p in db.PEOPLE on z.RESPONSIBLE_PERSON_NO equals p.PERSON_NO
where p.USERID == key && (z.WR_TASK_NO == 1 || z.WR_TASK_NO == 2)
&& wr.WR_CANCEL_DATE == null
&& wr.ACCOUNTING_CLOSE_DATE == null
select c);
私はOUTER JOINアプローチも試みましたが、パフォーマンスはそれほど向上しませんでした。私が考えることができるのは、これをやめて新しいSQLビューを作成することだけです。
SQL Developerでも実行速度が遅いですか?あなたはFKのインデックスを持っていますか? –
出力されたLINQクエリは、Oracleで実行するのに非常に時間がかかります – Nate23VT
WR_NO、RESPONSIBLE_PERSON_NO、WR_TASK_NO、WR_CANCEL_DATEおよびACCOUNTING_CLOSE_DATEにインデックスがありますか? –