Производительность SQL Server с использованием ROWCOUNT - PullRequest
2 голосов
/ 17 августа 2011

Я использую SET ROWCOUNT 27900, а затем выбираю два столбца:

Select
   emp.employeeid,
   empd.employeedetailid
From
   employee emp (NOLOCK)
join 
   employeedetail empd (NOLOCK) on emp.employeeid = empd.employeeid 

Этот запрос выполняется за 3 секунды

Если я использую SET ROWCOUNT 27950, то выполнение того же запроса занимает 20 секунд.

Я не администратор SQL, поэтому разница составляет 17 секунд только для 50 строк.Это связано с размером страницы или индексом?

Может кто-нибудь помочь мне точно настроить запрос?

1 Ответ

0 голосов
/ 17 августа 2011

Вы пытались сделать это, используя TOP вместо SET ROWCOUNT и добавив ORDER BY?

SELECT TOP 27900 emp.employeeid, ...
ORDER BY ...;

Это даст оптимизатору гораздо больше шансов на оптимизацию.Проще говоря, SET ROWCOUNT применяется после весь запрос был обработан, и влияет только на строки, которые отправляются обратно вызывающему ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...