DBの連絡先テーブルに約100万件のレコードがありますが、取得する必要があるのは30件だけです。次のクエリをより効率的にするにはどうすればよいですか。
GetContactsメソッド
private IQueryable<Contact> GetContacts()
{
return this.Query().Where(c => c.ActiveEmployer== true); // here ' this ' is the current service context
}
Gettinの連絡先
var contactlist = GetContacts(); // this will get all records from db
var finalcontacts = contactlist.Skip(0).Take(30).Fetch(c.Roles).Fetch(c.SalaryInfo).ThenFetch(c.Employer);
しかし、このクエリには10秒以上かかることもあり、将来的には3,000万から4,000万の連絡先を持つことができます。それでは、どうすればよいでしょうか。