powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странное поведение сервера при попытке оптимизации
40 сообщений из 40, показаны все 2 страниц
Странное поведение сервера при попытке оптимизации
    #39925601
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть сервер, достаточно мощный - 16 ядер, 192 памяти.
Есть запрос средней сложности, к основной таблице лефт джоинами присоединены еще порядка 10-15.
Сами таблицы не очень большие от миллиона до 30 миллионов записей.
На таблицах не было никаких индексов.
Запрос выполнялся от 5 до 15 минут в зависимости от условий. Параметров условий порядка 15.
Решил его оптимизировать создав необходимые индексы.
Но никаких положительных результатов это не дало!!!
Обычно помогало неплохо. А сейчас такое ощущение, что стало даже хуже.
Смотрю план выполнения, на все Table Scan сделал индексы - похрен мороз (ПМ)!
Проставил кластерные индексы на ключевые поля в таблицах - ПМ!
Делал и ребилд и перестроение индексов, потом обновления статистики - ПМ!
Убрал распараллеливание - ПМ!
Resource Governor отключен, Cost Treshold перепробовал всякие значения, Max Degree ставил в 1 - ПМ!

Кажется, что работаю вообще с другим сервером.
Что еще может быть?
Или пора переквалифицироваться в управдомы?
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925609
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

Кто ж знает, что за индексы вы создали?
И может быть запрос требует сканирования таблиц, т.к. нет фильтров или просто используемые фильтры выбирают большую часть таблиц...
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925612
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
SQL2008,

Кто ж знает, что за индексы вы создали?
И может быть запрос требует сканирования таблиц, т.к. нет фильтров или просто используемые фильтры выбирают большую часть таблиц...

Индексы делал по полям, участвующим в WHERE
и по идентификаторам связей таблиц
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925626
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
Критик
SQL2008,

Кто ж знает, что за индексы вы создали?
И может быть запрос требует сканирования таблиц, т.к. нет фильтров или просто используемые фильтры выбирают большую часть таблиц...

Индексы делал по полям, участвующим в WHERE
и по идентификаторам связей таблиц


Запрос покажи, страдалец.
Нибось, там уже боржоми не помогает.
Нехило, также, огласить количество строк результата запроса.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925635
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
Параметров условий порядка 15.

т.е. он еще и с параметрами?
тогда option(recompile)
или параметрами обозваны константы?
---
запрос показывайте.
там поди сплошные or
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925638
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теоретически может влиять разница параметров сортировки, например, в колонке и в сессии.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925645
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
Смотрю план выполнения, на все Table Scan сделал индексы - похрен мороз (ПМ)!

там были кучи и вы на них навесили некластерные индексы?

SQL2008
Проставил кластерные индексы на ключевые поля в таблицах - ПМ!

а с чего вы вязли, что так будет лучше?

SQL2008
Убрал распараллеливание - ПМ!

с какой целью



SQL2008
Индексы делал по полям, участвующим в WHERE
и по идентификаторам связей таблиц


Вы сравнивали планы до и после ваших манипуляций?
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925652
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123
SQL2008
Параметров условий порядка 15.

т.е. он еще и с параметрами?
тогда option(recompile)
Пробовал и так и без


или параметрами обозваны константы?
Нет, параметры передаются в процедуру с формы отчета.

---
запрос показывайте.
там поди сплошные or

Честно говоря их там дохрена!
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925654
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
описание "оптимизации" прям точно соотвесвует
авторА ты стекло протирал? - Протирал. - Бампер протирал? - Протирал... - Фары протирал?! - Протирал! - По колесам стучал?! - Стучал! - НУ ТОГДА Я НЕ ЗНАЮ!!!


и да запрос показывайте, план
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925661
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
SQL2008
Смотрю план выполнения, на все Table Scan сделал индексы - похрен мороз (ПМ)!

там были кучи и вы на них навесили некластерные индексы?

И вешал и снимал, результата ноль.

msLex
SQL2008
Проставил кластерные индексы на ключевые поля в таблицах - ПМ!

а с чего вы вязли, что так будет лучше?

А почему кластерный индекс, он же PK, может быть хуже чем его отсутствие?

msLex
SQL2008
Убрал распараллеливание - ПМ!

с какой целью

Определить степень влияния. Без разницы.


msLex
Вы сравнивали планы до и после ваших манипуляций?

До манипуляций план не снимал, не могу сравнить.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925683
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
msLex
пропущено...

а с чего вы вязли, что так будет лучше?

А почему кластерный индекс, он же PK, может быть хуже чем его отсутствие?


Кластерный индекс по PK не всегда лучше кластерного индекса по другому полю

Классический пример кластерный индекс по id документа vs кластерный индекс по дате создания документа.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925684
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL2008,
в запросе туча OR и LIKE и на индексы серверу ПМ (с)
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925685
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
кластерный индекс по id документа

Именно так у меня.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925688
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
SQL2008,
в запросе туча OR и LIKE и на индексы серверу ПМ (с)

Лайков нет ни одного.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925692
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
SQL2008,
в запросе туча OR и на индексы серверу ПМ (с)

Это сейчас проверим.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925706
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
msLex
кластерный индекс по id документа

Именно так у меня.

так с чего вы взяли, что он лучше чем, например, кластерный индекс по дате документа?
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925711
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
SQL2008
пропущено...

Именно так у меня.

так с чего вы взяли, что он лучше чем, например, кластерный индекс по дате документа?

возможно, что вы и правы... но вот дат в документе 7 и по каждой есть фильтрация, какую дату делать "кластерной"?
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925741
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
msLex
пропущено...

так с чего вы взяли, что он лучше чем, например, кластерный индекс по дате документа?

возможно, что вы и правы... но вот дат в документе 7 и по каждой есть фильтрация, какую дату делать "кластерной"?


смотрите по частоте запросов и диапазону дат (чем больше, тем больше будет пользы от кластерный или покрывающего индекса)
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925748
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex, похоже что у меня не с индексами, а с данными косяк.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925818
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008, были небольшие косяки, но это мелочь.
Вообще обычный джоин таблицы полтора миллиона записей с таблицей в четыре тысячи вернул полмиллиона записей за 9 минут! Это хрень, а не производительность на мой взгляд.
Коллеги!
Поделитесь своими мыслями.
Похоже, что ищу не там.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925821
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в третий раз просить показать запрос?
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925822
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

Да не похоже, что вы вообще то-то ищите, иначе бы уже и запрос показали, и его план.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925823
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123
в третий раз просить показать запрос?

а смысл

автор вернул полмиллиона записей за 9 минут в грид?
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925846
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK
автор вернул полмиллиона записей за 9 минут
в грид?
вероятнее всего да.
и с блобами...
и по сетке в 1Мбит/сек...
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925861
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
SQL2008
пропущено...

А почему кластерный индекс, он же PK, может быть хуже чем его отсутствие?


Кластерный индекс по PK не всегда лучше кластерного индекса по другому полю

Классический пример кластерный индекс по id документа vs кластерный индекс по дате создания документа.

Похоже что вы оказались правы.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925873
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Резюме такое - совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут).
Замеры из одной студии, с одного сетевого соединения.
msLex - оказался прав!
Респект и уважуха.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925890
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

обычно наоборот - просмотр кластерного выгоднее адресации через IAM.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925892
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут).

совершенно бессмысленно сравнивать скорость выполнения запросов на двух разных серверах под разной нагрузкой
даже на одном сервере без посторонней нагрузки это проблематично из-за "кеширования" данных
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925976
Александр Бердышев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
пропущено...

а с чего вы вязли, что так будет лучше?

А почему кластерный индекс, он же PK, может быть хуже чем его отсутствие?

Плохо продумали кластерный индекс, в таблице было много вставок и удалений, он стал разреженным.
Это привело к тому что количество операций чтения из медленной памяти увеличилось пропорционально тому, насколько разрежен индекс.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39925980
Александр Бердышев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
SQL2008
совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут).

совершенно бессмысленно сравнивать скорость выполнения запросов на двух разных серверах под разной нагрузкой
даже на одном сервере без посторонней нагрузки это проблематично из-за "кеширования" данных

Полностью согласен.
+ ещё если делать без понимания, то можно криво сделать кластерный индекс и он не будет давать прироста в производительности.
Например, сделали кластерный индекс по нескольким полям, а первый столбце кластеризованного индекса в запросе не указали или указали криво - считайте, что никакого индекса в этом случае у вас нет.

Есть ещё одна частая ошибка при работе с индексами.
Например, индекс по полю "День_рождения" типа datetime, а в запросе сделали так: YEAR(День_рождения) - в этом случае индекс тоже не будет использоваться (практически во всех случаях применение функции поверх поля с индексом убирает использование индекса в плане запроса. Есть конечно исключения, но о них долго рассказывать).
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926033
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Бердышев
Плохо продумали кластерный индекс, в таблице было много вставок и удалений, он стал разреженным.

После установки индекса ничего не добавлялось, не удалялось, не обновлялось.
Дефрагментация индекса была сотые доли процента.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926036
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Факт остается фактом - индекс только мешал, без него запрос выполняется в три раза быстрее.
3 минуты вместо 9-ти
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926049
Idol_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

Все может быть еще проще. У Вас сложный запрос (15+ таблиц). Сервер просто не успевает найти хороший план. И Вы ему еще параметров подкинули в виде индексов.
Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится.
Ну и если будет гораздо лучший результат, тут уже дело магии это зафиксировать :).
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926073
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idol_111
Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится.
Не подскажете темному, где такое ограничение отключается, и с какой версии это появилось?
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926101
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael
Idol_111
Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится.
Не подскажете темному, где такое ограничение отключается, и с какой версии это появилось?
OPTION(QUERYTRACEON 8780)
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926108
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
Есть сервер, достаточно мощный - 16 ядер, 192 памяти.


Не пробовали Columnstore? Тупо на все большое.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926118
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
SQL2008
Есть сервер, достаточно мощный - 16 ядер, 192 памяти.


Не пробовали Columnstore? Тупо на все большое.

Columnstore хорош для массовых запросов на чтение и appendonly изменения данных. Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926136
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрал вообще все индексы, запустил план выполнения, создал (по рекомендации оптимизатора) покрывающий индекс на все (даже на время модификации записи, что меня немного смутило!) и время выполнения еще уменьшилось до полутора минут. В общем не всегда то, что кажется (кластерный индекс) хорошо в реальности.
Всем спасибо за горячее участие и помощь!
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926139
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже.

Нет. Это буферные таблицы, в которые данные заливаются одноразово и потом используются для построения отчетов. На них можно вешать какие угодно индексы и сколько угодно. Оперативной работы с данными нет.
...
Рейтинг: 0 / 0
Странное поведение сервера при попытке оптимизации
    #39926158
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
msLex
Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже.

Нет. Это буферные таблицы, в которые данные заливаются одноразово и потом используются для построения отчетов. На них можно вешать какие угодно индексы и сколько угодно. Оперативной работы с данными нет.

В этом случае CS может быть эффективен.
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странное поведение сервера при попытке оптимизации
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]