|   |   | 
| 
 | ТЧ и ТЗ в ОФ - скорости вопрос | ☑ | ||
|---|---|---|---|---|
| 0
    
        ДенисЧ 05.05.16✎ 12:39 | 
        Есть обработка с ТЧ, лежащей на форме.
 Унутре делается тз = ПостроительОтчета.Результат.Выгрузить(); тч.Загрузить(тз); //Не смейтесь, тяжёлое наследие тоталитаризьма... Так вот, на объёмах от 5-7 тыщ записей начинается ощутимое торможение, хотя сам запрос выполняется меньше секунды. Отсюда вопрос - куда копать? ЗЫ. ДС пока не предлагать, конфа в режие совместимости 8.1 ... | |||
| 1
    
        vicof 05.05.16✎ 12:45 | 
        Дс и не поможет, он предназначен для отображения небольшого количества записей     | |||
| 2
    
        ДенисЧ 05.05.16✎ 12:46 | 
        (1) ДС будет тянуть порциями, а не все 5000 записей...     | |||
| 3
    
        vicof 05.05.16✎ 12:46 | 
        Нафейхоа пользователю 7 тыщ записей?     | |||
| 4
    
        Йохохо 05.05.16✎ 12:46 | 
        обновлять построчно обходом результата, доли секунды вместо падения по памяти на 50к строк примитивных типов     | |||
| 5
    
        ДенисЧ 05.05.16✎ 12:47 | 
        (3) Чтобы одновременно видеть документы как марта, так и мая.     | |||
| 6
    
        vicof 05.05.16✎ 12:48 | 
        (2) проверял? Я вот на больших объёмах записей, особенно при скроллинге, в дс вижу сплошные тормоза.     | |||
| 7
    
        Лефмихалыч 05.05.16✎ 12:49 | 
        (0) а если итоги все убить, воспроизводится?     | |||
| 8
    
        vicof 05.05.16✎ 12:49 | 
        (5) может,  ты ему отчёт состряпаешь? Я за месяц столько документов не просмотрю.     | |||
| 9
    
        Лефмихалыч 05.05.16✎ 12:50 | 
        (3) чтобы крЫЖЫТЬ!     | |||
| 10
    
        ДенисЧ 05.05.16✎ 12:55 | 
        (8) Это не отчет, это АРМ
 (7) какие итоги? | |||
| 11
    
        Лефмихалыч 05.05.16✎ 13:00 | 
        (10) в запросе есть ИТОГИ ПО? Вот если сделать так, чтобы их не было, выгружаться так же долго будет?     | |||
| 12
    
        ДенисЧ 05.05.16✎ 13:01 | 
        (11) нет итогов. Это плоская таблица а-ля журнал документов, только с кучей дополнительных приплюшек     | |||
| 13
    
        Лефмихалыч 05.05.16✎ 13:02 | 
        (12) а которая из двух строк-то медленно делается? Или обе?     | |||
| 14
    
        ДенисЧ 05.05.16✎ 13:03 | 
        (13) Выгрузка результата     | |||
| 15
    
        Лефмихалыч 05.05.16✎ 13:04 | 
        (14) а если Выгрузить() на сервере? На клиента так же долго идти будет?     | |||
| 16
    
        ДенисЧ 05.05.16✎ 13:05 | 
        (15) ОФ же. Научи меня запускать код внешней обработки на сервере...     | |||
| 17
    
        Лефмихалыч 05.05.16✎ 13:06 | 
        (16) внешняя обработка может вызывать то, что выполняется только на сервере. Этому же, надеюсь, не надо учить? Или у тебя доступа в код нет?     | |||
| 18
    
        ДенисЧ 05.05.16✎ 13:07 | 
        (17) Мне не хочется лезть в общие модули... Там такого наворочено.
 Да и не думаю, что будет быстрее. Ибо сейчас, в тестовом режиме скуль и сервер 1с работают на одном компе. И клиент там же. | |||
| 19
    
        Лефмихалыч 05.05.16✎ 13:09 | 
        (18) 5-7 тысяч - это слишком мало. На продуктиве это воспроизводится? Может дело именно в тестовом сервере?
 Или 5-7 тысяч - это не строк, а колонок? Это бы всё объяснило... | |||
| 20
    
        ДенисЧ 05.05.16✎ 13:11 | 
        (19) На продуктиве всё ещё хуже. Там немного больше пользователей в базе. На пару порядков ))     | |||
| 21
    
        Лефмихалыч 05.05.16✎ 13:13 | 
        (20) происходящее у тебя там подозрительно бессмысленно     | |||
| 22
    
        ДенисЧ 05.05.16✎ 13:33 | 
        (21) Обоснуй     | |||
| 23
    
        Лефмихалыч 05.05.16✎ 13:38 | 
        (22) ну - чудеса в смысле. Либо железо древнее, как яйца мамонта, либо оно сконфигурировано через ДПО (например, оперативы мало и всё в свопе живет), либо не должно такого быть. Даже 10К строк - это пыль и на сервере не может оно тормозить.     | |||
| 24
    
        Лефмихалыч 05.05.16✎ 13:39 | 
        Д - в смысле "дамский"     | |||
| 25
    
        ДенисЧ 05.05.16✎ 14:31 | 
        А если такой вариант: отказаться от ТЧ и сделать все на форме списка документов?
 Будет лучше? | |||
| 26
    
        4St 05.05.16✎ 14:42 | 
        (25) Можно и на форме, в "ПриПолученииДанных". Выборка явно будет меньше. Минус - невозможна фильтрация/поиск по добавленным к основному списку полям. Если она не критична, то и ладно.     | |||
| 27
    
        4St 05.05.16✎ 14:50 | 
        (10) Вообще 7К строк для АРМ - не многовато ли? 
 В выборке точно нет реквизитов типа неограниченной строки или ХранилищеЗначения? Сколько вообще колонок в таблице? | |||
| 28
    
        ДенисЧ 05.05.16✎ 14:53 | 
        (27) 1. нет. Перевозки могут длиться по 2-3 месяца. Так что период нужен большой
 2. нет 3. ~45 | |||
| 29
    
        4St 05.05.16✎ 14:59 | 
        (28) тз = ПостроительОтчета.Результат.Выгрузить(тч.Загрузить(тз));
 Когда-то тестил подобное, по-моему, это самый шустрый вариант оказался. | |||
| 30
    
        ДенисЧ 05.05.16✎ 15:01 | 
        (29) Что это за нелепая конструкция?     | |||
| 31
    
        4St 05.05.16✎ 15:02 | 
        Ну ты понял )
 тч.Загрузить(ПостроительОтчета.Результат.Выгрузить()); | |||
| 32
    
        Fragster гуру 05.05.16✎ 15:03 | 
        представления тормозят?     | |||
| 33
    
        Fragster гуру 05.05.16✎ 15:03 | 
        текст запроса построителя какой?     | |||
| 34
    
        Fragster гуру 05.05.16✎ 15:04 | 
        настоящий, я имею ввиду     | |||
| 35
    
        ДенисЧ 05.05.16✎ 15:04 | 
        (32) Кстати я пробовал, например вместо Организация в запросе выбрать ПРЕДСТАВЛЕНИЕ(Организация). +5% к тормозам...     | |||
| 36
    
        ДенисЧ 05.05.16✎ 15:04 | 
        (34) 5 экранов. Что тебя в нём интересует? Запрос выполняется <2сек. А выгружается > 8     | |||
| 37
    
        4St 05.05.16✎ 15:05 | 
        (28) Не Деловые Линии часом? ))     | |||
| 38
    
        ДенисЧ 05.05.16✎ 15:05 | 
        (37) Мы по сравнению с ними сосунки. У них 5000 человек, у нас всего 200 )))     | |||
| 39
    
        Fragster гуру 05.05.16✎ 15:10 | 
        (35) в замере затуп на "загрузить"? или в замере все ок и тормозит на возврате в "визуальную" часть?     | |||
| 40
    
        4St 05.05.16✎ 15:10 | 
        (38) Я просто представил, как 5000 человек будут разом обновлять АРМ )))
 Кстати, они вообще запретили в своих АРМ показывать более 100 строк. Как только в запросе появляется 101-я, пользователю предлагается сузить выборку. | |||
| 41
    
        Fragster гуру 05.05.16✎ 15:10 | 
        (36) есть ли в реально выполняемом запросе представления. ну и профайлером скуля и прокмоном можно еще попробовать снять, что 1ска в этот момент делает.     | |||
| 42
    
        ДенисЧ 05.05.16✎ 15:11 | 
        (39) В замере затуп на Выгрузить(). Я уже написал. ПРофайлер на это ничего не показывает.     | |||
| 43
    
        Лефмихалыч 05.05.16✎ 15:11 | 
        (25) будет. ДокументСписок порционно читает данные. Но там отборы только по И. Если подходит - делай     | |||
| 44
    
        ДенисЧ 05.05.16✎ 15:12 | 
        (40) Вот когда ребята-админы заметили, что при каждом обновлении сервер читает по 8 лямов строк, тогда и возникла эта задачка...
 Запросы были бешеные. Но я доился ускорения их на порядок... | |||
| 45
    
        ДенисЧ 05.05.16✎ 15:12 | 
        (41) Явно ПРЕДСТАВЛЕНИЕ нигде нет     | |||
| 46
    
        ДенисЧ 05.05.16✎ 15:13 | 
        (43) Да и у меня сейчас только И     | |||
| 47
    
        Fragster гуру 05.05.16✎ 15:14 | 
        (42) а если использовать 
 1: построитель запроса 2: где будет затуп при таком варианте: рез = ПостроительОтчета.Результат; тз = рез.Выгрузить(); тч.Загрузить(тз); | |||
| 48
    
        ДенисЧ 05.05.16✎ 15:15 | 
        (47) Ща попробую     | |||
| 49
    
        Лефмихалыч 05.05.16✎ 15:15 | 
        (46) пробуй тогда. Возможно понадобится подкинуть индексов под то, по чем отбираешь.
 Правда мне не понятно, что там делают 7 экранов запроса, если тот же самый список можно отборами из ДокументСписка получить | |||
| 50
    
        4St 05.05.16✎ 15:17 | 
        (49) там длинные отгрузки. Хренова гора всяких статусов, отметок, ФИО водителей, номера контейнеров, квитанции и т.д.     | |||
| 51
    
        ДенисЧ 05.05.16✎ 15:18 | 
        (47) Хм... На Результат... Странно...
 Надо копать дальше... | |||
| 52
    
        4St 05.05.16✎ 15:18 | 
        (48) А еще интересно
 ЗначениеВФайл("c:\temp\123.tx_",ТЗ) Каков будет размер файла? | |||
| 53
    
        Fragster гуру 05.05.16✎ 15:18 | 
        (51) значит таки запрос ;)     | |||
| 54
    
        4St 05.05.16✎ 15:19 | 
        а, все, снимаю вопрос ))     | |||
| 55
    
        Лефмихалыч 05.05.16✎ 15:19 | 
        (51) таки откуда тогда уверенность, что профайлер не покажет ни чего?     | |||
| 56
    
        ptiz 05.05.16✎ 15:19 | 
        (0) Что-то странное.
 У себя в одной обработке сделал ТЧ.Загрузить(ТЗ) - 1 секунда 6000 строк и 115 колонок. | |||
| 57
    
        Fragster гуру 05.05.16✎ 15:20 | 
        (56) да запрос у него тормозит     | |||
| 58
    
        Лефмихалыч 05.05.16✎ 15:25 | 
        (57) что, в общем, странно, ведь запрос должен выполняться, когда кастуешь Выполнить(), а не когда к результату обращаешься. Построитель - гадкий тип...     | |||
| 59
    
        Fragster гуру 05.05.16✎ 15:27 | 
        (58) ПостроительЗапроса (QueryBuilder)
 Выполнить (Execute) Синтаксис: Выполнить() Описание: Выполняет запрос и записывает результат в свойство Результат. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Выставляет внутренний флаг необходимости перевыполнения запроса при получении результата запроса. | |||
| 60
    
        Fragster гуру 05.05.16✎ 15:28 | 
        короче, если не делать Выполнить(), то запрос выполнится при обращении к .Результат. А если делать - то при Выполнить()     | |||
| 61
    
        ДенисЧ 05.05.16✎ 15:28 | 
        (53) Запрос в консоли выполняется 1.7 сек     | |||
| 62
    
        Fragster гуру 05.05.16✎ 15:29 | 
        (61) сообщить(Построитель.ПолучитьЗапрос().Текст)     | |||
| 63
    
        Лефмихалыч 05.05.16✎ 15:30 | 
        (61) это хорошо или плохо? Запрос получен методом ПолучитьЗапрос() или нет?     | |||
| 64
    
        ДенисЧ 05.05.16✎ 15:30 | 
        (60) Двумя строками выше стоит выполнить() и занимает 0.0% времени     | |||
| 65
    
        ДенисЧ 05.05.16✎ 15:31 | 
        (63) Нет, перед выполнением Построитель.Запрос.Текст
 По сравнению с тем, что было - это очень хорошо | |||
| 66
    
        Fragster гуру 05.05.16✎ 15:31 | 
        (64)  ну, значит "оптимизировали"     | |||
| 67
    
        Лефмихалыч 05.05.16✎ 15:31 | 
        (65) ты в консоли не тот текст тестировал     | |||
| 68
    
        Fragster гуру 05.05.16✎ 15:31 | 
        зачем выполнять, если нет обращения к результату, и все такое...     | |||
| 69
    
        ДенисЧ 05.05.16✎ 15:33 | 
        (67) Сравнил. Однаковые вплоть до пробелов     | |||
| 70
    
        Fragster гуру 05.05.16✎ 15:34 | 
        Запрос = Построитель.ПолучитьЗапрос();
 Рез = Запрос.Выполнить(); ... | |||
| 71
    
        Fragster гуру 05.05.16✎ 15:35 | 
        (69) может быть потому что это построитель отчета а не запроса и он таки добавляет колонки с представлением?     | |||
| 72
    
        Fragster гуру 05.05.16✎ 15:35 | 
        при обращении к результату     | |||
| 73
    
        Лефмихалыч 05.05.16✎ 15:36 | 
        (71) тьху! Биомать... В самом же начале же...     | |||
| 74
    
        Fragster гуру 05.05.16✎ 15:38 | 
        (73) я хз, все не читал. однако то, что тормозит запрос мы уже выяснили.     | |||
| 75
    
        Fragster гуру 05.05.16✎ 15:39 | 
        и вообще, я атвору не верю, он мне пиво должен     | |||
| 76
    
        ДенисЧ 05.05.16✎ 15:39 | 
        (71) Проверил через ПолуитьЗапрос() - нет представлений     | |||
| 77
    
        ДенисЧ 05.05.16✎ 15:40 | 
        (75) Когда в Питере буду - поставлю. Я не забыл.     | |||
| 78
    
        Fragster гуру 05.05.16✎ 15:40 | 
        (76) а вариант (70) проверил?     | |||
| 79
    
        ДенисЧ 05.05.16✎ 15:40 | 
        (74) в консоли 1.5 секунды, в построителе 3. С чего бы?     | |||
| 80
    
        ДенисЧ 05.05.16✎ 15:41 | 
        (78) Да. Разница в сотых долях секунды     | |||
| 81
    
        Fragster гуру 05.05.16✎ 15:42 | 
        (79) с того, что при обращении к .Результат может происходить выполнение запроса     | |||
| 82
    
        Лефмихалыч 05.05.16✎ 15:42 | 
        (79) про - што? про - файлер.     | |||
| 83
    
        Fragster гуру 05.05.16✎ 15:43 | 
        (80) на какой строке тормозит:
 Запрос = ПостроительОтчета.ПолучитьЗапрос(); Рез = Запрос.Выполнить(); тз = Рез.Выгрузить(); тч.Загрузить(тз); | |||
| 84
    
        ДенисЧ 05.05.16✎ 15:44 | 
        (83) на второй
 (81) а в консоли оно не происходит? | |||
| 85
    
        Fragster гуру 05.05.16✎ 15:46 | 
        (84)  т.е. тормозит запрос, а не выгрузка?
 тогда нам нужен запрос.текст. ну, или сделай сам на получившемся запросе https://www.youtube.com/watch?v=QqM8qXGcUVU там есть замер по подзапросам | |||
| 86
    
        Fragster гуру 05.05.16✎ 15:48 | 
        (84) мы же хз, какой ты там текст в консоль пихаешь. Построитель.Текст - это не текст запроса, выполняемого построителем, это болванка     | |||
| 87
    
        ptiz 05.05.16✎ 15:54 | 
        Чтобы не было разночтений: метод .Выполнить() тормозить не может, т.к. запрос выполняется только при обращении к свойству .Результат или при выполнении метода .Вывести()     | |||
| 88
    
        Карупян 05.05.16✎ 16:01 | 
        Может там всяких свойств и значений?     | |||
| 89
    
        ДенисЧ 05.05.16✎ 16:02 | 
        В общем я понял.
 Построитель тормозит на сборке результата, выкидывает лишние поля и параметры. Буду этим играться. Всем спасибо за внимание. | |||
| 90
    
        Карупян 05.05.16✎ 16:03 | 
        Ну выкидывание не должно тормозить     | |||
| 91
    
        ptiz 05.05.16✎ 16:04 | 
        (89) Замени Построитель.Результат на:
 Запрос = Построитель.ПолучитьЗапрос() Результат = Запрос.Выполнить(); и убедишься, что тормозит именно Запрос.Выполнить() | |||
| 92
    
        Fragster гуру 05.05.16✎ 16:10 | 
        (91) он уже заменил и убедился     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |