powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Долгое выполнение хранимых процедур
25 сообщений из 131, страница 1 из 6
Долгое выполнение хранимых процедур
    #39738601
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть база на 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'. Файл данных на одном диске, лог транзакций на другом. В чем может быть причина тормозов? Что еще нужно посмотреть?
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738604
AlanDenton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вначале смотрите ожидания. Нагрузку на диски / проц. Анализируете "долгие" запросы и их планы. Может банально индексов не хватает. Может индексы хреновые выбираются. Может прослушивание параметров и тд. Начните с простого - посмотреть что с машиной.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738632
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980,

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

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

Можете посмотреть типы ожиданий административными представлениями. Однако, они работают кумулятивно, если началось недавно, то ничего не найдёте.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738647
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff, там максимально простые выборки. никакой ole автоматизации, запросов на удаленные ресурсы, waitfor-конструкций нет. индексы вроде все нужные есть. tuning advisor ничего не нашел для оптимизации.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738648
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше воспользуйтесь счетчиками производительности, теми, что в винде.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738660
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновите статистику (with fullscan) по самым популярным таблицам.

зы: tunning advisor - тупица. Не находит очевиднейших вещей.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738668
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980,

отследите еще события SP:Completed и SP:StmtCompleted - вторая отследит какая именно инструкция дает такую продолжительность.

а вот если SP:Completed будет маленьким, то тогда можно посмотреть в сторону времени компиляции, нагрузки на память и пропускную способность сети.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738671
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай: в RPC буква R - Remote
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738678
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff, буду пробовать.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738682
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А раньше были тормоза ?
Насколько с тех пор вырос объем данных ?
Было ли какое-то событие в базе, после которого всё это началось ?

Речь про добавление полей, индексов, правку ключевых ХП, вью и т.д.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738708
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo, изменений не было. но данных стало конечно больше. Сейчас БД около 70 Гб.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738927
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В базу редко что пишется. Восновном читается. А лог транзакций постоянно растет. Сама база 70 Гб. Лог транзакций до 20 доходит. AutoShrink стоит. Но приходится вручную обрезать.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738954
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980В базу редко что пишется. Восновном читается. А лог транзакций постоянно растет. Сама база 70 Гб. Лог транзакций до 20 доходит. AutoShrink стоит. Но приходится вручную обрезать.Модель логирования БД какая (Full, Simple) ?
Нужен настроенный джоб по урезке логов.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738962
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980В базу редко что пишется. Восновном читается. А лог транзакций постоянно растет.Лог транзакций не может расти, тем более постоянно, если в базу ничего не пишется. Вам об этом уже писали.

Если по профайлеру у запроса duration >= 2000, а CPU = 0 или около того - значит имеют место ожидания каких-то ресурсов. И об этом вам тоже писали.
Чтобы выяснить какие именно, нужно:
1. Воспроизвести проблему в SSMS
2. Для сессии из п.1 настроить и запустить соответственно настроенную сессисю Extended Events и проанализировать полученный результат. Пример тут .
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738986
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo, модель SIMPLE.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39738996
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, "Если по профайлеру у запроса duration >= 2000, а CPU = 0" - да, это так. Конечно запись в базу есть, но на порядок меньше чем выборки. 1. "Воспроизвести проблему в SSMS" - не представляется возможным, т.к. базу юзает веб-служба с нагрузкой 200 запросов в секунду. Попробую по вашей ссылке ловить где ожидания происходят.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739004
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980"Воспроизвести проблему в SSMS" - не представляется возможным, т.к. базу юзает веб-служба с нагрузкой 200 запросов в секунду.Не нужно выполнять в SSMS 200 запросов в секунду.
Достаточно взять любой из трассы и добиться такого же результата при выполнении.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739013
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, пробую использовать процедуру WhoIsActive. Прикрепил скрин. Селекты на чем-то стоят.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739024
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980Селекты на чем-то стоят.Селекты "стоят" на физических чтениях данных.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739030
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, нагуглил, что длительное время ожидания может указывать на проблемы с дисковой подсистемой. или может база коррупнутая стала после внештатной перезагрузки сервера. поможет ли DBCC CHECKDB ('WebLeader', REPAIRALLOWDATA_LOSS)?
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739040
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, выполнил процедуру Glenn Berry для получения wait stats:
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739045
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, для определения процентного соотношение ожиданий в системе запустил процедуру, получил следующее:
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739050
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980,

Судя по всему, у вас банальная нехватка памяти. Покажите результат выполнения:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select
 pc.*
from
 (
  values
   (N'SQLServer:Memory Manager', N'Total Server Memory (KB)'),
   (N'SQLServer:Memory Manager', N'Target Server Memory (KB)'),
   (N'SQLServer:Buffer Manager', N'Page life expectancy')
 ) t(object_name, counter_name) join
 sys.dm_os_performance_counters pc on pc.object_name = t.object_name and pc.counter_name = t.counter_name;
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739052
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сервер виртуализирован, то проверьте, нет ли высоконагруженно-дисковых задач на "смежных" с ним серверах.

У нас такое было: сервер БД иногда "укладывал" почту на "смежном" сервере.

Но проще сначала убедицца, что все индексы на месте. И обновить статистики.
Это даст больше пользы, чем копание в разного рода "полезных" утилитах.

Потом убедиться, что нет бесконечно висящих транзакций. Иногда такое допускают разработчики.
Из-за этого могут начинать накапливаться неясного рода блокировки и ожидания. :)

А еще время от времени ребутайте сервер, если есть возможность.
...
Рейтинг: 0 / 0
25 сообщений из 131, страница 1 из 6
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Долгое выполнение хранимых процедур
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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