Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Странное поведение сервера при попытке оптимизации  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4082
Резюме такое - совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут).
Замеры из одной студии, с одного сетевого соединения.
msLex - оказался прав!
Респект и уважуха.
12 фев 20, 17:09    [22078579]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
Владислав Колосов
Member

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

обычно наоборот - просмотр кластерного выгоднее адресации через IAM.
12 фев 20, 17:22    [22078602]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
msLex
Member

Откуда:
Сообщений: 7620
SQL2008
совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут).

совершенно бессмысленно сравнивать скорость выполнения запросов на двух разных серверах под разной нагрузкой
даже на одном сервере без посторонней нагрузки это проблематично из-за "кеширования" данных
12 фев 20, 17:24    [22078604]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
Александр Бердышев
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 345
msLex
пропущено...

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

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

Плохо продумали кластерный индекс, в таблице было много вставок и удалений, он стал разреженным.
Это привело к тому что количество операций чтения из медленной памяти увеличилось пропорционально тому, насколько разрежен индекс.
12 фев 20, 19:53    [22078758]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
Александр Бердышев
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 345
msLex
SQL2008
совсем без индекса работает менее чем за 2 минуты на более слабом сервере, чем с кластерным на мощном сервере (9 минут).

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

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

Есть ещё одна частая ошибка при работе с индексами.
Например, индекс по полю "День_рождения" типа datetime, а в запросе сделали так: YEAR(День_рождения) - в этом случае индекс тоже не будет использоваться (практически во всех случаях применение функции поверх поля с индексом убирает использование индекса в плане запроса. Есть конечно исключения, но о них долго рассказывать).

Сообщение было отредактировано: 12 фев 20, 20:00
12 фев 20, 20:00    [22078765]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4082
Александр Бердышев
Плохо продумали кластерный индекс, в таблице было много вставок и удалений, он стал разреженным.

После установки индекса ничего не добавлялось, не удалялось, не обновлялось.
Дефрагментация индекса была сотые доли процента.
12 фев 20, 22:37    [22078845]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4082
Факт остается фактом - индекс только мешал, без него запрос выполняется в три раза быстрее.
3 минуты вместо 9-ти
12 фев 20, 22:46    [22078853]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
Idol_111
Member

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

Все может быть еще проще. У Вас сложный запрос (15+ таблиц). Сервер просто не успевает найти хороший план. И Вы ему еще параметров подкинули в виде индексов.
Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится.
Ну и если будет гораздо лучший результат, тут уже дело магии это зафиксировать :).

Сообщение было отредактировано: 12 фев 20, 23:32
12 фев 20, 23:33    [22078879]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3129
Idol_111
Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится.
Не подскажете темному, где такое ограничение отключается, и с какой версии это появилось?
13 фев 20, 02:40    [22078927]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30460
Ennor Tiegael
Idol_111
Попробуйте запустить ваш запрос без ограничения по времени формирования плана и посмотрите, что получится.
Не подскажете темному, где такое ограничение отключается, и с какой версии это появилось?
OPTION(QUERYTRACEON 8780)
13 фев 20, 08:44    [22078965]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4309
SQL2008
Есть сервер, достаточно мощный - 16 ядер, 192 памяти.


Не пробовали Columnstore? Тупо на все большое.
13 фев 20, 09:34    [22078983]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
msLex
Member

Откуда:
Сообщений: 7620
a_voronin
SQL2008
Есть сервер, достаточно мощный - 16 ядер, 192 памяти.


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

Columnstore хорош для массовых запросов на чтение и appendonly изменения данных. Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже.
13 фев 20, 09:51    [22078996]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4082
Убрал вообще все индексы, запустил план выполнения, создал (по рекомендации оптимизатора) покрывающий индекс на все (даже на время модификации записи, что меня немного смутило!) и время выполнения еще уменьшилось до полутора минут. В общем не всегда то, что кажется (кластерный индекс) хорошо в реальности.
Всем спасибо за горячее участие и помощь!
13 фев 20, 10:28    [22079017]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4082
msLex
Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже.

Нет. Это буферные таблицы, в которые данные заливаются одноразово и потом используются для построения отчетов. На них можно вешать какие угодно индексы и сколько угодно. Оперативной работы с данными нет.
13 фев 20, 10:31    [22079025]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение сервера при попытке оптимизации  [new]
msLex
Member

Откуда:
Сообщений: 7620
SQL2008
msLex
Если это классическая OLTP с update-ми, delete-ми и select-ми по ключам, то почти наверняка Columnstore сделает только хуже.

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

В этом случае CS может быть эффективен.
13 фев 20, 11:18    [22079059]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft SQL Server Ответить