|
Проблема производительности в режиме клиент-сервер | ☑ | ||
---|---|---|---|---|
0
extrim-style
07.02.13
✎
12:44
|
Имеется Бухия 1.6. В файловом варианте закрытие месяца - 2 минуты. В режиме клиент-сервер 40 минут. На одном и том же сервере. Сервер вполне производительный. Куда смотреть? Что можно донастроить?
|
|||
1
ДенисЧ
07.02.13
✎
12:44
|
в сторону канадской границы... Успеешь. У тебя ещё пара дней есть.
|
|||
2
DEVIce
07.02.13
✎
12:45
|
(0) Нагрешил ты где-то, иди вымаливай прощение. :)
|
|||
3
extrim-style
07.02.13
✎
12:47
|
(2) это не мой велосипед) я еще за него не брался)
|
|||
4
extrim-style
07.02.13
✎
12:47
|
+(3) нужно помочь
|
|||
5
GANR
07.02.13
✎
12:47
|
(0) Замер производительности в помощь. Сравни результаты замеров в файловом и серверном вариантах. Если хочешь конкретику узнать - базу на файловый хостинг.
|
|||
6
DEVIce
07.02.13
✎
12:48
|
(3) Пойди тогда помолись за успех дела. Окропи СВЯТОЙ водой сервер, перекрести его - может поможет, на все воля божия.
|
|||
7
GANR
07.02.13
✎
12:49
|
(0)>Сервер вполне производительный.
Не играет роли - 1С не использует все 8 ядер процессора. Там же нет распараллеливания. |
|||
8
extrim-style
07.02.13
✎
13:01
|
(8) это мне известно. По-твоему получается в файловом режиме использует ядра, в клиент-серверном нет?..
|
|||
9
GANR
07.02.13
✎
13:07
|
(8) Нет, ни файловая, ни серверная не используют все ядра. Планы запросов могут быть разными в файловом и серверном варианте. Один использует индексы, другой - нет, например. Ещё, может, условие где-то в алгоритме стоит, что в файловом варианте - так делать, в серверном - так. Замерять надо, в общем.
|
|||
10
Kreont
07.02.13
✎
13:12
|
(0) Попробуй так:
В закрытии месяца не делать по всем пунктам сразу, а сделать отдельно документы закрытия по каждому разделу. |
|||
11
Sammo
07.02.13
✎
13:15
|
Что значит на одном и том же сервере? Скуль и сервер 1с на 1 сервере?
|
|||
12
extrim-style
07.02.13
✎
13:27
|
(11) и так, и так пробовали
а вобще тут http://infostart.ru/public/147259/ в самом низу "Разносим сервера SQL и Сервера 1с отдельно: На текущих технологиях Ethernet - например Gigabit - НЕ ЦЕЛЕСООБРАЗНО" |
|||
13
МихаилМ
07.02.13
✎
13:28
|
(0)
была такая проблема. отладчик показал. что 1с не эфективно считывает данные - построчно. причем одно и тоже 3 раза. построчные запросы в файловом варианте обрабатываюся быстрее. |
|||
14
extrim-style
07.02.13
✎
13:29
|
(13) не совсем понял. Проблему удалось решить?
|
|||
15
Maxus43
07.02.13
✎
13:30
|
(14) замер сделай сначала и сравни. Скорей всего дело в запросах, можно оптимизировать для клиент-серверной логики и СУБД конкретной
|
|||
16
DEVIce
07.02.13
✎
13:30
|
(12) Кера там написана. Причеч керата как раз именно в этом предложении, о чем я там уже написал сегодня.
|
|||
17
GANR
07.02.13
✎
13:42
|
(13) Видел один отчетик (8.1, правда), который в цикле один и тот же запрос к регистрам накопления с разными параметрами повторял. Так вот: в клиент-серверной базе он работал быстрее, чем в файловой. Вообще непонятно.
|
|||
18
МихаилМ
07.02.13
✎
13:43
|
(14)
нет. закрытие - редкая операция. были еще проблемы производительности с формированием книги покупок. ограничились настройкой папок временных файлов 1с в рам диск и запуском клиента на сервере. возможно некоторое ускорение даст настройка сетевых протоколов для ms sql. так же можно попробовать запусть несколько сеансов и закрывать параллельно по разным контурам учета. |
|||
19
extrim-style
07.02.13
✎
14:00
|
(18) на рам-диске на этой машине тестил специфическую базу. выйгрыша в производительности не нашел.
|
|||
20
extrim-style
07.02.13
✎
14:00
|
+(19) видимо, сервер итак шустрый
|
|||
21
H A D G E H O G s
07.02.13
✎
14:02
|
(18) "возможно некоторое ускорение даст настройка некоторых сетевых протоколов для некоторых ms sql. "
Ваш ответ как всегда точен. И бесполезен. |
|||
22
H A D G E H O G s
07.02.13
✎
14:02
|
(19) Керово тестил. Вернее даже, не то ты тестил.
|
|||
23
H A D G E H O G s
07.02.13
✎
14:04
|
Что показал первый, самый простой и очевидный шаг - замер производительности 1С с включенным ключом -debug на сервере?
|
|||
24
Maxus43
07.02.13
✎
14:04
|
(23) ничего, автор не приступал к нему
|
|||
25
H A D G E H O G s
07.02.13
✎
14:07
|
(24) Пусть тогда продолжает писать в ветку. И то - хлебъ.
|
|||
26
extrim-style
12.02.13
✎
12:41
|
(25) вот только опять добрался до этой темы. Только что померил - 82% времени занимает выполнение вот этого запроса (судя по комментариям - переписанного) - ОбщийМодуль.УправлениеВнеоборотнымиАктивами (платформа 8.1)
Функция РасчетАмортизацииБухРегл(ДатаРасчета, Организация, ОсновноеСредство = Неопределено, ВыдаватьСообщения = Истина) Экспорт ... Если ОсновноеСредство = Неопределено Тогда ТекстУсловия = ""; Иначе Запрос.УстановитьПараметр("ОсновноеСредство", ОсновноеСредство); ТекстУсловия = " И ОсновноеСредство В (&ОсновноеСредство)"; Конецесли; СубконтоОС = Новый Массив(); СубконтоОС.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства); Запрос.УстановитьПараметр("СубконтоОС", СубконтоОС); Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство, | ПРЕДСТАВЛЕНИЕ(НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство) КАК ОсновноеСредствоПредставление, | НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство.Код КАК Код, | НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОСС , | ЕСТЬNULL(СтоимостьОСНачалоПериода.СуммаОстатокДт, 0) КАК СтоимостьНачальныйОстаток, | ЕСТЬNULL(СтоимостьОСКонецПериода.СуммаОстатокДт, 0) КАК СтоимостьКонечныйОстаток, | ЕСТЬNULL(АмортизацияОСНачалоПериода.СуммаОстатокКт, 0) КАК АмортизацияНачальныйОстаток, | ЕСТЬNULL(АмортизацияОСКонецПериода.СуммаОстатокКт, 0) КАК АмортизацияКонечныйОстаток, | ЕСТЬNULL(АмортизацияОСОбороты.СуммаОборотКт, 0) КАК АмортизацияОборот, | ЕСТЬNULL(ВыработкаОСОбороты.КоличествоОборот, 0) КАК Количество, | ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.СрокИспользованияДляВычисленияАмортизации, 0) КАК СрокИспользованияДляВычисленияАмортизации, | ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.СтоимостьДляВычисленияАмортизации, 0) КАК СтоимостьДляВычисленияАмортизации, | ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.ОбъемПродукцииРаботДляВычисленияАмортизации, 0) КАК ОбъемПродукцииРаботДляВычисленияАмортизации, | ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.КоэффициентАмортизации, 0) КАК КоэффициентАмортизации, | ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.КоэффициентУскорения, 0) КАК КоэффициентУскорения, | ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.Период КАК Период, | ГрафикиАмортизацииБухгалтерскийУчетСрезПоследних.ГрафикАмортизации КАК ГрафикАмортизации, | СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетУчета КАК СчетУчета, | СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетНачисленияАмортизации КАК СчетНачисленияАмортизации, | ПервоначальныеСведенияОбОсновныхСредствахОрганизацийСрезПоследних.ИнвентарныйНомер КАК ИнвентарныйНомер, | ПервоначальныеСведенияОбОсновныхСредствахОрганизацийСрезПоследних.СпособНачисленияАмортизации КАК СпособНачисленияАмортизации, | ЕСТЬNULL(ПервоначальныеСведенияОбОсновныхСредствахОрганизацийСрезПоследних.ПервоначальнаяСтоимость, 0) КАК ПервоначальнаяСтоимость, | СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.СпособыОтраженияРасходовПоАмортизации КАК СпособыОтраженияРасходовПоАмортизации, | ЕСТЬNULL(СтоимостьНаНачалоГода.СуммаОстатокДт, 0) - ЕСТЬNULL(АмортизацияНаНачалоГода.СуммаОстатокКт, 0) КАК СтоимостьНаНачалоГода |ИЗ | РегистрСведений.НачислениеАмортизацииОСБухгалтерскийУчет.СрезПоследних(&КонецПериода, Организация = &Организация " + ТекстУсловия + " | И ОсновноеСредство НЕ В (ВЫБРАТЬ | СостоянияОСОрганизаций.ОсновноеСредство | ИЗ | РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций | ГДЕ | СостоянияОСОрганизаций.Состояние = &СнятоСУчета И | СостоянияОСОрганизаций.ДатаСостояния < &Период И | СостоянияОСОрганизаций.Организация = &Организация " + ТекстУсловия + ")) | КАК НачислениеАмортизацииБухгалтерскийУчетСрезПоследних | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&НачалоПериода, Организация = &Организация И ПорядокПогашенияСтоимости = &НачислениеАмортизации " + ТекстУсловия + ") КАК ПервоначальныеСведенияОбОсновныхСредствахОрганизацийСрезПоследних | ПО НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство = ПервоначальныеСведенияОбОсновныхСредствахОрганизацийСрезПоследних.ОсновноеСредство | И НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.НачислятьАмортизацию = ИСТИНА | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СрезПоследних(&НачалоПериода, Организация = &Организация " + ТекстУсловия + ") КАК ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних | ПО НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство = ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиАмортизацииОСБухгалтерскийУчет.СрезПоследних(&НачалоПериода, Организация = &Организация " + ТекстУсловия + ") КАК ГрафикиАмортизацииБухгалтерскийУчетСрезПоследних | ПО НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство = ГрафикиАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.СрезПоследних(&КонецПериода, Организация = &Организация " + ТекстУсловия + ") КАК СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних | ПО НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство = СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СчетаБухгалтерскогоУчетаОС.СрезПоследних(&НачалоПериода, Организация = &Организация " + ТекстУсловия + ") КАК СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоПериода, , &СубконтоОС, Организация = &Организация) КАК СтоимостьОСНачалоПериода | ПО СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.ОсновноеСредство = СтоимостьОСНачалоПериода.Субконто1 И СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетУчета = СтоимостьОСНачалоПериода.Счет | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , &СубконтоОС, Организация = &Организация) КАК СтоимостьОСКонецПериода | ПО СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.ОсновноеСредство = СтоимостьОСКонецПериода.Субконто1 И СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетУчета = СтоимостьОСКонецПериода.Счет | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоПериода, , &СубконтоОС, Организация = &Организация) КАК АмортизацияОСНачалоПериода | ПО СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.ОсновноеСредство = АмортизацияОСНачалоПериода.Субконто1 И СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетНачисленияАмортизации = АмортизацияОСНачалоПериода.Счет | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , &СубконтоОС, Организация = &Организация) КАК АмортизацияОСКонецПериода | ПО СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.ОсновноеСредство = АмортизацияОСКонецПериода.Субконто1 И СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетНачисленияАмортизации = АмортизацияОСКонецПериода.Счет | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Период, , &СубконтоОС, Организация = &Организация) КАК АмортизацияОСОбороты | ПО СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.ОсновноеСредство = АмортизацияОСОбороты.Субконто1 И СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетНачисленияАмортизации = АмортизацияОСОбороты.Счет | ПО НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство = СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.ОсновноеСредство | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыработкаОС.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ВыработкаОСОбороты | ПО НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство = ВыработкаОСОбороты.ОсновноеСредство И ПервоначальныеСведенияОбОсновныхСредствахОрганизацийСрезПоследних.ПараметрВыработки = ВыработкаОСОбороты.ПараметрВыработки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СчетаБухгалтерскогоУчетаОС.СрезПоследних(&НачалоГода, Организация = &Организация " + ТекстУсловия + ") КАК СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследнихНаНачалоГода | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоГода, , &СубконтоОС, Организация = &Организация) КАК СтоимостьНаНачалоГода | ПО СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследнихНаНачалоГода.ОсновноеСредство = СтоимостьНаНачалоГода.Субконто1 И СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследнихНаНачалоГода.СчетУчета = СтоимостьНаНачалоГода.Счет | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоГода, , &СубконтоОС, Организация = &Организация) КАК АмортизацияНаНачалоГода | ПО СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследнихНаНачалоГода.ОсновноеСредство = АмортизацияНаНачалоГода.Субконто1 И СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследнихНаНачалоГода.СчетНачисленияАмортизации = АмортизацияНаНачалоГода.Счет | ПО НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство = СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследнихНаНачалоГода.ОсновноеСредство | "; ВыборкаПоОС = Запрос.Выполнить().Выбрать(); |
|||
27
H A D G E H O G s
12.02.13
✎
13:10
|
Посмотреть, как эта же фигня сделана в типовой УПП на временных таблицах.
|
|||
28
Maxus43
12.02.13
✎
13:17
|
ну вот, оптимизация, оптимизация и ещё разок её же
|
|||
29
Maxus43
12.02.13
✎
13:19
|
на вскидку, не нравится мне
РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоГода, , &СубконтоОС т.е. вборка по всем счетам где есть такое субконто. Даже с точки зрения учета не правильно ж |
|||
30
H A D G E H O G s
12.02.13
✎
13:21
|
(29) Аааа, включил мозг.
Зряяя. Берите из последней УПП, видно же что оптимизировали, переделали на ВТ. |
|||
31
Maxus43
12.02.13
✎
13:22
|
(30) да на ВТ - понятно, а этот кусок просто бросился в глаз
|
|||
32
extrim-style
12.02.13
✎
13:55
|
(30) Спасибо за совет, но упп нет. буду благодарен за код.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |