
Kirill
05.05.2016
15:43:44

Pavel
05.05.2016
15:43:57
А вообще это все попахивает деструктурированием ПО - "зачем нам все эти иерархии классов, модели MVC, уровни доступа, разделения на бизнес логику и представление, когда можно просто быть поближе к базе и фигачить лапшекодом напрямую"

Alex
05.05.2016
15:44:19
про функциональное программирование не слышали ? :)

Dmitry
05.05.2016
15:44:46
зачем хранимая процедура там?
накидываем запросы с WITH и прочим

Google

Alex
05.05.2016
15:45:10
@dbalakov я же написал либо CTE либо хранимка, какие проблемы ?

Dmitry
05.05.2016
15:45:31
сорри - пропустил, у нас тут деплой идет еще)

Kirill
05.05.2016
15:45:39

Alex
05.05.2016
15:45:45
ага
проще чем сте

Dmitry
05.05.2016
15:46:03
тестировать можно все - вопрос крови)

Alex
05.05.2016
15:46:29
да и потом среднестатисический phpшник, не очен рад портянкам в 100+ строк на не понятном ему CTE

Dmitry
05.05.2016
15:46:37
зависит от архитектры и того как вычленили дао слой

Alex
05.05.2016
15:46:44
а вызов хранимки если он описан и тд итп то куда доступнее.

Pavel
05.05.2016
15:46:54

Dmitry
05.05.2016
15:47:09
и SOLID никто не отменял)

Alex
05.05.2016
15:47:40
@chebotarevp дак яж не спорю =)

Kirill
05.05.2016
15:47:46
всем чмоки, я домой. Если кому интересно https://github.com/postgres-ci/core/tree/master/tests , через пару недель ГУИ допилю, контейнеры на hub выложу и инструкцию по запуску )

Google

Dmitry
05.05.2016
15:47:57
“а вызов хранимки если он описан и тд итп то куда доступнее.”
да - но внесение изменений сложней. Миграция и прочее.

Alex
05.05.2016
15:48:01
поюзаем
@dbalakov обычно если до такого дошло то у компании есть DBD или DBA хотя бы а то и с десяток таких людей ;)

Dmitry
05.05.2016
15:50:00
@dezconnect не всегда) не работали вы в кровавом месеве стартапов, все бы про крупный бизнес, да b2g)

Alex
05.05.2016
15:50:49
да почему... были стартапы, и в них вполне неплохоя уживался как дба или дбд )

Paul
05.05.2016
15:50:56

Dmitry
05.05.2016
15:51:43
@dezconnect да шучу я) конечно кто-то отвечающий за БД нужен - лучше выделенный человек

Alex
05.05.2016
15:52:19
@not_logan ну никто же вас не заставляет писать лапшу, верно ? есть взять некоторые вещи, типа строгой типизации и прочего в вызовах хранимок, то окажется что хранимки поближе к миру функционального программирования чем к лапшекоду ;)

Dmitry
05.05.2016
15:54:29
лапша появляется не из-за инструмента, а из-за человека…

ThisIs
05.05.2016
15:54:50
Васильев А.Ю. Работа с Postgresql
настройка, масштабирование - кто нибудь читал?

Dmitry
05.05.2016
15:54:58
все кто ругают любой язык, просто не умеют его готовить)

Paul
05.05.2016
15:55:36
тут его периодически критикуют

Alex
05.05.2016
15:55:45
дак а разве кто-то кого то ругал ?

Paul
05.05.2016
15:56:15
да, постоянно. Смотрите выше. Но аргументированной критики я не увидел
только на уровне "это плохо и опасно". Почему плохо и опасно мне так и не рассказали

ThisIs
05.05.2016
15:56:31

Paul
05.05.2016
15:56:52
Стоит его читать?
я ненастоящий DBA (я devops и немножечко программист). Я прочитал, мне помогло

ThisIs
05.05.2016
15:58:06

Dmitry
05.05.2016
15:59:24
ну я против хранимок - сложно поддерживать, но если решить проблемы с миграциями и что выносить на уровень хранимых, а что из БЛ оставить на уровне сервера приложений - то все ок
против триггеров - часто колбасят лапшу и получается совершенно неочевидное поведение БД, когда вставка в одну таблицу тормозит потому что нет индекса в другой

Google

Alex
05.05.2016
15:59:25
а как надо всё равно понимаешь только на практике, разные нагрузки, разные характеры нагрузок... единых рекомендаций быть не может
а в чем проблемы с миграциями ?

Alexander
05.05.2016
16:02:15

Alexander
05.05.2016
16:05:01

Alex
05.05.2016
16:05:53
Ну, миграции разные бывают, и кейсы разные бывают, но тоже не понимаю проблем с миграцией данных

Alexander
05.05.2016
16:06:47

Alexander
05.05.2016
16:06:55
В Ora "прекрасный" library cache - фигушки на живую базу что выкатишь. EBR не продавайте.

Alexander
05.05.2016
16:07:16
Не продаю, это просто один из подходов.
Но позволяет не останавливать базу вообще.

Alexander
05.05.2016
16:10:22
Ну я как раз пару лет назад его трогал - видимо как-то не ок хранимки были. Его клинило на пакетных типах. Типа head в ora$base, а что-то переопределенное в дочернем. Они в итоге патч сделали, но пробывать уже желания не было

Alexander
05.05.2016
16:12:57

Alexander
05.05.2016
16:14:18
Ага ну да и когда типы уровня пакета из неё возвращаешь.

Alexander
05.05.2016
16:14:36
Этого не застал. Но рассказывали, кажется.

Alexander
05.05.2016
16:15:30
Ну а мы на pg свинтили - там ddl транзакционный и без общего Кеша - думать не нужно

Alexander
05.05.2016
16:16:50

Paul
05.05.2016
16:40:50

Alexander
05.05.2016
16:52:46

Paul
05.05.2016
16:53:13
про NULL==0=='' еще не вспоминали?

Google

Alexander
05.05.2016
16:56:27
Null ничему не равен :^)
Да и 0 is not null вообще-то.
Но вот со строками не так повезло

[Anonymous]
05.05.2016
18:47:17
Коллеги,ищем сильных спикеров по Postgres, а то совсем провал на заявках на DC'16 http://devconf.ru/ru/offers/storage
Если есть возможность сделайте pin сообщению.

Paul
05.05.2016
18:49:26

Anatoliy
05.05.2016
19:03:10
Коллеги, направьте на путь истинный: есть табличка, в ней поле owner составного типа (id, type, name), выборки вида (owner).id=... and (owner).type=... Обычныйые индексы по этим полям он не видит почему-то, как индекс построить чтобы seq scan избежать?

Boris
05.05.2016
19:03:58
функцинальный индекс построить например

Anatoliy
05.05.2016
19:04:56
Какая функция в этом случае у нас будет? Тут вроде как обычные операторы равенства

Boris
05.05.2016
19:05:58
https://habrahabr.ru/post/282932/

Anatoliy
05.05.2016
19:07:17
Статейку читал, а вот как ее к моим барашкам применить не понятно

Boris
05.05.2016
19:08:21
ну что-то вроде
create index on t ((owner.id));
предполагаю =)

Anatoliy
05.05.2016
19:09:57
У меня как раз таких парочка построена по id и по type, вот он их как бэ не замечает, составной по двум таким полям вообще не дает построить
Кстати если в таблице мало записей может он забить на индекс и сделать seq scan?

Boris
05.05.2016
19:11:25
конечно

Alexey
05.05.2016
19:11:27
Может забить:)

Anatoliy
05.05.2016
19:12:50
Ок попробую нагенерить туда пару тыщ и посмотрю что будет, может и зацепит эти индексы, но вопрос что он составной по двум таким полям не дает сделать

[Anonymous]
05.05.2016
19:14:11

Boris
05.05.2016
19:14:23
а он нужен? просто обычно постгрес может два отдельных индекса использовать

Google

Alexey
05.05.2016
19:15:31

Anatoliy
05.05.2016
19:15:43
Ну вроде как составной эффективней: типа он кусок индекса сканит уже отфильтрованный по первому критерию или я ошибаюсь?

[Anonymous]
05.05.2016
19:16:36

Boris
05.05.2016
19:17:00
насколько я понимаю, разницу увидите только на оочень больших таблицах

Anatoliy
05.05.2016
19:18:21
Кстати пгадмин предлагает еще поле коэффициент заполнения указывать, никто не знает что за зверь?


Alexey
05.05.2016
19:20:11
Кстати пгадмин предлагает еще поле коэффициент заполнения указывать, никто не знает что за зверь?
The fillfactor for an index is a percentage that determines how full the index method will try to pack index pages. For B-trees, leaf pages are filled to this percentage during initial index build, and also when extending the index at the right (largest key values). If pages subsequently become completely full, they will be split, leading to gradual degradation in the index's efficiency. B-trees use a default fillfactor of 90, but any value from 10 to 100 can be selected. If the table is static then fillfactor 100 is best to minimize the index's physical size, but for heavily updated tables a smaller fillfactor is better to minimize the need for page splits. The other index methods use fillfactor in different but roughly analogous ways; the default fillfactor varies between methods.


Anatoliy
05.05.2016
19:21:37
Благодарюза ртфм кратко и доходчиво

Alexey
05.05.2016
19:22:37
Вот я сейчас не понял, сарказм или нет:) Для таблиц, кстати, тоже еcть fillfactor, иногда помогает его покрутить.

[Anonymous]
05.05.2016
19:23:17

Anatoliy
05.05.2016
19:28:12
Ок, спасибо большое

[Anonymous]
05.05.2016
19:34:00

Kirill
05.05.2016
20:17:35

Alexey
05.05.2016
20:18:50

Kirill
05.05.2016
20:20:11
ок)

Pavel
06.05.2016
05:49:17
Предлагаю запилить в этот чат @comstatbot
Позволяет вести и следить за статистикой

Ivan
06.05.2016
05:49:42
да тут вроде как не настолько активно пишут, чтобы следить
или есть дополнительные профиты?

Pavel
06.05.2016
05:50:38