|   |   | 
| 
 | Есть ли 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 | 
        реклама от нашего партнера:
 Акция от SoftPoint! Испытайте мониторинг производительности PerfExpert бесплатно. | |||
| 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% :)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |