Когда лучше использовать ленивую загрузку вместо активной загрузки с EF 4.1 DbContext (+ SQL 2008 R2)? - PullRequest
0 голосов
/ 09 февраля 2012

Я знаю, что ответ "это зависит".С некоторыми операциями я обнаружил, что удаление активной загрузки действительно повышает производительность, как на моем LM, так и на AppHarbor (еще не протестированном на Azure).

В тех случаях, которые я пробовал до сих пор,корневая сущность не запрашивается своим первичным ключом.Первичный ключ - это int, но эти запросы идут против ключей-кандидатов Guid, чтобы скрыть int pk от URL-адресов.У меня нет ключа или индекса на Guid, единственный ключ (кроме fk) - это int pk, и он кластеризован.

Может быстрее загружаться с некластеризованным индексом на Guidключ-кандидат?

1 Ответ

0 голосов
/ 09 февраля 2012

Я думаю, вам нужно взвесить стоимость выполнения множества маленьких запросов по сравнению с одним большим запросом.А также, если вам нужны все связанные данные и вы планируете обрабатывать все данные сразу после их получения, тогда ленивая загрузка может быть не очень хорошей идеей.

Также взгляните на эти две статьи на тему, написанные Джули Лерманн:

http://msdn.microsoft.com/en-us/magazine/hh205756.aspx

http://msdn.microsoft.com/en-us/magazine/gg309181.aspx

...