私は約250,000レコードのSQLテーブルを検索し、2つのフィールドのみを検索するLINQクエリを持っています。両方のフィールドにインデックスが付けられていますが、私はまだそれがかなり遅いと感じています。LINQクエリをスピードアップするためのヒント?
コードは以下のとおりです。スピードアップに役立つものは誰にでもありますか?
おかげ
var qryN = (
from bn in dbs.Uploads
orderby bn.ID descending
select new
{
ID = bn.ID,
Serial = bn.serial_no,
Manufacturer = bn.Mfgr,
Model = bn.model,
Code = bn.code,
Qty = bn.qty,
Description = bn.description,
Comments = bn.comments,
Location = bn.location,
Price = bn.price,
Email = "Register/Login for full details"
});
if (dlType.Text != " " && dlType.Text != "")
{
qryN = qryN.Where(bn => bn.Manufacturer == dlType.SelectedValue);
}
if (txtWord.Text != "")
{
qryN = qryN.Where(bn => bn.Description.Contains(txtWord.Text));
}
gvLoggedOff.DataSource =
from p in qryN
select new
{
p.ID,
p.Serial,
p.Manufacturer,
p.Model, p.Code,
p.Qty,
p.Description,
p.Comments,
p.Location,
p.Price,
p.Email
};
gvLoggedOff.DataBind(); var qryN = (
from bn in dbs.Uploads
orderby bn.ID descending
select new
{
ID = bn.ID,
Serial = bn.serial_no,
Manufacturer = bn.Mfgr,
Model = bn.model,
Code = bn.code,
Qty = bn.qty,
Description = bn.description,
Comments = bn.comments,
Location = bn.location,
Price = bn.price,
Email = "Register/Login for full details"
});
if (dlType.Text != " " && dlType.Text != "")
{
qryN = qryN.Where(bn => bn.Manufacturer == dlType.SelectedValue);
}
if (txtWord.Text != "")
{
qryN = qryN.Where(bn => bn.Description.Contains(txtWord.Text));
}
gvLoggedOff.DataSource =
from p in qryN
select new
{
p.ID,
p.Serial,
p.Manufacturer,
p.Model, p.Code,
p.Qty,
p.Description,
p.Comments,
p.Location,
p.Price,
p.Email
};
gvLoggedOff.DataBind();
生成されたSQLを見て、それをプロファイルしましたか? –
「製造業者」にはFKがありますか? –
Jonは絶対に正しいです。あなたの質問は現在非常に曖昧です。私たちは、LINQ to SQL、Entity Framework、Hibernateなどを使用しているかどうか、データモデルの見た目、生成される内容、そしてそれが何であるかはわかりません。 – Steven