Имя: Пароль:
1C
1С v8
Как ускорить работу 1с?
0 Samir
 
01.10.13
10:32
Имеется распределенка бухгалтерии и корявый отчет...
В головном офисе стоит SQL сервер и собственно сам сервер с достойными характеристиками.
Запуская этот самый корявый внешний отчет в головном офисе он отрабатывает за 5 мин максимум.
В филиалах стоят древние сервачки аля Р4, файловая база, лежит на SCSI-шных винтах, но локальные машины пользователей неплохие i-3 с 2 Гб оперативки, запуская этот отчет на них, отчет отрабатывает около полутора часов.
Искали узкое место. Настроили гигабитную сеть, чуть полегчало, но все равно не приемлемо. Мониторили сервера и локальные машины, нагрузка приемлемая.
Вопрос: Что можно еще сделать для увеличения скорости работы не покупая sql-сервер 1С предприятия?
1 ДенисЧ
 
01.10.13
10:33
"древние сервачки аля Р4, файловая база"
Вот и причина.
Минимум - терминал, максимум - сервер
2 Галахад
 
гуру
01.10.13
10:33
А отчет поправить?
3 Chai Nic
 
01.10.13
10:34
Перейти на БП3.0, и отказаться от распределенки, пусть филиалы подключаются тонким клиентом к серверу в головном офисе)
4 Aleksey
 
01.10.13
10:36
RLS?
5 Samir
 
01.10.13
10:38
(2) Не вариант, я правил, 2 подрядчика правили, идеи закончились. Реализована задача через 1 место, дабы не вносить изменения в конфигурацию
6 Samir
 
01.10.13
10:39
(3) Жутко не удобно, с нашими объемами, да еще и инет частенько падает на филиалах
7 Chai Nic
 
01.10.13
10:40
(6) Там отличненько всё работает независимо от объемов.. трафик тонкого клиента через веб - килобайты.
8 Samir
 
01.10.13
10:42
(7) Огромные затраты ))) Переход с 8.2 на 8.3 сядет в копеечку, не сравнимую с покупкой 2 неплохих серверов
9 Samir
 
01.10.13
10:43
+8 Экономически не выгодно )))
10 Галахад
 
гуру
01.10.13
10:44
(5) А если напрямую "на древних сервачках" быстрее?
11 Samir
 
01.10.13
10:45
(10) Да минут 20
12 Aleksey
 
01.10.13
10:47
(11) А под полными правами?
13 Галахад
 
гуру
01.10.13
10:48
(11) Тогда пусть клиент по COM-у подключается и формирует на сервере, а результат выводит у клиента.
14 Rovan
 
гуру
01.10.13
11:11
(5) давай, давай...расскажи про отчет
может там запросы в цикле...или таблицы значений не индексированные !
15 Rovan
 
гуру
01.10.13
11:19
(+14) а еще лучше сохранил отчет на файл-шару
мистяне посмотрят :-)
16 Samir
 
01.10.13
11:52
(12) Да
17 Fragster
 
модератор
01.10.13
11:54
(15)+1
18 Samir
 
01.10.13
11:58
19 Fragster
 
модератор
01.10.13
12:01
(18) легко ускоряется раза в два
20 Fragster
 
модератор
01.10.13
12:01
возможно больше
21 Fragster
 
модератор
01.10.13
12:02
точно больше
22 Rovan
 
гуру
01.10.13
12:05
(18) отладчиком смотрел какие строки занимаю больше всего времени выполнения ?
23 Fragster
 
модератор
01.10.13
12:06
(22) запрос.выполнить().Выбрать(), это же сразу видно
24 Shurik_sor
 
01.10.13
12:07
а Samir в курсе дела то, смотрю.
25 Rovan
 
гуру
01.10.13
12:13
1) вижу в вирт таблицах отбор
Организация = &Организация
а вот в других отборах его нет (например в отборе ПрихОрдеров)

2) идет несколько отдельных запросов, вместо 1 пакетного
где получения справочника номенклатуры со значением нужного свойства можно сделать вначале в индесированную временную таблицу
26 Fragster
 
модератор
01.10.13
12:18
(25) т.е. левое соединение по Выбор тебя не смутило?
27 Fragster
 
модератор
01.10.13
12:18
да и то, что их там столько вложенных. то, что "в иерархии" в параметрах? да дофига чего
28 anaed
 
01.10.13
12:20
Этот запрос точно пережил оптимизацию от 3 разных людей?
29 Rovan
 
гуру
01.10.13
12:20
(26) это меньшее из зол
30 Fragster
 
модератор
01.10.13
12:22
(29) та ладно, невозможность использования индекса - меньшее из зол?
31 Rovan
 
гуру
01.10.13
12:22
дополнительно:
ИТОГИ в отчет может считать сам запрос
- не надо городить кучу переменных в коде и самому их складывать
32 Fragster
 
модератор
01.10.13
12:23
(28)+100500
33 Галахад
 
гуру
01.10.13
12:24
Вывод, пора нанимать четвертого подрядчика.
34 Fragster
 
модератор
01.10.13
12:25
могу сделать за билет на инфостарт
35 BigShmax
 
01.10.13
15:25
автор обиделся  что ли?
36 Feunoir
 
01.10.13
15:40
(28) Нет. Люди пугались и не пытались даже его оптимизировать.
37 Rovan
 
гуру
01.10.13
15:41
(36) будешь сам дорабатывать или (34) ?
38 Feunoir
 
01.10.13
15:47
(37) Я не ТС, я так, попи$деть заглянул.

А на самом деле:

ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Значение КАК НомерКвитанции,
    ПриходныйКассовыйОрдер.Ссылка КАК Ссылка
ИЗ
    Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПО (ВЫБОР
                КОГДА ЗначенияСвойствОбъектов.Свойство = &НомерКвитанции
                    ТОГДА ПриходныйКассовыйОрдер.Ссылка = ЗначенияСвойствОбъектов.Объект
                ИНАЧЕ ЛОЖЬ
            КОНЕЦ)
ГДЕ
    ПриходныйКассовыйОрдер.Дата МЕЖДУ &НачПериода И &КонПериода) КАК ВложенныйЗапросНомераКвитанций
ПО ХозрасчетныйОбороты.Регистратор = ВложенныйЗапросНомераКвитанций.Ссылка


не эквивалентно ли


ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ВложенныйЗапросНомераКвитанций
ПО ВложенныйЗапросНомераКвитанций.Свойство = &НомерКвитанции И
    ХозрасчетныйОбороты.Регистратор = ВложенныйЗапросНомераКвитанций.Ссылка
40 GROOVY
 
01.10.13
16:00
ХозрасчетныйОбороты.Регистратор.Дата КАК Дата,
ХозрасчетныйОбороты.Регистратор.Номер КАК НомерПКО,
        
Не типизировав поле "Регистратор" мы вот тут имеем неявное левое соединение со всеми таблицами документов регистраторов по регистру бухгалтерии, сколько их там?
41 GROOVY
 
01.10.13
16:04
Я в БП3 насчитал более 70.
42 Fragster
 
модератор
01.10.13
16:08
(40) тссс! ты-то и так на ИС будешь, а я так точно пролечу
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший