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

Откуда:
Сообщений: 432
Коллеги, кто подскажет хорошие статьи или книги (названия) по оптимизации перформанса SQL Server?

Объясню на примере что "мучает". В соседнем отделе у коллег проблема, что некий SQL запрос выполняется 15 часов, при этом ни память не занята вся, ни CPU не взлетает, ни дисковой активности не наблюдается. Дедлоки проверяли - тоже не видно.

Хотелось бы фундаментально разобраться с тем как вообще SQL Server выполняет запросы и как промониторить процесс выполнения и найти причину тормозов.

Мы знаем хорошо что такое план выполнения; но план - это план, а выполнение - это выполнение, и хотелось бы знать все касательно трассировки самого выполнения и вылавливания инфы о том, что он делает в данный момент, касательно разных счетчиков производительности, касательно того, есть ли профайлер в природе (в смысле code profiler а не SQL profiler) - типа того, что дядька под линукс сделал http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html (и там же скриншот справа сверху как он MySQL отпрофайлил).

Хотелось бы систематично все это прочитать, перепробовать, и поднять свой уровень.

Посоветуйте материалы, которые следует прочитать. Спасибо.
20 июл 16, 16:32    [19431928]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Игорь Бобак,

http://download.red-gate.com/ebooks/SQL/eBOOK_SQLServerExecutionPlans_2Ed_G_Fritchey.pdf

автор
но план - это план, а выполнение - это выполнение

а выполняется по вашему не по плану? :) есть estimate и аctual plan

ну и 15 часов...
20 июл 16, 16:36    [19431956]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Игорь Бобак
что некий SQL запрос выполняется 15 часов

Будет смешно если выяснится что запрос параметризованный, статистика устарела год назад, индексов покрывающих нет...

А вообще чем Вас не устраивает анализ est execution plan? По нему можно много чего понять - где затык. Где понять тяжело в помощь идут wait stats.

Относительно книги, так лучше уже Короткевича почитать, чтобы подтянуть базовые знания о внутреннем устройстве SQL Server + есть отличные блоги Дмитрия Пилюгина:

http://www.queryprocessor.com/
http://www.somewheresomehow.ru/
20 июл 16, 16:46    [19432009]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5140
Игорь,

если sql16 посмотрите Live Query Statistics
гайдов как тюнить сиквел дофигища (сильно сомневаюсь, что "коллеги из соседнего отдела" посмотрели всё)
блокировки это крайний случай, смотрите ожидания
вот про флаги трассировки

то, что вы хотите (залезть в кишки и посмотреть) это к инженерам MS из саппорта (у епама, что нет возможности создать тикет?), но я не видел ещё случая, чтобы "обычные" методы не работали
20 июл 16, 16:52    [19432058]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Игорь Бобак,
автор
смотрите ожидания

https://habrahabr.ru/post/216309/
https://habrahabr.ru/post/303212/

автор
при этом ни память не занята вся, ни CPU не взлетает, ни дисковой активности не наблюдается. Дедлоки проверяли - тоже не видно.

автор
WAITFOR DELAY '15:00:00';
20 июл 16, 16:56    [19432091]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Дедушка
если sql16 посмотрите Live Query Statistics

Эта фича и для 2014 SP1 тоже доступна. К слову, хорошая мысль сразу будет видно затык на проблемном операторе :)
20 июл 16, 16:57    [19432095]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
o-o
Guest
Игорь Бобак
у коллег проблема, что некий SQL запрос выполняется 15 часов, при этом ни память не занята вся, ни CPU не взлетает, ни дисковой активности не наблюдается. Дедлоки проверяли - тоже не видно.

ожидания за 15 часов можно было 100 раз посмотреть.
например, в скрипте есть drot table dbo.t,
а какой-то аксессник присосался с select * from dbo.t,
2 страницы посмотрел, оставил все открытым и ушел домой.
drop table будет весеть и сутки, и двое, активности никакой, а запрос висит, да
20 июл 16, 17:11    [19432160]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
так он всегда 15 часов выполняется или запустили и он вот прям сейчас выполняется?
20 июл 16, 17:52    [19432355]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4420
Игорь Бобак
Коллеги, кто подскажет хорошие статьи или книги (названия) по оптимизации перформанса SQL Server?

Объясню на примере что "мучает". В соседнем отделе у коллег проблема, что некий SQL запрос выполняется 15 часов, при этом ни память не занята вся, ни CPU не взлетает, ни дисковой активности не наблюдается. Дедлоки проверяли - тоже не видно.

Хотелось бы фундаментально разобраться с тем как вообще SQL Server выполняет запросы и как промониторить процесс выполнения и найти причину тормозов.

Мы знаем хорошо что такое план выполнения; но план - это план, а выполнение - это выполнение, и хотелось бы знать все касательно трассировки самого выполнения и вылавливания инфы о том, что он делает в данный момент, касательно разных счетчиков производительности, касательно того, есть ли профайлер в природе (в смысле code profiler а не SQL profiler) - типа того, что дядька под линукс сделал http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html (и там же скриншот справа сверху как он MySQL отпрофайлил).

Хотелось бы систематично все это прочитать, перепробовать, и поднять свой уровень.

Посоветуйте материалы, которые следует прочитать. Спасибо.


Дядька, линукс, MySql , следующая остановка - безалкоголное пиво и резиновые женщины

А какой запрос? план?
20 июл 16, 18:06    [19432417]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Игорь Бобак
(в смысле code profiler а не SQL profiler) - типа того, что дядька под линукс сделал
Вы из плана то ничего понять не смогли, какой вам еще код профайлер? Зачем?
20 июл 16, 23:35    [19433555]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
Игорь Бобак,

перед выполнением запроса из студии сделайте
set statistics io, time on

и потом выложите вывод сюда
21 июл 16, 13:28    [19436084]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
edyaN
Игорь Бобак,

перед выполнением запроса из студии сделайте
set statistics io, time on

и потом выложите вывод сюда

15 часовой роман...
21 июл 16, 13:41    [19436222]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
TaPaK,

зато можно не доставать хрустальный шар
21 июл 16, 14:12    [19436518]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
edyaN,

зато если у него миллионный цикл то вся это простыня тыканье пальцем в более непривычные места и издевательство над глазами
21 июл 16, 14:34    [19436715]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
o-o
Guest
edyaN
TaPaK,
зато можно не доставать хрустальный шар

а если на блокировке висело?
15 часов без минуты было блокировано, за минуту выполнилось,
чтений тысяча, а время 15 часов
21 июл 16, 14:59    [19436906]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
o-o,

так нигде не сказано что выполнилось вообще :)
21 июл 16, 15:01    [19436927]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
o-o
Guest
TaPaK
o-o,

так нигде не сказано что выполнилось вообще :)

даже больше скажу, может, оно и вовсе не выполняется.
если *что-то* висит 15 часов, то не факт, что это сервер.
у нас на днях забабахали отчет, полтора гига данных должен вывести
(интересно, кто бы такое прочел и за сколько)
и вот оно висит и висит, типа думает.
а в сессиях его НЕТ вообще.
потому что сервер данные давно отдал, а это чучело все отрисовать не могло.
причем это оно на портале висело, а в BIDS моментально вывалилось в OUT OF MEMORY
21 июл 16, 15:09    [19436997]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32167
o-o
и вот оно висит и висит, типа думает.
SSRS?
21 июл 16, 15:24    [19437128]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
o-o
edyaN
TaPaK,
зато можно не доставать хрустальный шар

а если на блокировке висело?
15 часов без минуты было блокировано, за минуту выполнилось,
чтений тысяча, а время 15 часов

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

TaPaK
edyaN,

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

тогда можно будет сказать, что проблема в коде, и даже всматриваться в эту простыню не надо.

@all в любом случае эта информация лучше, чем пустое гадание в отсутствии плана выполнения.
21 июл 16, 15:44    [19437297]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
o-o
Guest
edyaN
тогда можно будет сказать, что это скорее всего блокировки.
тогда можно будет сказать, что проблема в коде

да сказать-то и щас можно,
а вот почему не посмотреть конкрентые ожидания за 15 часов, я вот это никак не пойму?
что-то же ждет 15 часов или сколько там?
или как раз НЕ ждет, и процесса давно нет,
ну почему на конкретный вопрос надо обходными путями ответ искать?
21 июл 16, 15:49    [19437354]     Ответить | Цитировать Сообщить модератору
 Re: Книги по оптимизации перформанса SQL Server  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Игорь Бобак,
план смотрели?
могу предположить
как у меня такое бывает, кода из соседних отделов пишут
бд объемом более 2 Тб,
делается запрос, обрабатывает миллионы строк из нескольких таблиц, бывает хорошо выполняется за минуту 1-2 , а бывает очень долго часов 5-8.

А если смотреть план, то мы видим, что на миллионах строках выполняется операции Nested Join , при этом как раз нагрузку на CPU и на диски почти не будет.
Кстати, тупо обновление статистики не поможет, т.к в статистику могут не все значения попасть, в итоге план так же плохой.

Нужно явно прописать хинты, либо решать проблему другим путем.
21 июл 16, 16:36    [19437680]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить