2016-06-26 1 views
0

私はlinq query skip.take()の代わりにFetch Nextを使用していますが、このクエリは非常に遅いので、どのようにこの遅いクエリを処理することができます。私はそれをより速くしたい。私はあなたのクエリはわずか10行を選択しないことを指してしたいと思いますどのように(それが速い場合)軽量で高速なバージョンとして重いクエリを処理するにはどうすればいいですか?

var ciftciDestekler = ctx.tblDestek.SqlQuery(
    " select d.ParselId,d.DestekId,d.Urun,d.KullanimSekli,d.TarimSekli,d.EkiliAlan,d.DesteklenenAlan,d.Aciklama,d.TarifeId,d.VeriSurumu "+ 
    "from tblCiftci c "+ 
    "inner join tblParsel p on c.CiftciId = p.CiftciId "+ 
    "inner join tblDestek d on p.ParselId = d.ParselId where c.UretimSezonu = 2016 "+ 
    "order by d.DestekId "+ 
    "OFFSET 0 ROWS -- skip 10 rows "+ 
    "FETCH NEXT 10 ROWS ONLY; --").ToList(); 

答えて

3

をこのSQLクエリとLINQのバージョンを書き換える

- それはは、すべての行を選択FETCH NEXT部分はオプションで、commented it outには " - skip 10 rows"があるためです。それは実際にはないので

あなたのクエリは、改行なしの巨大な単一の行です:

select d.ParselId,d.DestekId,d.Urun,d.KullanimSekli,d.TarimSekli,d.EkiliAlan,d.DesteklenenAlan,d.Aciklama,d.TarifeId,d.VeriSurumu 
from tblCiftci c 
inner join tblParsel p on c.CiftciId = p.CiftciId 
inner join tblDestek d on p.ParselId = d.ParselId where c.UretimSezonu = 2016 
order by d.DestekId 
OFFSET 0 ROWS -- skip 10 rows 
FETCH NEXT 10 ROWS ONLY; -- 

むしろ:

select d.ParselId,d.DestekId,d.Urun,d.KullanimSekli,d.TarimSekli,d.EkiliAlan,d.DesteklenenAlan,d.Aciklama,d.TarifeId,d.VeriSurumu from tblCiftci c inner join tblParsel p on c.CiftciId = p.CiftciId inner join tblDestek d on p.ParselId = d.ParselId where c.UretimSezonu = 2016 order by d.DestekId OFFSET 0 ROWS -- skip 10 rows FETCH NEXT 10 ROWS ONLY; -- 

あなたはそのコメントを削除するか、それSlash-Starコメントすべきです次のコードには影響しません。

関連する問題