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

Откуда:
Сообщений: 2
Вобщем есть тяблица в ней 30млн записей, индекс по полю DateTime есть.
select SD.*
from StatisticDay as SD (nolock)
where SD.DateTime = '20130410 00:00:00';
Этот запрос выполняется за 5 секунд

select SD.*
from StatisticDay as SD (nolock)
where SD.DateTime between '20130401 00:00:00' and '20130410 23:59:59';
А этот выполняется 90 секунд.

Собственно вопрос во-втором скрипте, почему он может так долго отрабатывать?
Когда создаю индекс по полю DeteTime с include всех полей данной таблицы то работает очень быстро, но это не вариант так как структура запросов может меняться. Подскажите что еще можно попробывать?
9 авг 13, 18:56    [14689083]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Crimean
Member

Откуда:
Сообщений: 13147
планчики покажите. вообще-то это совсем разные запросы. первый (очень грубо!) дает 1 строку результата, второй - все, что набежало за сутки. ну и я, обычно, пишу не between а все же >= дата AND < следующая дата. а то можно потерять "хвостик" от 23:59:59.*!
9 авг 13, 19:01    [14689101]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3660
Jacksotnik,
данных больше -работает дольше.
Извиняюсь за каламбур!
9 авг 13, 19:33    [14689203]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Jacksotnik
но это не вариант так как структура запросов может меняться.
Универсальной кнопки сделать быстро - нет. Создавайте индексы для самых критичных запросов. И не используйте "select *"
9 авг 13, 20:25    [14689388]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Jacksotnik
Member

Откуда:
Сообщений: 2
Ivan Durak
Jacksotnik,
данных больше -работает дольше.
Извиняюсь за каламбур!


Ну это как-бы понятно. Токо вот данных больше в 10 раз а выполняется в 18 раз дольше
13 авг 13, 12:22    [14701291]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Glory
Member

Откуда:
Сообщений: 104751
Jacksotnik
Токо вот данных больше в 10 раз а выполняется в 18 раз дольше

Наверное потому, что серверу все равно приходится читать всю таблицу ?
13 авг 13, 12:25    [14701328]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3660
Glory
Jacksotnik
Токо вот данных больше в 10 раз а выполняется в 18 раз дольше

Наверное потому, что серверу все равно приходится читать всю таблицу ?

с чего так решили?
13 авг 13, 12:29    [14701360]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Jacksotnik
Подскажите что еще можно попробывать?


кластерный по этому полю )
13 авг 13, 12:41    [14701458]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Jacksotnik
Токо вот данных больше в 10 раз а выполняется в 18 раз дольше

Покажите планы запросов, а также статистику CPU и IO.
13 авг 13, 12:50    [14701519]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ivan Durak
Glory
пропущено...

Наверное потому, что серверу все равно приходится читать всю таблицу ?

с чего так решили?

С этого - "Когда создаю индекс по полю DeteTime с include всех полей данной таблицы то работает очень быстро"
13 авг 13, 12:52    [14701538]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
нужен план
Guest
Glory
Ivan Durak
пропущено...

с чего так решили?

С этого - "Когда создаю индекс по полю DeteTime с include всех полей данной таблицы то работает очень быстро"

на самом деле это может говорить либо о том, что без покрывающего индекса план "сваливается" в скан кластерного индекса, либо запрос "тормозят" 100500+ keylookup-ов.
13 авг 13, 14:09    [14702282]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
Jacksotnik
Ivan Durak
Jacksotnik,
данных больше -работает дольше.
Извиняюсь за каламбур!


Ну это как-бы понятно. Токо вот данных больше в 10 раз а выполняется в 18 раз дольше


вы думаете существует только линейная зависимость?

Смотрите планы - в них скрыты ответы.
13 авг 13, 14:23    [14702397]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться в чем затык  [new]
Glory
Member

Откуда:
Сообщений: 104751
нужен план
либо запрос "тормозят" 100500+ keylookup-ов.

На keylookup-ы у оптимизатора есть тресхолд
13 авг 13, 15:48    [14703103]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить