Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Утечки памяти в sp_xml_preparedocument / 7 сообщений из 7, страница 1 из 1
26.02.2021, 14:55
    #40048997
Zelius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Утечки памяти в sp_xml_preparedocument
Всем привет!

Стоит у нас DPA, который недавно стал показывать в топах задержек sp_xml_preparedocument, причем без количества вызовов, только время ожиданий. Стали думать и возник вопрос про утечки памяти, так как
Код: sql
1.
SELECT * FROM sys.dm_os_memory_objects WHERE type = 'MEMOBJ_MSXML'


уже показывает pages_in_bytes = 6 991 437 824 байт. проверили все процедуры - везде есть sp_xml_removedocument, sys.dm_exec_xml_handles(0) не показывает зависших хендлов. куда дальше копать, не понятно.

Решил провести эксперимент на стейдже - сделал 100 sp_xml_preparedocument без sp_xml_removedocument для XML около 60 КБ, sys.dm_exec_xml_handles(0) их показал, потом разорвал сессию и смотрю MEMOBJ_MSXML, в итоге до эксперимента pages_in_bytes был 2 031 616, после 100 sp_xml_preparedocument было 6 627 328, после отключения сессии стало 2 072 576. То есть получается утечка, в случае ошибки между prepare и remove? Кто-нибудь встречал информацию по этому поводу?

PS Microsoft SQL Server 2019 (RTM-CU8) (KB4577194) - 15.0.4073.23 (X64) Sep 23 2020 16:03:08 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: )

С уважением, Князев Константин
...
Рейтинг: 0 / 0
26.02.2021, 15:05
    #40049005
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Утечки памяти в sp_xml_preparedocument
Zelius,

Вы не обрабатываете ошибки, что ли? TRY - CATCH. remove сам собой не выполнится.
...
Рейтинг: 0 / 0
26.02.2021, 15:09
    #40049011
Zelius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Утечки памяти в sp_xml_preparedocument
Владислав Колосов,

не везде, считал что при разрыве сессии все хендлы очищаются.
msdnsp_xml_preparedocument returns a handle that can be used to access the newly created internal representation of the XML document. This handle is valid for the duration of the session or until the handle is invalidated by executing sp_xml_removedocument.
...
Рейтинг: 0 / 0
26.02.2021, 16:00
    #40049027
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Утечки памяти в sp_xml_preparedocument
Zelius,

Проанализированный документ хранится во внутреннем кэше SQL Server. Средство синтаксического анализа MSXML использует одну восьмую всей памяти, доступной SQL Server. Во избежание проблем с недостатком памяти освободите память с помощью процедуры sp_xml_removedocument.
...
Рейтинг: 0 / 0
26.02.2021, 16:47
    #40049049
Утечки памяти в sp_xml_preparedocument
Zelius, это ожидаемое поведение. Более того не только мемори лики могут быть, но и куча других приколов - скажем tempdb может разрастаться. Посмотрите в моем репозитории там примеров других найти можно много. Если коротко то лучше юзать XQuery.
...
Рейтинг: 0 / 0
26.02.2021, 17:34
    #40049067
Zelius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Утечки памяти в sp_xml_preparedocument
Sergey Syrovatchenko,

спасибо, смотрю.

из интересного - память на сервере вернулась к начальному значению до экспериментов и даже стала чуть меньше. ощущение, что просто было зарезервировано и потом вернулось в пул.
...
Рейтинг: 0 / 0
26.02.2021, 17:55
    #40049074
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Утечки памяти в sp_xml_preparedocument
Zelius,

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


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