|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Есть сервер, достаточно мощный - 16 ядер, 192 памяти. Есть запрос средней сложности, к основной таблице лефт джоинами присоединены еще порядка 10-15. Сами таблицы не очень большие от миллиона до 30 миллионов записей. На таблицах не было никаких индексов. Запрос выполнялся от 5 до 15 минут в зависимости от условий. Параметров условий порядка 15. Решил его оптимизировать создав необходимые индексы. Но никаких положительных результатов это не дало!!! Обычно помогало неплохо. А сейчас такое ощущение, что стало даже хуже. Смотрю план выполнения, на все Table Scan сделал индексы - похрен мороз (ПМ)! Проставил кластерные индексы на ключевые поля в таблицах - ПМ! Делал и ребилд и перестроение индексов, потом обновления статистики - ПМ! Убрал распараллеливание - ПМ! Resource Governor отключен, Cost Treshold перепробовал всякие значения, Max Degree ставил в 1 - ПМ! Кажется, что работаю вообще с другим сервером. Что еще может быть? Или пора переквалифицироваться в управдомы? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 12:59 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008, Кто ж знает, что за индексы вы создали? И может быть запрос требует сканирования таблиц, т.к. нет фильтров или просто используемые фильтры выбирают большую часть таблиц... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:06 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Критик SQL2008, Кто ж знает, что за индексы вы создали? И может быть запрос требует сканирования таблиц, т.к. нет фильтров или просто используемые фильтры выбирают большую часть таблиц... Индексы делал по полям, участвующим в WHERE и по идентификаторам связей таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:08 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 Критик SQL2008, Кто ж знает, что за индексы вы создали? И может быть запрос требует сканирования таблиц, т.к. нет фильтров или просто используемые фильтры выбирают большую часть таблиц... Индексы делал по полям, участвующим в WHERE и по идентификаторам связей таблиц Запрос покажи, страдалец. Нибось, там уже боржоми не помогает. Нехило, также, огласить количество строк результата запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:13 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 Параметров условий порядка 15. т.е. он еще и с параметрами? тогда option(recompile) или параметрами обозваны константы? --- запрос показывайте. там поди сплошные or ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:19 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Теоретически может влиять разница параметров сортировки, например, в колонке и в сессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:20 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 Смотрю план выполнения, на все Table Scan сделал индексы - похрен мороз (ПМ)! там были кучи и вы на них навесили некластерные индексы? SQL2008 Проставил кластерные индексы на ключевые поля в таблицах - ПМ! а с чего вы вязли, что так будет лучше? SQL2008 Убрал распараллеливание - ПМ! с какой целью SQL2008 Индексы делал по полям, участвующим в WHERE и по идентификаторам связей таблиц Вы сравнивали планы до и после ваших манипуляций? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:25 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Yasha123 SQL2008 Параметров условий порядка 15. т.е. он еще и с параметрами? тогда option(recompile) Пробовал и так и без или параметрами обозваны константы? Нет, параметры передаются в процедуру с формы отчета. --- запрос показывайте. там поди сплошные or Честно говоря их там дохрена! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:31 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
описание "оптимизации" прям точно соотвесвует авторА ты стекло протирал? - Протирал. - Бампер протирал? - Протирал... - Фары протирал?! - Протирал! - По колесам стучал?! - Стучал! - НУ ТОГДА Я НЕ ЗНАЮ!!! и да запрос показывайте, план ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:32 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
msLex SQL2008 Смотрю план выполнения, на все Table Scan сделал индексы - похрен мороз (ПМ)! там были кучи и вы на них навесили некластерные индексы? И вешал и снимал, результата ноль. msLex SQL2008 Проставил кластерные индексы на ключевые поля в таблицах - ПМ! а с чего вы вязли, что так будет лучше? А почему кластерный индекс, он же PK, может быть хуже чем его отсутствие? msLex SQL2008 Убрал распараллеливание - ПМ! с какой целью Определить степень влияния. Без разницы. msLex Вы сравнивали планы до и после ваших манипуляций? До манипуляций план не снимал, не могу сравнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:37 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 msLex пропущено... а с чего вы вязли, что так будет лучше? А почему кластерный индекс, он же PK, может быть хуже чем его отсутствие? Кластерный индекс по PK не всегда лучше кластерного индекса по другому полю Классический пример кластерный индекс по id документа vs кластерный индекс по дате создания документа. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:51 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008, в запросе туча OR и LIKE и на индексы серверу ПМ (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:51 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
msLex кластерный индекс по id документа Именно так у меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:52 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
andy st SQL2008, в запросе туча OR и LIKE и на индексы серверу ПМ (с) Лайков нет ни одного. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:53 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
andy st SQL2008, в запросе туча OR и на индексы серверу ПМ (с) Это сейчас проверим. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:55 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 msLex кластерный индекс по id документа Именно так у меня. так с чего вы взяли, что он лучше чем, например, кластерный индекс по дате документа? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 14:03 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
msLex SQL2008 пропущено... Именно так у меня. так с чего вы взяли, что он лучше чем, например, кластерный индекс по дате документа? возможно, что вы и правы... но вот дат в документе 7 и по каждой есть фильтрация, какую дату делать "кластерной"? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 14:09 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 msLex пропущено... так с чего вы взяли, что он лучше чем, например, кластерный индекс по дате документа? возможно, что вы и правы... но вот дат в документе 7 и по каждой есть фильтрация, какую дату делать "кластерной"? смотрите по частоте запросов и диапазону дат (чем больше, тем больше будет пользы от кластерный или покрывающего индекса) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 14:43 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
msLex, похоже что у меня не с индексами, а с данными косяк. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 14:57 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008, были небольшие косяки, но это мелочь. Вообще обычный джоин таблицы полтора миллиона записей с таблицей в четыре тысячи вернул полмиллиона записей за 9 минут! Это хрень, а не производительность на мой взгляд. Коллеги! Поделитесь своими мыслями. Похоже, что ищу не там. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 16:14 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
в третий раз просить показать запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 16:17 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008, Да не похоже, что вы вообще то-то ищите, иначе бы уже и запрос показали, и его план. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 16:18 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Yasha123 в третий раз просить показать запрос? а смысл автор вернул полмиллиона записей за 9 минут в грид? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 16:18 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
TaPaK автор вернул полмиллиона записей за 9 минут вероятнее всего да. и с блобами... и по сетке в 1Мбит/сек... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 16:43 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
msLex SQL2008 пропущено... А почему кластерный индекс, он же PK, может быть хуже чем его отсутствие? Кластерный индекс по PK не всегда лучше кластерного индекса по другому полю Классический пример кластерный индекс по id документа vs кластерный индекс по дате создания документа. Похоже что вы оказались правы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 16:50 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Резюме такое - совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут). Замеры из одной студии, с одного сетевого соединения. msLex - оказался прав! Респект и уважуха. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 17:09 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008, обычно наоборот - просмотр кластерного выгоднее адресации через IAM. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 17:22 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут). совершенно бессмысленно сравнивать скорость выполнения запросов на двух разных серверах под разной нагрузкой даже на одном сервере без посторонней нагрузки это проблематично из-за "кеширования" данных ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 17:24 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
msLex пропущено... а с чего вы вязли, что так будет лучше? А почему кластерный индекс, он же PK, может быть хуже чем его отсутствие? Плохо продумали кластерный индекс, в таблице было много вставок и удалений, он стал разреженным. Это привело к тому что количество операций чтения из медленной памяти увеличилось пропорционально тому, насколько разрежен индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 19:53 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
msLex SQL2008 совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут). совершенно бессмысленно сравнивать скорость выполнения запросов на двух разных серверах под разной нагрузкой даже на одном сервере без посторонней нагрузки это проблематично из-за "кеширования" данных Полностью согласен. + ещё если делать без понимания, то можно криво сделать кластерный индекс и он не будет давать прироста в производительности. Например, сделали кластерный индекс по нескольким полям, а первый столбце кластеризованного индекса в запросе не указали или указали криво - считайте, что никакого индекса в этом случае у вас нет. Есть ещё одна частая ошибка при работе с индексами. Например, индекс по полю "День_рождения" типа datetime, а в запросе сделали так: YEAR(День_рождения) - в этом случае индекс тоже не будет использоваться (практически во всех случаях применение функции поверх поля с индексом убирает использование индекса в плане запроса. Есть конечно исключения, но о них долго рассказывать). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 20:00 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Александр Бердышев Плохо продумали кластерный индекс, в таблице было много вставок и удалений, он стал разреженным. После установки индекса ничего не добавлялось, не удалялось, не обновлялось. Дефрагментация индекса была сотые доли процента. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 22:37 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Факт остается фактом - индекс только мешал, без него запрос выполняется в три раза быстрее. 3 минуты вместо 9-ти ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 22:46 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008, Все может быть еще проще. У Вас сложный запрос (15+ таблиц). Сервер просто не успевает найти хороший план. И Вы ему еще параметров подкинули в виде индексов. Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится. Ну и если будет гораздо лучший результат, тут уже дело магии это зафиксировать :). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 23:33 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Idol_111 Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 02:40 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Ennor Tiegael Idol_111 Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 08:44 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 Есть сервер, достаточно мощный - 16 ядер, 192 памяти. Не пробовали Columnstore? Тупо на все большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 09:34 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
a_voronin SQL2008 Есть сервер, достаточно мощный - 16 ядер, 192 памяти. Не пробовали Columnstore? Тупо на все большое. Columnstore хорош для массовых запросов на чтение и appendonly изменения данных. Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 09:51 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
Убрал вообще все индексы, запустил план выполнения, создал (по рекомендации оптимизатора) покрывающий индекс на все (даже на время модификации записи, что меня немного смутило!) и время выполнения еще уменьшилось до полутора минут. В общем не всегда то, что кажется (кластерный индекс) хорошо в реальности. Всем спасибо за горячее участие и помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 10:28 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
msLex Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже. Нет. Это буферные таблицы, в которые данные заливаются одноразово и потом используются для построения отчетов. На них можно вешать какие угодно индексы и сколько угодно. Оперативной работы с данными нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 10:31 |
|
Странное поведение сервера при попытке оптимизации
|
|||
---|---|---|---|
#18+
SQL2008 msLex Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже. Нет. Это буферные таблицы, в которые данные заливаются одноразово и потом используются для построения отчетов. На них можно вешать какие угодно индексы и сколько угодно. Оперативной работы с данными нет. В этом случае CS может быть эффективен. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 11:18 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1686499]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 358ms |
total: | 528ms |
0 / 0 |