powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Долгое выполнение хранимых процедур
25 сообщений из 131, страница 2 из 6
Долгое выполнение хранимых процедур
    #39739057
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, выполнил этот запрос. вернул 0 строк.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739064
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980invm, выполнил этот запрос. вернул 0 строк.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select
 pc.*
from
 (
  values
   (N'MSSQL$' + @@servicename + ':Memory Manager', N'Total Server Memory (KB)'),
   (N'MSSQL$' + @@servicename + ':Memory Manager', N'Target Server Memory (KB)'),
   (N'MSSQL$' + @@servicename + ':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
Долгое выполнение хранимых процедур
    #39739066
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo, индексы все сразу проверил. Для баз используется отдельный диск. Базы две. Одна очень нагруженная, но с ней проблем нет. Бесконечных транзакций тоже нет. Вот думаю может отдельный диск задействовать для этой БД. ОЗУ на сервере 56 ГБ. Под SQL я отдаю 48. Сиквел сразу их отжирает. Опять же повторюсь вторая база еще более нагруженная с миллионными таблицами, но проблем нет с ней. Если бы ОЗУ не хватало, то и она бы подвисала.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739082
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buser, этот вернул такой результат:
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739128
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980вернул такой результатИ это во время "тормозов"?
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739153
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, база круглосуточно находится под нагрузкой, т.к. веб-сервис постоянно работает. Вот текущее положение:
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739172
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя явное противоречие.
gepard1980 Используется практически только для чтения. Редко что в нее пишется.

gepard1980Нагрузка на сам сервер в боевом режиме 3000 транзакций в секунду.

1. Таблица большая ? Какой уровень изоляции транзакций ? Snapshot делает копии данных
2. Кэшируй запросы в БД в своём ПО
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739223
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980,

У вас в секунду около 500 полных сканов и около 1500 физических чтений. При 70 Гб БД и 40 Гб памяти.
Для начала выясните какие именно таблицы полностью сканируются и их объем.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739272
Eleanor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmкакие именно таблицы полностью сканируются и их объем.
Причем, в статистику полных сканов входят табличные переменные в хранимках…
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739309
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eleanor, табличные переменные используются, чтобы например скопом удалять. Пришло например веб-службе задание - удалить тысячу объектов с такими-то уидами. я соответственно вызываю хранимку и передаю ей табличную переменную с этими уидами.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739311
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery_B, база находится в режиме 'read committed snapshot'. Для кэширования использую Redis.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739313
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, я так понимаю надо планы запросов смотреть. хранимок на сервере около тысячи. самые используемые смотреть?
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739318
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, спрашиваю, потому как никогда на такой уровень не спускался. планы не анализировал. на что обратить внимание при их просмотре?
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739557
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980,

У вас имеется:
1. Постоянные физические чтения. В любом случае, это говорит о недостаточном объеме памяти - оперативных данных нет в буферном пуле и их приходится вычитывать с диска.
2. Постоянные ожидания на физических чтениях. Свидетельствует о прегруженности дисков. То, что файлы БД и лога на раных дисках ни о чем не говорит - может это логические диски на одном физическом, или физические на одном канале контроллера, или вообще они виртуальные. И т.д. и т.п.
3. Постоянный рост ЖТ при простой модели восстановления. Для log_reuse_wait_desc = active_transaction такое может быть только при наличии незакрытой долгоиграющей транзакции. Но вы этого не подтверждаете. А чудес не бывает.

Исходя из перечисленного, можно дать только общие рекомендации:
1. Проверить версию сервера и обновиться до последнего SP/CU.
2. Как уже советовали, обновить статистику с полным сканированием.
3. Разбираться с дисковой подсистемой.
4. Нарастить объем памяти сервера.

Возможно эти меры временно решат проблемы.
Если характер работы с БД не предполагает вычитываний всего объема данных, то рано или поздно таки придется заняться оптимизацией запросов. И в рамках этого уже искать злостных читателей. Например, вот так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select top (100)
 st.sql_statement, qp.query_plan, qs.*
from
 sys.dm_exec_query_stats qs cross apply
 sys.dm_exec_query_plan(qs.plan_handle) qp cross apply
 sys.dm_exec_sql_text(qs.sql_handle) qt cross apply
 (
  select substring(
    qt.text,
    qs.statement_start_offset/2 + 1,
    (case when qs.statement_end_offset = -1 then len(convert(nvarchar(max), qt.text)) * 2 else qs.statement_end_offset end - qs.statement_start_offset)/2 + 1
   )
 ) st(sql_statement)
order by
 cast(qs.total_logical_reads as float) / qs.execution_count desc;
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739631
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, благодарю за советы!
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739662
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы не сказал, что памяти мало, т.к. полтора миллиона чтений в секунду - хороший результат. PLE в 1200 это подтверждает. Возможна недозагрузка по ядрам из-за отсутствия распараллеливания (особенности запросов, настроенные ограничения) или недостаточное количество ядер. Я бы на это обратил внимание.
Или задержки ввода-вывода, проверьте среднюю длину дисковых очередей.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739727
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов, открыл PerfMon. Вот длина очереди:
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739751
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, судя по данным resource monitor - вы правы. сильно нагружен диск с базами. попробую сегодня ночью перенести одну из них на другой физический диск. может поможет. если нет, придется SSD искать.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739757
gepard1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, вот еще:
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739780
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980,

Первая строка - диск C обычно. На нем длина очереди 270 - это очень плохо. Чем он у вас нагружен? Tempdb или какие-то приложения работают? Файловое хранилище может быть?
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739785
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовЯ бы не сказал, что памяти мало, т.к. полтора миллиона чтений в секунду - хороший результат. PLE в 1200 это подтверждает.По-вашему сервер занимается физическими чтениями от безделья? Ознакомьтесь - https://solutioncenter.apexsql.com/top-sql-server-memory-pressure-counters/
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739788
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980попробую сегодня ночью перенести одну из них на другой физический диск. может поможет. если нет, придется SSD искать.Дело ваше, но это лечение следствия, а не причины.
...
Рейтинг: 0 / 0
Долгое выполнение хранимых процедур
    #39739789
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gepard1980В... Лог транзакций до 20 доходит. AutoShrink стоит. Но приходится вручную обрезать.

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

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

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


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