|
Сервер 1С:Предприятие на PostgreSQL и этот медленный запрос | ☑ | ||
---|---|---|---|---|
0
Mr_Best
15.05.16
✎
21:56
|
Всем доброй воли!
Купили и настроили новехонький сервер: - Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz 2.60GHz (2 процессора) - ОЗУ - 64 ГБ - RAID диски с энергонезависимой памятью - Windows Server 2012 R2 Standart x64 - 1С:Предприятие 8.3 (8.3.8.1652) - СУБД PostgreSQL для Windows (64-bit) После чего были сделаны настройки конфигурационного файла PostgreSQL: - shared_buffers = 12GB - temp_buffers = 4GB - work_mem = 1GB - maintenance_work_mem = 512MB - enable_nestloop = off - seq_page_cost = 0.1 - random_page_cost = 0.4 - cpu_operator_cost = 0.00025 - effective_cache_size = 32GB - default_statistics_target = 10000 - online_analyze.threshold = 50 - online_analyze.scale_factor = 0.1 - online_analyze.enable = off - online_analyze.verbose = off - online_analyze.min_interval = 10000 - online_analyze.table_type = 'all' - plantuner.fix_empty_table = false Хочу обратить внимание, что вначале были сделаны минимальные настройки shared_buffers, work_mem, effective_cache_size. Когда стало понятно, что не помогает начал добавлять остальные, по одному, и комбинировал их, и много чего делал, но не помогает! Собственно в чем проблема: На сервер установлена конфигурация: Риэлтор. Управление продажами недвижимости для "1С:Управление торговлей 8", редакция 11.1 (11.1.9.61/2.7.3.34), в данной конфигурации есть отчет "Квартирограмма" который работает медленно, а точнее: - На postgres: 330-350 сек. - На MS SQL Epress: 10-12 сек - В файловом варианте: 10-12 сек Что характерно, все остальное (открытие других отчетов, запись, проведение документов) летает как ракета! Изменение режима debug сервера 1С роли не играет. Посмотрев глубже, увидел в отчете тот самый запрос: ВЫБРАТЬ РАЗРЕШЕННЫЕ ПлощадиОбъектовНедвижимости.ОбщаяПлощадь, ПлощадиОбъектовНедвижимости.ЖилаяПлощадь, ПлощадиОбъектовНедвижимости.ПлощадьКухни, ПлощадиОбъектовНедвижимости.КоличествоЖилыхКомнат, ПлощадиОбъектовНедвижимости.ПлощадиЖилыхКомнат, УсловияПродажиОбъектов.ТипОперации, УсловияПродажиОбъектов.Валюта, УсловияПродажиОбъектов.ЦенаЗаКвМ, УсловияПродажиОбъектов.Стоимость, УсловияПродажиОбъектов.КоличествоКомнатДляПродажиАренды, УсловияПродажиОбъектов.ТипПродажи, УсловияПродажиОбъектов.ВозможнаИпотека, УсловияПродажиОбъектов.ПереуступкаПрав, УсловияПродажиОбъектов.ПериодичностьАренды, УсловияПродажиОбъектов.СрокАренды, УсловияПродажиОбъектов.ТребуетсяЗалог, УсловияПродажиОбъектов.ПроцентЗалога, УсловияПродажиОбъектов.ПроцентКомиссииРиэлтора, УсловияПродажиОбъектов.Субаренда, УсловияПродажиОбъектов.ЦенаВключаетНДС, УсловияПродажиОбъектов.ФормаСделкиПоАренде, УсловияПродажиОбъектов.ЗаЧейСчетРемонт, ПравообладателиОбъектов.Партнер КАК Правообладатель, СтатусыОбъектов.Статус, СтатусыОбъектов.Период КАК ДатаИзмененияСтатуса, ПараметрыОбъектовНедвижимостиПоБТИ.ОбщаяПлощадь КАК ОбщаяПлощадьБТИ, ПараметрыОбъектовНедвижимостиПоБТИ.ЖилаяПлощадь КАК ЖилаяПлощадьБТИ, ПараметрыОбъектовНедвижимостиПоБТИ.ПлощадьКухни КАК ПлощадьКухниБТИ, ПараметрыОбъектовНедвижимостиПоБТИ.КоличествоЖилыхКомнат КАК КоличествоЖилыхКомнатБТИ, ПараметрыОбъектовНедвижимостиПоБТИ.ПлощадиЖилыхКомнат КАК ПлощадиЖилыхКомнатБТИ ИЗ РегистрСведений.УПН_ПлощадиОбъектовНедвижимости.СрезПоследних(&ДатаСреза, ОбъектНедвижимости = &Объект) КАК ПлощадиОбъектовНедвижимости ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.УПН_УсловияПродажиОбъектов.СрезПоследних(&ДатаСреза, ОбъектНедвижимости = &Объект) КАК УсловияПродажиОбъектов ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.УПН_ПравообладателиОбъектов.СрезПоследних(&ДатаСреза, ОбъектНедвижимости = &Объект) КАК ПравообладателиОбъектов ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.УПН_СтатусыОбъектов.СрезПоследних(&ДатаСреза, ОбъектНедвижимости = &Объект) КАК СтатусыОбъектов ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.УПН_ПараметрыОбъектовНедвижимостиПоБТИ.СрезПоследних(&ДатаСреза, ОбъектНедвижимости = &Объект) КАК ПараметрыОбъектовНедвижимостиПоБТИ ПО (ИСТИНА) Собственно вопрос: что еще можно предпринять с postgres для того, что бы данный запрос работал быстро? Кто сталкивался? Иль я недонастроил, иль разработчики кривой запрос сделали (не рассчитанный на postgres)? Помогите коллеги! |
|||
1
Mr_Best
15.05.16
✎
21:59
|
Забыл версию Postgres указать: 9.4.2-1.1C
|
|||
2
Smallrat
15.05.16
✎
22:00
|
по памяти из "пятничной" ветки про то как админов выгнали и всё упало: кто-то там упомянул что на постгри некоторые полные соединения вгоняют её в ступор - надо из заменять на объединения левого и правого соединений.
|
|||
3
Mr_Best
15.05.16
✎
22:01
|
(2) - получается что запрос косячный ?
|
|||
4
Smallrat
15.05.16
✎
22:07
|
(3) вероятно "просто" особенность работы с постгри)
|
|||
5
mgk2
15.05.16
✎
22:09
|
разработчики отраслевой специфики про постгрес не думали
|
|||
6
mgk2
15.05.16
✎
22:11
|
заточи квартирограмму под постгрес и радуйся жизни.
|
|||
7
Mr_Best
15.05.16
✎
22:13
|
(5) похоже на то, но все же, может стоит посмотреть в сторону настроек планировщика заданий? Иль текущие настройки являются достаточными для нормальной работы postgres ?
|
|||
8
Armando
15.05.16
✎
22:14
|
Я бы попробовал этот запрос переписать на ОБЪЕДИНИТЬ ВСЕ с последующей группировкой
|
|||
9
Armando
15.05.16
✎
22:16
|
кстати, автор, а срезы по отдельности норм работают?
|
|||
10
H A D G E H O G s
15.05.16
✎
22:17
|
Я бы попробовал нанять киллера на написателя этого запроса.
|
|||
11
H A D G E H O G s
15.05.16
✎
22:20
|
Этот совет никак не относится к PostGree в частности; это общее пожелание.
К Постгрии относится следующее: http://its.1c.ru/db/metod8dev#content:1556:hdoc |
|||
12
Mr_Best
15.05.16
✎
22:24
|
(11) Спасибо H A D G E H O G за помощь! Тема закрыта.
|
|||
13
Mr_Best
15.05.16
✎
22:25
|
Да собственно все спасибо! Чего это я ... :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |