Есть ли 1С запрос-профайлер? #695356


#0 by Гадкий 1С-ник
Всем привет. В 1С есть замер производительности, но по отношению к запросам - бесполезно. Как можно 1С запрос (синтаксис) провести через профайлер и увидеть ЧТО ИМЕННО тормозит в запросе ? Какая строка и т.д
#1 by Apokalipsec
замер производительности для слабаков?
#2 by Prog2014
отловить можно отбором через поле фиксированной строкой что именно тормозит в запросе профайлер не покажет
#3 by МойКодУныл
А что мешает запустить его на сервере sql для тестовой базы, зайти туда одному и запустить интересующий запрос в 1С. И посмотреть, что исполнилось и за сколько. Очень часто сам запрос не оптимально транслируется в SQL. Я с админами так делал(со SQL дружу плохо), когда с блокировками разбирался. А вообще лучше сначала почитать рекомендации от 1С по составлению запросов, там почти все методы.
#4 by vcv
Для исследования выполнения запросов обычно есть штатные механизмы SQL-сервера. Для MSSQL это встроенные средства Management Studio, Profiler, Best Practices Analyzer, и куча-куча всего, что можно получить из SQL, прочитав умные книжки. Если база файловая, боюсь уже ничего не поможет.
#5 by Гадкий 1С-ник
само сбой клиент сервер =) Щас SQL студия показывает "тяжелые" запросы, но там вообще нечего не понять: INSERT INTO #tt59 WITH(TABLOCK) (_Q_000_F_000, _Q_000_F_001, _Q_000_F_002) SELECT T1.Q_001_F_000_, (CAST(SUM(T1.Q_001_F_001_) AS NUMERIC(23, 8)) - CAST(SUM(T1.Q_001_F_003_) AS NUMERIC(25, 8))), FROM (SELECT T2.LineNo_ AS Q_001_F_000_, CAST(SUM(CASE WHEN (T6._Fld362RRef IN (0xAA92699C971138934298508513630356, 0xA3AC4ACFF737760A4D2E851CF5E5158B)) THEN T5._Fld5593 ELSE 0.0 END) AS NUMERIC(17, 8)) AS Q_001_F_001_, CAST(SUM(CASE WHEN (T6._Fld362RRef IN (0x81669BC89C87DE99422F62D0EE0BF916, 0x9BFC1BAFCA22A0F24670D6118D626226)) THEN T5._Fld5593 ELSE 0.0 END) AS NUMERIC(17, 8)) AS Q_001_F_002_, CAST(0.0 AS NUMERIC(13, 2)) AS Q_001_F_003_ Этому меня не учили) а что лучше в SQL студио использовать именно что бы показало время по строкам? По переходам и т.д
#6 by Apokalipsec
распихай по ВТ свои подзапросы, замер производительности, смотри какой запрос самый тупой и анализируй. Неплохо, 59ая временная таблица с парочкой сумм выборов...
#7 by vlandev
В 1С 8.2 можно включить технологический журнал , но точно не помню насчет выводятся-ли туда запросы или нет.
#8 by Широкий
Запросы выводятся, если настроишь. Профайлер от скуля все же лучше
#9 by vcv
Выдёргивай нужный запрос, что бы выполнить его из Management Studio. При выполнении из меню Query включай показ планов выполнения и статистики. Ну и почитать какую-нибудь приличную книжку по SQL.
#10 by vcv
Для экспресс обследования можно воспользоваться штатными отчетами (правой кнопкой мыша на базе и Reports). В интернете можно нарыть sql-скрипты, которые показывают фрагментацию индексов, статистику по состояниям ожидания и многое другое.
#11 by vcv
Так же очень рекомендую почитать
#12 by Asmody
реклама от нашего партнера:
#13 by МойКодУныл
Но в 90% случаев этого не нужно. Достаточно просто прочитать статью на ИТС и следовать рекомендациям. Типизировать составные поля в запросе, отказаться от вложенных, индексровать поля соединения и т.д.
#14 by vcv
Понятно, что оптимизацией кода можно достичь кардинального ускорения. Но пренебрегать возможностью оптимизировать SQL на десяток-другой процентов не стоит.
#15 by vcv
Откуда мы тут знаем, в какую группу попадает ? То ли в 90%, то ли в 10%...
#16 by МойКодУныл
я ж совсем не против:) просто к ней обычно прибегают, когда уже весь код 1С оптимизирован. Может, автор еще его не проверял, а уже за тонкую настройку берется.
#17 by Гадкий 1С-ник
Спасибо за помощь
#18 by Apokalipsec
Судя по куску запроса из профайлера - автор попадает в 90%.
#19 by vcv
99% авторов попадают в 90% :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С