Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Есть база на MS SQL Server 2008R2. Используется практически только для чтения. Редко что в нее пишется. Работа с ней ведется через хранимые процедуры. Нагрузка на сам сервер в боевом режиме 3000 транзакций в секунду. Когда начались тормоза - запустил профайлер, поставил условие duration > 2000 ms. Получил результаты - скриншот прикрепил. Даже простая выборка по индексному полю типа lt_GetOrganizationByUID занимает почти 4 секунды. Внутри процедуры SELECT uid_org, uid_user, name FROM lt_Organizations WHERE @OrganizationUID = uid_obj. База находится в режиме 'read committed snapshot'. Файл данных на одном диске, лог транзакций на другом. В чем может быть причина тормозов? Что еще нужно посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 14:40 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Вначале смотрите ожидания. Нагрузку на диски / проц. Анализируете "долгие" запросы и их планы. Может банально индексов не хватает. Может индексы хреновые выбираются. Может прослушивание параметров и тд. Начните с простого - посмотреть что с машиной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 14:46 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
gepard1980, маленькие значения по reads. врядли это тормоза инструкций выборки. у вас там в процедурах случаем каких нибудь методов ole автоматизации, запросов на удаленные ресурсы, или банально waitfor-конструкций нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 15:23 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
gepard1980, Можете посмотреть типы ожиданий административными представлениями. Однако, они работают кумулятивно, если началось недавно, то ничего не найдёте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 15:40 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
felix_ff, там максимально простые выборки. никакой ole автоматизации, запросов на удаленные ресурсы, waitfor-конструкций нет. индексы вроде все нужные есть. tuning advisor ничего не нашел для оптимизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 15:41 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Лучше воспользуйтесь счетчиками производительности, теми, что в винде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 15:42 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Обновите статистику (with fullscan) по самым популярным таблицам. зы: tunning advisor - тупица. Не находит очевиднейших вещей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 16:07 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
gepard1980, отследите еще события SP:Completed и SP:StmtCompleted - вторая отследит какая именно инструкция дает такую продолжительность. а вот если SP:Completed будет маленьким, то тогда можно посмотреть в сторону времени компиляции, нагрузки на память и пропускную способность сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 16:30 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
На всякий случай: в RPC буква R - Remote ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 16:32 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
felix_ff, буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 16:54 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
А раньше были тормоза ? Насколько с тех пор вырос объем данных ? Было ли какое-то событие в базе, после которого всё это началось ? Речь про добавление полей, индексов, правку ключевых ХП, вью и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 16:58 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
L_argo, изменений не было. но данных стало конечно больше. Сейчас БД около 70 Гб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 17:34 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
В базу редко что пишется. Восновном читается. А лог транзакций постоянно растет. Сама база 70 Гб. Лог транзакций до 20 доходит. AutoShrink стоит. Но приходится вручную обрезать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 09:26 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
gepard1980В базу редко что пишется. Восновном читается. А лог транзакций постоянно растет. Сама база 70 Гб. Лог транзакций до 20 доходит. AutoShrink стоит. Но приходится вручную обрезать.Модель логирования БД какая (Full, Simple) ? Нужен настроенный джоб по урезке логов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 10:27 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
gepard1980В базу редко что пишется. Восновном читается. А лог транзакций постоянно растет.Лог транзакций не может расти, тем более постоянно, если в базу ничего не пишется. Вам об этом уже писали. Если по профайлеру у запроса duration >= 2000, а CPU = 0 или около того - значит имеют место ожидания каких-то ресурсов. И об этом вам тоже писали. Чтобы выяснить какие именно, нужно: 1. Воспроизвести проблему в SSMS 2. Для сессии из п.1 настроить и запустить соответственно настроенную сессисю Extended Events и проанализировать полученный результат. Пример тут . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 10:33 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
L_argo, модель SIMPLE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 11:09 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
invm, "Если по профайлеру у запроса duration >= 2000, а CPU = 0" - да, это так. Конечно запись в базу есть, но на порядок меньше чем выборки. 1. "Воспроизвести проблему в SSMS" - не представляется возможным, т.к. базу юзает веб-служба с нагрузкой 200 запросов в секунду. Попробую по вашей ссылке ловить где ожидания происходят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 11:19 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
gepard1980"Воспроизвести проблему в SSMS" - не представляется возможным, т.к. базу юзает веб-служба с нагрузкой 200 запросов в секунду.Не нужно выполнять в SSMS 200 запросов в секунду. Достаточно взять любой из трассы и добиться такого же результата при выполнении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 11:26 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
invm, пробую использовать процедуру WhoIsActive. Прикрепил скрин. Селекты на чем-то стоят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 11:36 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
gepard1980Селекты на чем-то стоят.Селекты "стоят" на физических чтениях данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 11:48 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
invm, нагуглил, что длительное время ожидания может указывать на проблемы с дисковой подсистемой. или может база коррупнутая стала после внештатной перезагрузки сервера. поможет ли DBCC CHECKDB ('WebLeader', REPAIRALLOWDATA_LOSS)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 11:59 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
invm, выполнил процедуру Glenn Berry для получения wait stats: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 12:14 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
invm, для определения процентного соотношение ожиданий в системе запустил процедуру, получил следующее: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 12:20 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
gepard1980, Судя по всему, у вас банальная нехватка памяти. Покажите результат выполнения: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 12:26 |
|
||
|
Долгое выполнение хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Если сервер виртуализирован, то проверьте, нет ли высоконагруженно-дисковых задач на "смежных" с ним серверах. У нас такое было: сервер БД иногда "укладывал" почту на "смежном" сервере. Но проще сначала убедицца, что все индексы на месте. И обновить статистики. Это даст больше пользы, чем копание в разного рода "полезных" утилитах. Потом убедиться, что нет бесконечно висящих транзакций. Иногда такое допускают разработчики. Из-за этого могут начинать накапливаться неясного рода блокировки и ожидания. :) А еще время от времени ребутайте сервер, если есть возможность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 12:26 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39738927&tid=1688681]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 424ms |

| 0 / 0 |
