私が割り当てられたすべてのアイテムを持っていない部屋のリストをしたい二つのテーブルRoom_master
とRoom_Item
Linqクエリを最適化するにはどうすればよいですか?
Room_Master => roomid - pk, roomname
Room_Item => roomiteid - pk, roomid - fk, itemid, quantity
を持っています。
私は
var roomitem1 = from ri in objEntities.Room_Item
group ri by ri.roomid into p
select new { roomid = p.Key, totalitem = p.Sum(row => row.quantity) };
var roomid = roomitem1.Where(x => x.totalitem > 0).Select(x => x.roomid);
次のLINQクエリは非常に正常に動作しているが、問題はそれということであると私のそれぞれのLINQクエリがある結果を得るために
select * from room where roomid in
(select roomid from (select SUM(quantity) as qty, roomid from Room_Item group by roomid)
as newtab where qty=0) order by roomid
次のようにSQLクエリを書いています にデータを返すには時間がかかりすぎます。私はRoom_master
テーブルに6000レコードあり、Room_item
テーブルには約70000レコードあり、私のビューにデータを戻すのに約2分かかります...
Linqクエリを最適化してより高速に実行するにはどうしたらいいですか?
を割り当てられたアイテムを持っていない部屋のIDのリストを与える必要がありますあなたのSQLクエリが項目が割り当てられていない部屋を返すので。 – ChrisWue
シャウトする必要はありません! – Phil