
Fike
01.10.2016
16:04:56

blkmrkt
01.10.2016
16:05:06

Vadim
01.10.2016
16:05:14
просто есть стериотип, что типо оо тяжелый запрос, много джойнов значит понятно что тормозит, слишком много джойнов, я считаю лишь заблуждением

Аггей
01.10.2016
16:05:33
Например, никогда не понимал выделение пола в отдельный справочник

Google

Fike
01.10.2016
16:05:33

Айтуар
01.10.2016
16:05:53
Ну да в итоге зависит от ситуации

Darafei
01.10.2016
16:06:07

Fike
01.10.2016
16:06:21
это все еще О(1)
поэтому да
да и вообще, беспокойство бывает за проект, а бывает за занимаемое место

Darafei
01.10.2016
16:07:57

Аггей
01.10.2016
16:08:04
Я за нормализацию. Она не только место экономит, но и обеспечивает "целостность" данных. Но во всем надо знать меру

Fike
01.10.2016
16:08:48

Darafei
01.10.2016
16:08:50
в гисах вообще нормальная тема - пост-фактум приджойнить к дорогам город, например
планы копеечные, gist работает тьфу-тьфу хорошо
а определение того, что такое "город", меняется от задачи до задачи временами кардинально :)

Pavel
01.10.2016
16:10:30

Google

Аггей
01.10.2016
16:11:43

Pavel
01.10.2016
16:14:49
Правда все равно можно для пола использовать enum или int

Darafei
01.10.2016
16:15:43

Pavel
01.10.2016
16:16:04
Ну это many2many связь с int получается
То есть можно даже в массиве в одной ячейке хранить

Darafei
01.10.2016
16:16:48
а потом ещё в UI надо переводы на каждое подставлять... :)

Fike
01.10.2016
16:23:25
да не хранит фейсбук переводы в базе. и поиск тоже ведет не по базе.

Pavel
01.10.2016
16:48:08
Мы рассматриваем сферический кейс в вакууме. Полов может быть больше 2 и небольшая нормализованная база гигов на 100

Борис
01.10.2016
16:59:57

Alexandr
02.10.2016
00:51:15
приветы
стоит задача перенести за ночь базы с пг9.5 под виндой на пгпро9.5 под линуксом, есть варианты кроме дамп/рестор?
сразу спасибы за ответы

Mike Chuguniy
02.10.2016
03:31:05
@Siniy я бы попробовал pg
_basebackup, если железная архитектура и разрядность обеих систем идентичные.

Sergey
02.10.2016
16:38:18
а если кластер поднять и залить с одного сервера на другой? или не катит? ну или с помощью copy
хотя если базы небольшие, то почему бы просто папки rsync'ом не перетянуть?

Slava
02.10.2016
16:51:58
базы много весят?

Darafei
03.10.2016
09:28:22
как по-человечески на SQL написать "ts было вчера"?
а то вижу в коде c.ts between 'yesterday'::timestamp and date_trunc('day', now()) и мне от него грустно

Сергей
03.10.2016
09:29:32
DAYTRUNC('DAY',c.ts) = DAYTRUNC('DAY',NOW()) - 1
не канает?
DATE_TRUNC
пардонте

Google

Darafei
03.10.2016
09:29:54
индексы не заюзает
ну и метафора "вчера" не читается

Сергей
03.10.2016
09:30:15
факт, но индекс нужен прямо по полю?
а по индексу иначе как? значит поле должно быть немодифицировано - т.е. BETWEEN

Anatoliy
03.10.2016
09:38:12
c.ts between 'yesterday'::timestamp AND CURRENT_DATE
'today'::timestamp

Сергей
03.10.2016
09:41:11
То, что between включающий ничего?

Anatoliy
03.10.2016
09:41:35
- '1 second'::interval :)

Сергей
03.10.2016
09:41:40
))))

Dmitrii
03.10.2016
09:42:13
Вот так "странные баги" и появляются

Alex
03.10.2016
09:42:30
норкоманы

Anatoliy
03.10.2016
09:42:30
Ну и можно написать c.ts >= AND c.ts <

Сергей
03.10.2016
09:43:07
Я за индекс по date_trunc

Darafei
03.10.2016
09:45:58

Сергей
03.10.2016
09:47:36
Не, два индекса по одному полю - что-то не то...

Darafei
03.10.2016
09:50:45

Anton
03.10.2016
12:25:14
Коллеги, доброго дня ! подскажите пожалуйста как посмотреть какие привелегии выдаются по умолчанию ? где можно увидеть что “ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT select ON TABLES TO ххх” отработало ? ;

Stanislav
03.10.2016
13:24:55
Мне тут наш прогер говорит, что надо баг репортить в такой ситуации: http://pix.my/71C5rO6d
PK игнорируется базенкой
pg 9.4.9

Google

Darafei
03.10.2016
13:26:00
Stanislav analyze делал? сколько записей в таблице?
пока там <10, нет смысла смотреть в индексы

Stanislav
03.10.2016
13:27:44
Спасибо
Как раз 10

Darafei
03.10.2016
13:29:13
Stanislav планы надо смотреть на похожих на продакшен объёмах данных

Stanislav
03.10.2016
13:29:47
Да, тут 1000+ таблиц и некоторые по 100ГБ
повезло найти маленькую
Скажите, а ALTER TABLE на добавление колонки в партиционированную таблицу залочит сразу все партиции или по очереди будет лочить?

Nikita
03.10.2016
13:39:52
расстрою, но колонки не залочит и в партиции эти колонки оно не добавит..

Admin
ERROR: S client not available

Айтуар
03.10.2016
13:40:20
нужно каждую партицию альтернуть руками

Stanislav
03.10.2016
13:41:32
o_O

Maxim
03.10.2016
13:42:01
ну не обязательно прям руками
можно циклом обойти

Alexey
03.10.2016
13:42:10
o_O
а что не так? логично же.

Anton
03.10.2016
13:43:34
user friendly просто

Ildar
03.10.2016
13:54:39
из документации:
ALTER TABLE will propagate any changes in column data definitions and check constraints down the inheritance hierarchy.

Nikita
03.10.2016
14:01:02

Google

Айтуар
03.10.2016
14:04:17
Можно ли уже существующую таблицу переместить в новый tablespace ? Или нужно её нужно сначало создать в новом tablespace и уже заливать дамп?

dmitriy
03.10.2016
14:06:40
ALTER TABLE ... SET TABLESPACE ...

Ildar
03.10.2016
14:06:42
alter table ... set tablespace

Айтуар
03.10.2016
14:08:20
ещё вопрос, на команду copy действуют триггеры как для insert ?

Dmitry
03.10.2016
14:10:43

Айтуар
03.10.2016
14:12:55
Отрабатывает именно триггер на insert? Т.е. срабатывает после рестора БД например и распихивает мои данные по партициям?

Dmitry
03.10.2016
14:16:03

Айтуар
03.10.2016
14:18:11
create trigger partitioning__{table_name}__before_insert
before insert on {table_name}
for each row execute procedure partitioning.before_insert('{pk_column_name}', '{column_name}');
create trigger partitioning__{table_name}__after_insert
after insert on {table_name}
for each row execute procedure partitioning.after_insert('{pk_column_name}');
create trigger partitioning__{table_name}__update
before update on {table_name}
for each row execute procedure partitioning.before_update('{pk_column_name}', '{column_name}');
у меня вот такие

Nikita
03.10.2016
14:24:05
подскажите по сейвпоинтам плиз.. пилю одну штуку, которая генерирует много кусков вида
SAVEPOINT sp_N;
CREATE TEMP TABLE tbl_N (...);
DROP TABLE tbl_N;
RELEASE SAVEPOINT sp_N;
через какое-то время всё это падает с ошибкой "out of shared memory" и хинтом "You might need to increase max_locks_per_transaction". я могу это сделать, но хотелось бы понять почему ресурсы не освобождаются.

Anastasia
03.10.2016
14:33:27
При работе с временными таблицами, Locks на таблицы хранятся в памяти бэкенда. При удалении, они для чего-то переносятся в shared memory. (возможно для избежания дедлоков, сейчас посмотрю точнее). И если таких вот temp tables было слишком много, память заканчивается.

Владислав
03.10.2016
14:48:30
Пацаны. Есть программеры под postgre?
Нужно написать софт. Пофиг на чём в принципе.
Хоть веб версия, хоть на дельфе.

Anton
03.10.2016
14:52:30
Владислав, у вас будет больше шансов на отклик если вы чуть более развернуто опишите что требуется
сейчас это выглядит как “нет времени обьяснять, давай кодить “ и, как показывает практика, ничего хорошего из этого не выйдет

Fike
03.10.2016
14:56:56

Alexey
03.10.2016
14:57:44
А пока на вопрос так и подмывает ответить «Да!» и не соврать. Достоверно известно, что в природе такие существуют.

Darafei
03.10.2016
15:02:19

Владислав
03.10.2016
15:02:55
Вообщем нужен учет времени прихода на работу, ухода на обед, ухода с работы и чеклиста.
Постараюсь нарисовать тз сегодня.

Vladimir
03.10.2016
15:03:11
Toggl?