A1sQ.ProfiledUnload
Назначение: выполнить SELECT и вернуть выгрузку в связке с профилированием (замер времени/стадий выполнения).
Кому полезно: разработчикам для диагностики «узких мест» запроса.
Кому полезно: разработчикам для диагностики «узких мест» запроса.
Сигнатура
Function ProfiledUnload(QueryText, ProfileName = "", Value1 = Undefined, Value2 = Undefined, Value3 = Undefined, Value4 = Undefined, Value5 = Undefined, Value6 = Undefined, Value7 = Undefined, Value8 = Undefined) Export
Как работает (по исходному коду)
StartTime = CurrentUniversalDateInMilliseconds();
Try
Result = Unload(QueryText, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8);
Duration = CurrentUniversalDateInMilliseconds() - StartTime;
ProfileResult = New Structure;
ProfileResult.Insert("Result", Result);
ProfileResult.Insert("Duration", Duration);
ProfileResult.Insert("ProfileName", ?(ValueIsFilled(ProfileName), ProfileName, "Query"));
// Логируем результат
A1sS.Print("Query profiling [" + ProfileResult.ProfileName + "]: " + Duration + "ms, rows: " + Result.Count());
Return ProfileResult;
Except
A1sS.Print("ProfiledUnload error: " + ErrorDescription());
Return New Structure("Result,Duration,ProfileName", New ValueTable, 0, ProfileName);
EndTry;
Параметры
- QueryText — текст запроса.
- Value1..Value8 — (опц.) параметры запроса.
Возвращает
ТаблицаЗначений (данные) и/или диагностическая информация (см. исходный код функции в этом релизе).
Примеры
ТЗ = A1sQ.ProfiledUnload("ВЫБРАТЬ Ссылка, Наименование ИЗ Справочник.Номенклатура");
Нюансы и ограничения
✅ Удобно для анализа производительности
❗ Профилирование добавляет накладные расходы — не используйте в рабочих транзакциях
❗ Точный формат профиля смотрите в исходном коде версии вашей библиотеки