Подзапросы в коде EF сначала 4.1 - PullRequest
0 голосов
/ 06 января 2012

Я создал службу данных WCF поверх довольно простой модели кода EF 4.1. С каждым запросом я должен предоставить клиентскую информацию для поддержки разделения данных в моей многопользовательской базе данных. Я вижу ужасную производительность, и после запуска трассировки сервера SQL я вижу, что все параметризованные запросы используют такие подзапросы.

select top 100 <This is because of paging>
colA,
colB,
colC
from (select colA, colB, colC
      from table
      where clientid = 12345)
orderby ..... 

Есть ли способ настроить это так, чтобы он пропускал подзапрос для выбора? Это кажется смехотворно ненужным и замедляет производительность на удивительный порядок.

Спасибо.

1 Ответ

1 голос
/ 06 января 2012

Есть ли способ настроить это так, чтобы он пропускал подзапрос для выбора?

Нет, если вы не собираетесь переписать весь провайдер EF для MSSQL Server (или другой базы данных, которую вы используете).

Это кажется смехотворно ненужным и замедляет производительность на удивительный порядок.

Вы действительно исследовали источник проблем с производительностью? Показанный вами запрос должен быть оптимизирован оптимизатором запросов на сервере БД и не должен оказывать существенного влияния на производительность.

Убедитесь, что у вас правильно настроены индексы и актуальная статистика.

...