@pgsql

Страница 298 из 1062
Denis
11.04.2017
12:32:52
В нем 250к строк, надо смотреть, есть ли индексы при выборке. Скорее всего страдает все именно тут. Найдите, где больше всего в ней айдишников и вручную соберите из чанков файл
https://postgrespro.ru/docs/postgrespro/9.6/storage-toast.html#storage-toast-ondisk Прочитайте, возможно изменение стратегии хранения столбца на external через ALTER TABLE SET STORAGE и правда поможет

Darafei
11.04.2017
14:03:48
мы тут подумали, что было бы круто иметь возможность нарисовать по запросу сразу график, потому я завёл хотелку в DataGrip https://youtrack.jetbrains.com/issue/DBE-4445 если кому-то ещё актуально, полайкайте :)

Ascandar
11.04.2017
14:06:29
поставил external, дождемся отзывов юзеров, может уйдет та ошибка

Denis
11.04.2017
14:07:19
поставил external, дождемся отзывов юзеров, может уйдет та ошибка
А скорость у 17 секундного запроса не изменилась?

Google
Darafei
11.04.2017
14:07:25
Ascandar табличку переписать надо, простой альтер не разожмёт

Ascandar
11.04.2017
14:08:06
пока 17 секунд, вчера наверняка было времени больше и вывалилась в ошибку. 17 секунд в 1С для сведения отчетов за 2 месяца не так много

Ascandar табличку переписать надо, простой альтер не разожмёт
ну это к 1С никам наверно, их табличка с конфигурацией

Denis
11.04.2017
14:09:24
ну это к 1С никам наверно, их табличка с конфигурацией
Нет, данные на уровне постгреса нужно перелить, чтобы в тоаст таблице они Лежали не сжатые

Ascandar
11.04.2017
14:10:55
имеешь в виду экспорт и импорт дампом таблички сделать?

или обычный селект ас

Darafei
11.04.2017
14:12:45
хотя бы cluster какой

Denis
11.04.2017
14:15:33
или обычный селект ас
С учётом того, что в поле bytea на самом деле хранится только id, а по нему из связанной таблицы из pg_toast вытягиваются данные незаметно для вас, я бы предложил через select

Пусть постгрес делает переупаковку данных тоаст по чанкам сам своими механизмами

Ascandar
11.04.2017
14:16:46
вечером после бэкапа зафигачу

Denis
11.04.2017
14:27:08
вечером после бэкапа зафигачу
Кстати, вам выше крайне мудро посоветовали сделать кластеризацию тоаст таблицы с чанками по id и sequence number - это можно сделать прямо сдесь и сейчас.

Ascandar
11.04.2017
14:28:08
почитаю про кластеры таблицы

вроде как в оракле наверно

Google
Denis
11.04.2017
14:28:35
почитаю про кластеры таблицы
Только посмотрите, какую блокировку оно накладывает на таблицу

Там просто один раз переупорядочиваются строки в таблице согласно выбранному индексу. Потом новые данные вставляются не пойми как до следующей кластеризации

Ascandar
11.04.2017
14:50:48
сделал вот что

взял дамп базы и перенес у себя на виртуалбоксе на ubunte посгрес

иииии барабанная дробь

запрос тот злополучный - 700 милиисекунд)

Denis
11.04.2017
14:52:58
значит, после перезаливки данных, они упорядочились нормальным образом. ну или конспирологические версии про винду

Ascandar
11.04.2017
14:53:08
выборку всех из таблицы - 1.4 секунды)

надо проверить. Да и кстати на бунте процы и диски напрягаются

Denis
11.04.2017
14:53:46
какая интересная история)

Ascandar
11.04.2017
14:54:06
ага

Denis
11.04.2017
14:56:17
но сколь я помню чудесное поделие фирмы 1с, виндовый сервер 1с не может использовать линуксовый постгрес (хотя могу и соврать)

Ascandar
11.04.2017
14:59:15
вроде норм работает и да и попугаи в гилеве чуть уступают MS SQL

Darafei
11.04.2017
15:00:23
может, там и диски магнитные?

Denis
11.04.2017
15:00:37
но сколь я помню чудесное поделие фирмы 1с, виндовый сервер 1с не может использовать линуксовый постгрес (хотя могу и соврать)
кажется, я все же соврал. это 1с сервер на лиункс не поддерживает com объекты в конфигурации на сервере, а бд - просто хранилище

Ascandar
11.04.2017
15:02:35
интересно во еще что

relname | reltuples —---------------+---------— pg_toast_375433 | 0 (1 строка)

это бунте

Denis
11.04.2017
15:04:53
Точно та таблица, проверьте запросом. И соберите потней статистику, тут отображается именно она. Ну и просто сделайте из неё select count(*) from pg_toast.pg_toast_375433;

Google
Ascandar
11.04.2017
15:05:59
count —------ 259795 (1 строка)

Denis
11.04.2017
15:06:21
Вы все переврали :) Сервер 1С на линуксе не поддерживает MSSQL.
Ай да я)) Но помнил же, что там подводный камень))

Andrey
11.04.2017
15:06:43
Думаю, скоро это будет историей :)

Denis
11.04.2017
15:07:37
count —------ 259795 (1 строка)
А соберите статистику по этой таблице и посмотрите, не упадет ли скорость запроса

Ascandar
11.04.2017
15:11:42
не упала, также быстро

Denis
11.04.2017
15:12:50
Ну если ксластеризация или переупаковка тоаст не поможет, вам сама судьба говорит переезжать на линукс

Andrey
11.04.2017
16:09:22
мне то все равно, вот заказчики такие все)
Возможно, сможет помочь задавленный effective cache size и наоборот поднятый shared buffers

Но, конечно, explain (analyze, buffers) посмотреть надо и вообще разбираться, как оно в условиях виндового кэширования работает

Anton
11.04.2017
16:13:50
таки удалось настроить работу sphinx+postgresql, и спользуя все три метода работы (SphinxQL, API для ЯП, расширение pg-sphinx https://anadea.info/ru/blog/postgresql-and-sphinx-search-seamless-integration). оставлю тут, может кому будет полезно

Anton
11.04.2017
16:13:50
в общем удалось приконектится через mysql-клиент к серверу searchd сфинкса и сделать запрос! оказалось все точно, как тут https://habrahabr.ru/company/sphinx/blog/61222/ надо было просто все аккуратно прописать так что SphinxQL вполне работает, плюс в том, что это самая актуальная версия в отличии от АПИ для ЯП. т.ч. осталось освоить только pg_sphinx :)

и таки разобрался с pg-sphinx (https://anadea.info/ru/blog/postgresql-and-sphinx-search-seamless-integration), оказывается мне не хватало только правильно указать хост и порт в таблице sphinx_config (находится прямо в постгрес и содержит конфиги подключения к searchd): host='127.0.0.1', port=3307, ну и в конфиге sphinx.conf добавил listen = localhost:3307:mysql41 в searchd секцию. в итоге вот



тут нюанс один: 'max_matches=100000' нужно для того, что бы можно было получить больше, чем 1000 результатов, в доках написано об этом

Сколь быстро оно ищет на таком же объёме по сравнению с gin индексом?

несравненно быстрее просто. вот например возьмем это же слово, gin индекс работает за 120 сек примерно, с которых около 90-100 сек уходит на получение данных по id'м, но еще же 20-30 работает чисто поиск, разве нет? тут же сотни миллисекунд

по двум словам в булевом режиме тоже самое. это без всяких настроек и распараллеливания

Robert
11.04.2017
18:48:10
коллеги, подскажите момент один. Когда я делаю поле varchar(255) есть ли разница, если будет varchar(254) или varchar(256) с точки зрения возникновения какой то дополнительных элементов хранения хз.

Google
Robert
11.04.2017
18:48:20
может выгодней за 254 не переваливаться

Anatoliy
11.04.2017
18:49:24
Насколько я знаю, varchar внутри это text, только с ограничением длинны. И такого как в мускуле нету.

Darafei
11.04.2017
18:53:44
лучше писать просто text и не загоняться лишний раз

Max
11.04.2017
18:55:25
в доках вроде как написано что text наиболее производительный

Сергей
11.04.2017
19:07:39
нет. в доках написано что это одно и тоже. по внутреннему представлению и производительности. тока ограничение на длину у варчаров

https://www.postgresql.org/docs/9.6/static/datatype-character.html Tip: There is no performance difference among these three types

кароче там какие-то оконулевые отличие есть, но они неважны.

Admin
ERROR: S client not available

Сергей
11.04.2017
19:10:58
удобно делать text и на уровне приложения уже длину ограничивать. можно настраивать и не менять схему

Lulz
12.04.2017
04:55:59
всем привет! нубский вопрос, но как сделать связь между таблицами? (один ко многим)

Anton
12.04.2017
05:22:18
всем привет! нубский вопрос, но как сделать связь между таблицами? (один ко многим)
нужно, что бы дочерние таблицы содержали id той одной, на которую ссылаются. например в отделе работает много людей, значит Department: id, name, ... Worker: department_id, name, ... т.е. каждый работник содержит department_id отдела, в котором он работает

Lulz
12.04.2017
05:22:39
это я понимаю, не могу в гугле найти пример создания

но все равно спасибо

Denis
12.04.2017
05:24:10
Anton
12.04.2017
05:24:15
например http://postgresql.ru.net/manual/tutorial-fk.html foreign keys гугли вообще

Kirill
12.04.2017
06:13:34
Коллеги, кто какого naming and coding convension в plpgsql придерживается? Логичнее ли будет использовать оракловую pl/sql convension?

Denis
12.04.2017
06:36:13
Коллеги, кто какого naming and coding convension в plpgsql придерживается? Логичнее ли будет использовать оракловую pl/sql convension?
я использую свое творческое переосмысление оракловых стандартов (знаю, что это плохо). например, входящие переменные пишу не value_in, а in_value, все локальные переменные начинаю с нижнего подчеркивания (у оракла это вроде только для типа record). в общем, оракловые стандарты в plpgsql - это хорошо

Google
Kirill
12.04.2017
06:39:55
ага, спасибо за мнения

Nikolay
12.04.2017
06:52:41
Привет! Посоветуйте пожалуйста, можно ли официальному докер-образу передать параметр shared_preload_libraries = "бла-бла", и если да, то как лучше это сделать?

Igor
12.04.2017
06:57:39
https://hub.docker.com/_/postgres/

Nikolay
12.04.2017
07:00:59
я пробовал подкладывать ему файл с конфигом, но он тогда ругается что $PGDATA не пуста и он не может создать базу. А если этот sed написать в /docker-entrypoint-initdb.d/123.sh, интересно, сработает?

или "во время инициализации", это что-то другое?

Andrey
12.04.2017
07:02:56
https://github.com/pensnarik/postgres-db-skel/blob/master/docker/docker-entrypoint-initdb.d/init.sh

Yury
12.04.2017
07:05:13
Ещё один довод не использовать докер для ПГ

Nikolay
12.04.2017
07:14:47
в девелопменте без докера - это очень сложно

Айтуар
12.04.2017
07:15:14
модно и молодежно )

Dmitry
12.04.2017
07:16:14
Коллеги, а поделитесь, кто как достаёт полный текст запроса из pg_stat_activity? У меня пока только идея логгировать xid и по нему искать в логе полный текст. Может у кого есть более изящные варианты,

Yury
12.04.2017
07:18:25
в девелопменте без докера - это очень сложно
в девеломпменте чего? Сам постгрес мы с ним не разрабатываем. :)

куда проще развернуть инстанс в отдельной папочке

Nikolay
12.04.2017
07:20:24
Yury
12.04.2017
07:21:00
Dmitry
12.04.2017
07:22:44
track_activity_query_size=2^32
А для 9.4 нет решений? Этот параметр начиная с 9.5

Страница 298 из 1062