Имя: Пароль:
1C
1С v8
Есть ли 1С запрос-профайлер?
, ,
0 Гадкий 1С-ник
 
21.01.14
09:28
Всем привет.

В 1С есть замер производительности, но по отношению к запросам - бесполезно.


Как можно 1С запрос (синтаксис) провести через профайлер и увидеть ЧТО ИМЕННО тормозит в запросе ? Какая строка и т.д
1 Apokalipsec
 
21.01.14
09:33
замер производительности для слабаков?
2 Prog2014
 
21.01.14
09:35
(0)отловить можно отбором через поле фиксированной строкой
что именно тормозит в запросе профайлер не покажет
3 МойКодУныл
 
21.01.14
09:41
(0)
А что мешает запустить его на сервере sql для тестовой базы, зайти туда одному и запустить интересующий запрос в 1С. И посмотреть, что исполнилось и за сколько. Очень часто сам запрос не оптимально транслируется в SQL. Я с админами так делал(со SQL дружу плохо), когда с блокировками разбирался.

А вообще лучше сначала почитать рекомендации от 1С по составлению запросов, там почти все методы.
4 vcv
 
21.01.14
09:42
Для исследования выполнения запросов обычно есть штатные механизмы SQL-сервера.
Для MSSQL это встроенные средства Management Studio, Profiler, Best Practices Analyzer, и куча-куча всего, что можно получить из SQL, прочитав умные книжки.
Если база файловая, боюсь уже ничего не поможет.
5 Гадкий 1С-ник
 
21.01.14
09:44
(4) само сбой клиент сервер =)

Щас 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))),
CAST(SUM(T1.Q_001_F_002_) AS NUMERIC(23, 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 Apokalipsec
 
21.01.14
09:46
распихай по ВТ свои подзапросы, замер производительности, смотри какой запрос самый тупой и анализируй.
Неплохо, 59ая временная таблица с парочкой сумм выборов...
7 vlandev
 
21.01.14
09:47
В 1С 8.2 можно включить технологический журнал , но точно не помню насчет выводятся-ли туда запросы или нет.
8 Широкий
 
21.01.14
09:48
(7) Запросы выводятся, если настроишь.
Профайлер от скуля все же лучше
9 vcv
 
21.01.14
09:49
(5) Выдёргивай нужный запрос, что бы выполнить его из Management Studio. При выполнении из меню Query включай показ планов выполнения и статистики. Ну и почитать какую-нибудь приличную книжку по SQL.
10 vcv
 
21.01.14
09:52
(5) Для экспресс обследования можно воспользоваться штатными отчетами (правой кнопкой мыша на базе и Reports). В интернете можно нарыть sql-скрипты, которые показывают фрагментацию индексов, статистику по состояниям ожидания и многое другое.
11 vcv
 
21.01.14
09:53
(5) Так же очень рекомендую почитать http://www.gilev.info/
12 Asmody
 
21.01.14
09:53
13 МойКодУныл
 
21.01.14
09:54
(10) Но в 90% случаев этого не нужно. Достаточно просто прочитать статью на ИТС и следовать рекомендациям.
Типизировать составные поля в запросе, отказаться от вложенных, индексровать поля соединения и т.д.
14 vcv
 
21.01.14
09:57
(13) Понятно, что оптимизацией кода можно достичь кардинального ускорения. Но пренебрегать возможностью оптимизировать SQL на десяток-другой процентов не стоит.
15 vcv
 
21.01.14
09:58
(13) Откуда мы тут знаем, в какую группу попадает (0) ? То ли в 90%, то ли в 10%...
16 МойКодУныл
 
21.01.14
09:59
(14) я ж совсем не против:) просто к ней обычно прибегают, когда уже весь код 1С оптимизирован. Может, автор еще его не проверял, а уже за тонкую настройку берется.
17 Гадкий 1С-ник
 
21.01.14
10:00
Спасибо за помощь
18 Apokalipsec
 
21.01.14
10:01
Судя по куску запроса из профайлера - автор попадает в 90%.
19 vcv
 
21.01.14
10:06
(18) 99% авторов попадают в 90% :)
Независимо от того, куда вы едете — это в гору и против ветра!