Имя: Пароль:
1C
 
Перевод базы на postgres, тормоза простого отчета
0 Igor_86
 
03.11.16
12:05
В порядке эксперимента перевели базу 1С БП 2.0 с 8.2 файловой на 8.3.8 в связске с posttgres 9.4
стал тормозить самописный отчет.  в отчете идет соединение таблицы документов с оборотам регистра бухгалтерии
было
ВЫБРАТЬ
    ТоварныйЧекТовары.Ссылка КАК Документ,
    ТоварныйЧекТовары.Номенклатура КАК Номенклатура,
    СУММА(ТоварныйЧекТовары.Количество) КАК КоличествоПоДокументу,
    СУММА(ТоварныйЧекТовары.Сумма) КАК СуммаПоДокументу,
    ТоварныйЧекТовары.Номенклатура.Родитель.Наименование КАК ГруппаНоменклатуры
ПОМЕСТИТЬ ВремТовЧек
ИЗ
    Документ.ТоварныйЧек.Товары КАК ТоварныйЧекТовары
ГДЕ
    ТоварныйЧекТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
    И ТоварныйЧекТовары.Ссылка.Проведен = ИСТИНА
    И ТоварныйЧекТовары.Ссылка.СкладОтправитель = &Склад

СГРУППИРОВАТЬ ПО
    ТоварныйЧекТовары.Номенклатура,
    ТоварныйЧекТовары.Ссылка,
    ТоварныйЧекТовары.Номенклатура.Родитель.Наименование
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВремТовЧек.Документ,
    ВремТовЧек.Номенклатура,
    СУММА(ВремТовЧек.КоличествоПоДокументу) КАК КоличествоПоДокументу,
    СУММА(ВремТовЧек.СуммаПоДокументу) КАК СуммаПоДокументу,
    ВремТовЧек.ГруппаНоменклатуры,
    -СУММА(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.СуммаОборот, 0)) КАК СтоимостьПартии,
    -СУММА(ЕСТЬNULL(ХозрасчетныйОборотыДтКт.КоличествоОборот, 0)) КАК КоличествоПоРегистру
ИЗ
    ВремТовЧек КАК ВремТовЧек
        ЛЕВОЕ СОЕДИНЕНИЕ


РегистрБухгалтерии.Хозрасчетный.Обороты(&НачДата, &КонДата, Регистратор, Счет В ИЕРАРХИИ (&Счет41), &ВидыСубконто, Организация = &Организация И Субконто2 = &Склад, КорСчет В ИЕРАРХИИ (&Счет41), &ВидыСубконто) КАК ХозрасчетныйОборотыДтКт
ХозрасчетныйОборотыДтКт
        ПО ВремТовЧек.Документ = ХозрасчетныйОборотыДтКт.Регистратор
            И ВремТовЧек.Номенклатура = ХозрасчетныйОборотыДтКт.Субконто1

СГРУППИРОВАТЬ ПО
    ВремТовЧек.Документ,
    ВремТовЧек.Номенклатура,
    ВремТовЧек.ГруппаНоменклатуры

вынес соединение с виртуальной таблицей в отдельный подзапрос с индексированием полей соединения. все равно подтормаживает по сравнению с файловым режимом. запрос написан не мной. коллеги, были ли аналогичные ситуации и почему они имеют место быть?
1 Fragster
 
гуру
03.11.16
12:08
Счет В ИЕРАРХИИ (&Счет41) замени на развернутый список
2 Fragster
 
гуру
03.11.16
12:09
и нафига регситратор и обороты вместо отстатков???
3 Igor_86
 
03.11.16
12:10
на последней конференции инфостарта порекомендовали уходить от полного соединения. левое соединение нормально работает в postgres?
4 YFedor
 
03.11.16
12:11
1С нормально работает только с MS SQL Server вот и весь ответ
5 Fragster
 
гуру
03.11.16
12:12
(3) от _полного_ соединения надо уходить в объединение. потому что полное и левое - разные вещи. левое нормально работает в постгрес. просто запрос в (0) непонятный и нифига не простой.
6 Igor_86
 
03.11.16
12:16
помогло с условием на равенство счету.  почему так?))
7 Локи-13
 
03.11.16
12:26
(6) сравни два плана запроса и поймешь
8 Garykom
 
гуру
03.11.16
12:33
(4) 1С всегда быстрее всего работает на файловой - вот это правильный ответ.
Любые сервера 1С и сервера БД это вынужденное и более тормозное решение когда много юзеров.
Чтобы пусть медленнее чем файловая но хотя бы работало а не висело как с файловой по сети.
9 Asmody
 
03.11.16
12:34
(8) Имел радость многократно убедиться, что серверная версия работает быстрее файловой на одной и той же машине.
10 Asmody
 
03.11.16
12:35
(9)+ уточнение: _некоторые_ операции/запросы работают быстрее.
11 Garykom
 
гуру
03.11.16
12:37
(9) Хаха.

(10) А остальные коих больше, медленнее да? Забываем про оптимизацию сервера БД и работу с индексами с максимальным использованием памяти.

ЗЫ Оперативочку и прочие ресурсы давай ограничим и сравним?
12 Asmody
 
03.11.16
12:38
(11) "на одной машине"
13 Garykom
 
гуру
03.11.16
12:40
(12) я понял что на одной, но использовать ресурсы одной можно по разному в %
14 Жан Пердежон
 
03.11.16
12:42
(0) запрос УГ;
файловая почти всегда будет быстрее на небольших данных и с 1м пользователем (да еще и без РЛС поди)
и тут уже без разницы какая СУБД
15 Garykom
 
гуру
03.11.16
12:44
(0) ТС стоит понять простую вещь, что этот "тормозной запрос" в случае сервера будет практически одинаково "тормозить" на 1, 10 или 100 пользователях.
А в случае файловой даже 10 юзеров не дождутся ответа ))
16 Garykom
 
гуру
03.11.16
12:46
(15)+ понятно что утрирую и практически разница будет (и возможно большая), но смысл такой примерно
17 dmrjan
 
03.11.16
13:58
PostgreSQL 9.5.4
https://postgrespro.ru/products/1c_build
То, что PostgreSQL обозначена как тестовая - сами разработчики говорят, что не страшно.
1С предлагается ставить 8.3.9 последний релиз.
https://postgrespro.ru/blog/company/129146
18 Провинциальный 1сник
 
03.11.16
14:17
Правило номер раз - не делать джойнов с подзапросами или виртуальными таблицами.
19 ansh15
 
04.11.16
10:49
(11) Надо постепенно переставать работать на старье 6-7-и летней давности...
Серверная индустрия сейчас предлагает такой огромный выбор всего и по вполне приемлемым ценам. Более того, в эту, казалось бы, консервативную область тоже проникла мода на новизну, как, например, в игровом сегменте, или же в айфонофилии. Еще не успела забыться реклама и славословие по поводу тех же E5-26XX v3, как уже трубят о скором пришествии новейших v4,v5 и т.д., которые "быстрее, выше, сильнее".
Политика сейчас такая - чтобы не тормозило, надо соответствовать тренду на обновление :)
и 1С держится в русле такой политики.
20 Garykom
 
гуру
04.11.16
11:00
(19) Реклама и маркетинг ну никак не смогет перечеркнуть тот факт что развитие быстродействия процов вверх остановилось.
Сча идет развитие вширь, все больше ядер, все больше памяти (кэш и обычная) все больше юзеров.

Но обычный 2 ядерный офисный компик один фиг для одного юзера работает быстрее, чем для того же юзера супер сервак который под тыщщу пользователей может держать.
21 yzimin
 
04.11.16
11:09
(19)
+ удивляют 1С-ники, которые переводят на postgre, не задумываясь о дальнейшем обслуживании. Зато якобы экономят на стоимости MS SQL.

(0) У вас хоть кто-то знает postgre в организации?
22 Fragster
 
гуру
04.11.16
11:35
(21) там и 1с не очень знают...
23 ansh15
 
04.11.16
11:39
(20)+ И  в каждом обзоре новинок присутствует фраза "усовершенствована/оптимизирована внутренняя архитектура".
"Более подробный обзор мы начнем с логической структуры ядра Broadwell-EP, а затем коснемся оптимизаций конвейера в Broadwell по сравнению с предыдущей итерацией микроархитектуры Core и новых функциональных возможностей микропрограммы CPU." Отсюда https://servernews.ru/930831

Это не про 1-5 пользователей, это про тех кто создает здесь темы "Все тормозит!!!!" и потом, к сотому посту, выясняется, что база 150-200 ГБ, пользователей 150-300 и все что-то делают(себестоимость, тяжелые отчетыи т.д.). При этом "весьма мощный сервак"(с гордостью) представляет собой 2 Xeon-a E54xx-56xx, 8 ядер и "аж 32 GB оперативы". И еще водрузят туда 2 виртуалки для "повышения производительности"...
24 Фрэнки
 
04.11.16
13:51
(4) мяхко говоря, это преувеличение, часто соответствующее практике.
Есть очень много примеров, когда сервера от мс убиты руками админов в полное УГ и кто тогда виноват? 1С? или не 1С?
25 Фрэнки
 
04.11.16
13:55
(21) А мс скл много знают?! Вот прям все поголовно знают мс скл и умеют с ним работать, ага.
26 Фрэнки
 
04.11.16
14:00
по существу заданного вопроса:
---
базу 1С БП 2.0 с 8.2 файловой на 8.3.8 в связске с posttgres 9.4
---
вся проблема в том, что БП2.0 на 8.2 в любом случае будет работать быстрее, чем на 8.3.8 в _серверном_ режиме с _любой_ СУБД. Тем более, если запрос написан в таком стиле, который на любом серверном режиме будет тормозить, поскольку он попадет с планировщик запросов и его производительность испортится.
27 rphosts
 
04.11.16
14:20
(6) потому, что в иерархии каждый раз это подзапрос
28 Провинциальный 1сник
 
05.11.16
08:52
(19) Кризис на дворе, какие там новые сервера. Сохранить бы то что есть..
29 yzimin
 
05.11.16
09:06
(25) Количество 1с-ников, знающих MS SQL больше, чем Postgre.
Даже курсы есть у 1С по администрированию MS SQL.
30 Фрэнки
 
05.11.16
10:35
(29) а тс и его сотоварищи на эти курсы уже сходили...

кстати, уверен на все 100%, что прошедшие сертификацию на администрирование мс скл вполне себе уверено себя чувствуют в общении с любой скл субд.
31 ansh15
 
05.11.16
11:16
(28) Тем не менее, покупают http://www.cnews.ru/news/top/2016-09-30_rynok_serverov_v_rossii_vozobnovil_rost
"Большинство заказчиков прекрасно адаптировалось к современным экономическим условиям и в настоящее время совершает очень хорошо обдуманные точечные вложения в самую необходимую инфраструктуру с четким пониманием экономических оснований для введения в строй нового высокопроизводительного оборудования".
32 rphosts
 
05.11.16
11:46
(29) у 1с видимо новые веяния, поэтому постгри в учебном курсе "Эксплуатация крупных информационных систем" уделяется не меньше внимания чем сиквелу. http://1c.ru/rus/partners/training/uc1/course.jsp?id=459
33 Провинциальный 1сник
 
05.11.16
12:01
(31) Ну так и лексусы покупают..