
WoodyFire
04.07.2017
12:31:09

Vadim
04.07.2017
12:35:20

WoodyFire
04.07.2017
12:36:31
О да. Вот только сколько уже построено 3D, а толку нет. Нет никакого объединения инфы. Все разрозненно.
А что больше все обидно. Сколько потрачено человеко-часов на это и пока не видно отдачи от этого

Google

Darafei
04.07.2017
12:38:12
это следствие подхода "кругом враги" :)

WoodyFire
04.07.2017
12:38:56
Вот зачем рисовать все это руками, если уже давно существуют 3D сканеры. Которые сканируют здания и создают 3D модель. Зачем тратить большего количество времени на создание того, что можно создать в разы быстрее

Darafei
04.07.2017
12:40:58
3D-сканеры делают растр, с которым дальше тоже не очень понятно что делать
из контура + метаинформации "тут 9 этажей" польза извлекается куда проще, чем из растра.

WoodyFire
04.07.2017
12:46:01
Вообще мне конечно интересно куда все это привет и что создастся в конечном счете. Сейчас 3D модели рисуются в 3DMax. Насколько я понимаю они рисуются для того чтобы оперативный начальствующий состав обучать.

Айтуар
04.07.2017
12:46:43
Подскажите как логировать работу функций?

Maksim
04.07.2017
12:47:14

Айтуар
04.07.2017
12:48:51

Maksim
04.07.2017
12:50:34
auto_explain.log_nested_statements

Alexander
04.07.2017
12:50:49

Vadim
04.07.2017
12:51:02

Google

Alexander
04.07.2017
12:51:13
Прошу прощения

WoodyFire
04.07.2017
12:52:28

Айтуар
04.07.2017
12:52:30

Vadim
04.07.2017
12:53:20

Anton [Mgn, az09@osm]
04.07.2017
12:53:43
(это плохой совет, надо включать расширения)

WoodyFire
04.07.2017
12:55:12
не, не удивлен. Ничего не меняется)
Не. меняется. Пока в отпуске диспетчера осваиваются с программой. А потом объединю все подразделения гарнизона. И будет, если телефонограмма пришла о том, что гидрант не работает или обнаружен был не рабочий. То один внес и все увидели.
Правда как выше сказали. Все на голом интузиазме (((

Айтуар
04.07.2017
12:56:12

WoodyFire
04.07.2017
12:58:30
мне нужно всё логировать, а функций много
А мне вот как студенту интересно, зачем все логировать? Что преследуется? Какая ценность в полном логировании? Логирование ценное это когда изменения, но в СУБД для этого существует журнал транзакций или я не прав?

Петр
04.07.2017
12:59:59

WoodyFire
04.07.2017
13:00:14
У меня тоже много функций. Но большая часть занимается запросами и формированием данных для клиента. А лишь малая часть функций что то изменяет.

Айтуар
04.07.2017
13:00:24

Mike Chuguniy
04.07.2017
13:00:33
Таки дебаг.
Судя по "для отладки приложения"

Айтуар
04.07.2017
13:01:16

Fike
04.07.2017
13:01:27

WoodyFire
04.07.2017
13:01:32
Для отладки функций я недавно использовать pgdebugger и планироващика. На базе их возможностей удалось работу функции с 3,5 минут превратить в 2 сек.

Fike
04.07.2017
13:02:23
и это все никак не поможет, когда выяснилось, что скрипт автоматического менеджмента аккаунтами грохнул половину юзеров и теперь надо это не допустить в дальнейшем

Google

Айтуар
04.07.2017
13:02:39
Если в стандартный лог БД будет писаться работа функций, мне этого достаточно.

WoodyFire
04.07.2017
13:05:58

Fike
04.07.2017
13:06:25
его не существует, я его сейчас выдумал
я про то, что дебаггером в прошлое не подцепишься

WoodyFire
04.07.2017
13:09:36
Да, но журнал транзакций разве не фиксирует изменения. Конечно, это при условии, что используются именно транзакции при изменении данных

Айтуар
04.07.2017
13:10:43
а может тогда pg_stat_statements ?

Fike
04.07.2017
13:10:44
лог программы != выполненные транзакции

Yury
04.07.2017
13:10:55
ооо KaiGai отпочковался от NEC и свою БД запилил http://heterodb.com/

WoodyFire
04.07.2017
13:16:36
лог программы != выполненные транзакции
Я думаю при правильном построении такой проблемы не будет. Что является программа у клиента - просто морда (GUI) которая показывает результаты. А СУБД призвана обрабатывать данные. И если данные загружаются клиенту для обработки, то мое личное мнение это не правильная архитектура. Я считаю, что каждый должен заниматься тем для чего создан.
Из сказанного мной выше я считаю, что у базы должен быть API который общается с клиентом. Тогда проблем меньше по целостности. Хотя все больше вижу именно обработку данных у клиентов. Я иду другим путем. Разделяй и властвуй.
Можете меня побить, если я не прав.

Azat
04.07.2017
13:16:49
Парни доброго дня. Не сталкивались с таким что prepared statement с 3 входнымм параметрами хуже по производительности чем обычный plain sql.? Postgres версии 9.6
Запрос прост - 3 joins + in ($1, $2,$3)

WoodyFire
04.07.2017
13:32:15
Отправляя запросы SQL с клиента мы тем самым искусственно создаем дополнительную нагрузку на СУБД. Которая прежде, чем выдаст результат должна распарсить полученный запрос и понять, что от нее клиент хочет. Затем СУБД должна построить план выполнения и выбрать что оптимально в данный момент. А для сохраненной функции такая доп.нагрузка, как я разобрался, отсутствует. Распарсивание выполняется один раз и строиться план выполнения. Сохраняется в бинарном виде и при вызове ее практически сразу
приступает к обработке данных.

Alexey
04.07.2017
13:33:35

Denis
04.07.2017
13:40:19

nindider
04.07.2017
13:41:56

Darafei
04.07.2017
13:43:00
Аудит. Когда нечаянно разрешили что-то делать кому-то, кому не стоило, и нужно выяснить, сколько именно этим пользовались и как вернуть назад.

WoodyFire
04.07.2017
13:45:42
)))))) такие таблички у меня имеются. Дошел сам. Но вижу это все актуально. Это приятно. Правда может они и не совсем правильные, но вычислить по ним кто что изменял и когда можно ))))
у меня в этих табличках фиксируется ip-адрес машины, логин юзера, что вызывал и с какими входными данными
ах да и время вызова
и все это я отделил от схемы с данными. лежит отдельно в схеме. Всю информацию туда размещает написанный API в СУБД

Google

WoodyFire
04.07.2017
13:53:14
Вот только не подумайте, что у меня большой и крутой проект. Половину еще не реализовано. Да и сам еще только учусь. Я еще "зеленый". А хуже всего я один на все и на голом интузиазме ((((.

nindider
04.07.2017
13:54:45
Или как говорится - триггеры событий
То же создание лог таблицы и триггеров логгирования при создании обычной таблицы с данными
В PG я хз как это реализовать
В Oracle попроще с этим

WoodyFire
04.07.2017
14:00:36
Вот кстати, реализовывал через системные триггеры?
пока триггеры вообще не трогал. Все в функциях. Триггеры событий скорее всего задействую для вызова определенной функции к примеру при подсчете статистики за определенный период. Чтобы готовая обработанная информация лежала в таблице. Так сказать своеобразный кеш. И при обращении клиента не проводились расчеты, а выдавался сразу результат. Тогда думаю нагрузка в будущем, при появлении большого количества клиентов, не сильно возрастет.

nindider
04.07.2017
14:01:10
Получается у тебя данные через функцию обновляются что ли?

Admin
ERROR: S client not available

nindider
04.07.2017
14:01:22
Просто я хз ка кне через триггеры отлавливать dml jgthfwbb yf nf,kbwt
dml операции на таблице

WoodyFire
04.07.2017
14:04:45
Получается у тебя данные через функцию обновляются что ли?
Да. Допустим клиент хочет внести данные в какую-нибудь таблицу. Ну к примеру сотрудника, то он вызывает addSotr(firstName, LastName, otchName, birthday). Клиент понятия не имеет как устроена база и понятия не имеет что будет твориться в СУБД

nindider
04.07.2017
14:05:23
addSotr это функция в PG?

WoodyFire
04.07.2017
14:05:42
да. написанная мной

nindider
04.07.2017
14:05:49
Ясненько

WoodyFire
04.07.2017
14:12:18
А еще есть функции с несколькими конструкторами, что собственно одно из причин перехода с MySQL.

nindider
04.07.2017
14:14:07
Перегрузка что ли

WoodyFire
04.07.2017
14:14:09
Но вот наследование таблиц это вообще круть. ))))

nindider
04.07.2017
14:14:24
Воу, не знал об этом

Google

Fike
04.07.2017
14:14:32

nindider
04.07.2017
14:14:50
Привык называть перегрузкой))

WoodyFire
04.07.2017
14:15:28
да так правильно. я как студент еще не совсем все называю своими именами. Это меня надо ругать, за то что не правильно выражаюсь

Fike
04.07.2017
14:16:35
а походу я налажал, это не оно все-таки

WoodyFire
04.07.2017
14:26:02
ну наконец-то я нашел. страница 1323 "Перегрузка" ))))) руководство pg 9.6.2

nindider
04.07.2017
14:26:33
Перегрузка это основа, есть почти во всех языках)
С опытом знания накапливаются, и следющие инструменты уже проще изучать
Я сам то имею знания-обрывки в PG

WoodyFire
04.07.2017
14:30:30
Да поэтому я задался целью изучить Си и С++ + Assabler. Правда незнаю хватит ли сил. Но по воле судьбы попался человек хороший который провел по азам Си и С++. Теперь все зависит от меня самого
Коллеги можете поздравить ))))) Сдал на 5-ть. Вводный курс по БД.

nindider
04.07.2017
15:14:04
Какие вопросы были?

WoodyFire
04.07.2017
15:18:20
Какие вопросы были?
Собсвенно не сложные. Все-таки вводный. Типа что это такое и как называется. В том числе и про шардинг вспомнил сегодняшний. Правильный ответ Система управления распределенными базами данных. ))))
Архитектура такая )))

nindider
04.07.2017
15:19:52
Хм, распределенные не встречал еще. Обычно же СУБД/RDBMS

WoodyFire
04.07.2017
15:23:36
Как я понял из всей кучи информации. Это имеется главный сервер к которому все обращаются, а он решает с какого сервера, что тянуть. Получается типа многопроцессорной системы располагающаяся на разных машинах и может находиться в разных географических местах.
по ссылке https://habrahabr.ru/company/oleg-bunin/blog/309330/ которую выкладывали выше. Иванов как раз продемонстрировал это.
С учетом того, что у нас машина на базе процессора i3 это майнфрейм работающий с 3D. А сервер максимум на процессоре Core2Duo, то видимо такую архитектуру придется строить и совсем скоро.
Правда такой сервер вообще один у нас. Серверов у нас нет. Не считая файл-помойки на базе вин-машины которую смог состряпать наш "программист".


Игорь
04.07.2017
18:36:06
Товарищи, такой вопрос. После установки на убунту, первый зайти в psql удаётся только через sudo -u postgres psql. Если пробую сначала зайти в систему под пользователем postgres через sudo su postgres и потом зайти в psql, ругается
psql: could not connect to server: Нет такого файла или каталога
Is server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
В чем трабл, кто подскажет?

Dmitry
04.07.2017
19:21:44
значит у вас в PATH прописан самосборный psql
зайдите под пользователем postgres и наберите type psql