Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с индексами 
:(
    Опции темы
Beltar
Дата 22.6.2014, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: нет
Всего: 7



MS SQL 2008R2

Есть большая и активно растущая БД с таблицами двух типов:
1) Id, Время, Значение
2) Id, Время, Вход1,..., Вход22
Таблицы 2 не только шире, но и записей в них заносится в 2.5-5 раз больше.

С некоторых пор первые таблицы разрослись до размера, что время выборки стало непреемлемым. Посмотрев, я увидел, что индексов там нет, сделал индексы по времени для нескольких штук, но на производительности это никак не отразилось. Сейчас возникла идиотская ситуация, что таблицы второго типа работают раз в 10 быстрее, чем таблицы первого.

Для простейших запросов я получил такие планы выполнения:

Код

Select * From dbo.ДанныеHerbert7_Вход1 /*Тип 1*/
Where Время Between '2014.06.14' and '2014.06.15'


Select <-- Параллелизм (Gather Streams) <-- Сканирование по первичному ключу. Все это сопровождается глупостью вида, что отсутствует индекс по времени. Хотя Menegment Studio прекрасно показывает его наличие и в дереве объектов, и в проекте таблицы.

Код

Select * From dbo.ДанныеNRM19 /*Тип 2*/
Where Время Between '2014.06.14' and '2014.06.15'


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

Что можно сделать по этому поводу?

Это сообщение отредактировал(а) Beltar - 22.6.2014, 21:24

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  sql_plan.rar 3,03 Kb


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.