Имя: Пароль:
1C
1С v8
Производительность на PostgreSQL
0 uncknow
 
15.08.13
21:35
Вводная: На Win2008x64 стоит Сервер 1С платформа 8.2; PostgreSQL 8.3.4; Там же клиента тестирую.
Исходные данные:
Запрос в файловой версии выполняется в 20 (двадцать) !!!  раз быстрее чем на PostgreSQL.
Пока только сел копать. Где-то видел что ручками надо индекс строить для PostgreSQL, но что-то не уверен что в эту сторону надо копать.
1 Fragster
 
модератор
15.08.13
21:45
настройки постгре дефолтные?
второй раз тоже тупит?
текст запроса будет?
2 uncknow
 
15.08.13
21:48
Настройки под 1С делал.

Тупит уже долго.

Текст запроса смысла давать не вижу. Хотя он не простой. Брал его для оценки производительности.
В другой обработке Самый простой запрос "Выбрать из Контрагенты где (2 условия)". Тупит так же. Попробую сейчас типовые отчеты протестить. Сейчас выложу результат, может что даст.
3 Armin
 
15.08.13
21:50
Попробуй постгри 9.х, 8-ой стар как мамонт
4 Reaper_1c
 
15.08.13
21:52
(3) +1. В связке с 8.3 вообще может вылететь.
5 Hmster
 
15.08.13
22:07
(0) у меня на ноуте летает, местами кажется что быстрее файловой - за счет кэширования сервером
6 Hmster
 
15.08.13
22:08
все очень сильно зависит от настроек, в этом он намного капризней чем МС Сиквел
7 uncknow
 
15.08.13
22:19
Жить то все интереснее :))
Стандартная ОСВ по счету 51 с отбором по одному счету.
Время выполнения процедуры СформироватьОтчетНаСервере()
PostgreSQL - 2,375 сек
Файловая база - 3,969 сек

Вот такая вот фигня. Пойду посмотрю индексы по полям своих запросов ;)  Хотя тоже не логично. Буду копать :)
8 Chai Nic
 
15.08.13
22:28
enable_nestloop=off радикально ускоряет "тормозящие" запросы и замедляет все остальные)
9 ПесняПроЗайцев
 
15.08.13
22:59
(0) База у тебя просто маленькая еще.
10 phaz
 
15.08.13
23:04
Вы используете 1с овскую сборку postgre?
11 Hmster
 
15.08.13
23:30
(7) посгре очень критично отностится к вложенным таблицам, если используются временные таблицы то индексирование нужных полей может очень сильно ускорить выполнение запроса, при этом мс скуль и файловая могут кушать нормально кривоватые запросы, а вот он нет
12 uncknow
 
15.08.13
23:30
(10) Да...
Закопался я что-то глубоко. Похоже там где мне нужно, тормозит не запрос - он то хорошо выполняется судя замерам. А тормозит обмен между сервером и клиентом.
13 Hmster
 
15.08.13
23:32
(12) вопрос в количестве данных, может и должно тормозить ...
14 uncknow
 
15.08.13
23:34
(11) тестировал на кривом запросе, но нужен был не он. Стал тестировать нужную обработку, вышел на то, что тормозит обмен между сервером и клиентом. код процедуры в серверном варианте выполняется намного быстрее чем в файловом. А вот сама процедура в два раза медленнее. Делаю вывод что это обмен между клиентом и сервером.
Пойду покопаю в инете как влияют типы данных на скорость обмена...
15 uncknow
 
15.08.13
23:35
(13) тестирую на идентичных базах, количество не причем
16 Fragster
 
модератор
16.08.13
08:04
(14) crjkmrj dspjdjd cthdthf&
17 Fragster
 
модератор
16.08.13
08:04
сколько вызовов сервера?
18 uncknow
 
16.08.13
08:06
(17) Дофига :)
Документ записывает в 5 раз дольше чем в файловом варианте. Сейчас поставлю последнюю версию PostgreSQL посмотрю что изменится
19 Fragster
 
модератор
16.08.13
08:06
(18) штук сколько? на запись документа должен быть он один :)
20 uncknow
 
16.08.13
08:09
(19)  Ты имеешь ввиду посмотреть в оценке производительности сколько раз вызывался сервер при записи документа?
21 Hmster
 
16.08.13
08:18
да
22 uncknow
 
16.08.13
08:26
(21) А где там увидеть сколько раз вызывался сервер. Есть инфа только сколько раз вызывалась сама запись?!
23 uncknow
 
16.08.13
08:56
Да, с PostgreSQL 9.1 та же фигня, только даже дольше на пару секунд...  ух блин..
24 Fragster
 
модератор
16.08.13
11:03
(22) отметил стрелочками
http://wstaw.org/m/2013/08/16/0.png
26 Fragster
 
модератор
16.08.13
11:10
27 uncknow
 
17.08.13
15:48
(24) Т.е. накопленные вызовы, это сколько раз вызывался сервер? А как получить информацию для конкретной строки - просто щелкнуть и вылезет окно  с накопленными вызовами?

Сейчас полажу поразбираюсь
28 Fragster
 
модератор
17.08.13
23:46
(27) для конкретной строки - верхняя стрелка на картинке
29 Fragster
 
модератор
17.08.13
23:49
верхняя строка на замере на картинке, говорю
30 hhhh
 
17.08.13
23:50
(27) но вообще-то для одного пользователя в базе так и должно быть . Файловая должна работать быстрее в несколько раз.
31 uncknow
 
18.08.13
10:00
(30) Ну это понятно, но.
У меня грузятся данные из другой базы. Объем приличный. Я проверил - Запись документа и справочника в файловой происходит в 10 раз быстрее!
Ну а если у тебя в файловой объем данных грузится часов 8, то что происходит при загрузке в Серверный вариант не сложно понять =)

Помучал настройки, ускорил запись процентов на 20. Но все равно это очень мало.  Надо думать насчет железа наверно.
32 Klesk
 
18.08.13
10:47
PostgreSQL намного медленней MS SQL стоит использовать только в бюджетных проектах, не проще ли купить MS
33 uncknow
 
18.08.13
12:22
(32) Все это субъективное мнение. У меня на MS SQL оборотка не формируется, если бух выставляет развернутое сальдо по большому количеству счетов. Многие операции, те же запросы раз в 5 быстрее чем в файловой.
34 uncknow
 
18.08.13
12:26
Сейчас посмотрю скорость записи документа в разных вариантах.
- Все: сервер 1с, БД, клиент на одной машине стоит.
Сравню файловой версией когда база на той же машине крутится и когда база в сети лежит.
35 Fragster
 
модератор
18.08.13
12:29
(34) только к файловой базе сделай второе подключение, которое пусть даже ничего делать не будет
36 uncknow
 
18.08.13
12:56
(35) Нет, мне нужна скорость загрузки, когда в базе никого нет. То что файловая будет в этом случае затыкать, здесь "К гадалке не ходи"