Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 where с '=' и '>' - сильно отличается скорость выполнения  [new]
shefus
Member

Откуда:
Сообщений: 116
MS SQL 2005
View:
SELECT      dbo.[Кросс основной].[OE] , dbo.ОрдераОПТ.Кол, dbo.ОрдераОПТ.ЦенаЧека, dbo.ОрдераОПТ.IdPozOr, dbo.ОрдераОПТ.IdOrOPT, 
                        dbo.ОрдераОПТ.Склад, dbo.ОрдераОПТ.Супермаркет, dbo.ОрдераОПТ.Малыгина, dbo.ОрдераОПТ.Id_N, dbo.ОрдераОПТ.Id_firm
FROM          dbo.ОрдераОПТ LEFT OUTER JOIN
                        dbo.[Кросс основной] ON dbo.ОрдераОПТ.Id_N = dbo.[Кросс основной].[] AND dbo.ОрдераОПТ.Id_firm = dbo.[Кросс основной].ID_firma
WHERE      dbo.ОрдераОПТ.IdOrOPT > 3000


И тоже самое - только:

WHERE      dbo.ОрдераОПТ.IdOrOPT =3826

В первом случае возвращает 3500 записей, в втором 700.

НО!!! Первый работает мгновенно, а второй 5-6 сек (!!!). В чем может быть проблема?. При этом понятно, что в первом результате содержится и выборка второго.
PS Запрос один и тот же - просто меняю условие.
30 окт 15, 18:59    [18350614]     Ответить | Цитировать Сообщить модератору
 Re: where с '=' и '>' - сильно отличается скорость выполнения  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
То, что разные запросы работают по-разному -- это нормально.

Сообщение было отредактировано: 30 окт 15, 19:02
30 окт 15, 19:02    [18350628]     Ответить | Цитировать Сообщить модератору
 Re: where с '=' и '>' - сильно отличается скорость выполнения  [new]
shefus
Member

Откуда:
Сообщений: 116
Гавриленко Сергей Алексеевич,

Хм ... разница на порядок. Запрос один и тот же - только параметр отбора разный - при этом >3000 включает и выборку =3826, но работает медленнее. При этом >3825 тоже тормозит, >3800 - уже нормально. Вот это я и не пойму почему.
30 окт 15, 19:09    [18350668]     Ответить | Цитировать Сообщить модератору
 Re: where с '=' и '>' - сильно отличается скорость выполнения  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
shefus
Гавриленко Сергей Алексеевич,

Вот это я и не пойму почему.
Потому что у разных запросов разные планы выполнения.
30 окт 15, 19:10    [18350674]     Ответить | Цитировать Сообщить модератору
 Re: where с '=' и '>' - сильно отличается скорость выполнения  [new]
shefus
Member

Откуда:
Сообщений: 116
Гавриленко Сергей Алексеевич,

Таким образом, может возникнуть ситуация, что выборка из 100 записей может работать медленнее чем 100 000? Так?
30 окт 15, 19:12    [18350683]     Ответить | Цитировать Сообщить модератору
 Re: where с '=' и '>' - сильно отличается скорость выполнения  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
shefus
Гавриленко Сергей Алексеевич,

Таким образом, может возникнуть ситуация, что выборка из 100 записей может работать медленнее чем 100 000? Так?
Да. Я даже знаю ситуацию, когда выборка одной записи будет работать дольше, чем 1000000000000000000000....000. Но это уже не ваша ситуация.
30 окт 15, 19:40    [18350802]     Ответить | Цитировать Сообщить модератору
 Re: where с '=' и '>' - сильно отличается скорость выполнения  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
shefus,

анализируйте планы запросов, иначе это будет гадание.
1 ноя 15, 15:11    [18355481]     Ответить | Цитировать Сообщить модератору
 Re: where с '=' и '>' - сильно отличается скорость выполнения  [new]
dark_DBa_dmin
Member

Откуда:
Сообщений: 105
Также статистику не мешало бы посмотреть.
2 ноя 15, 09:05    [18357181]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить