do $$ declare _f_user int = 63; -- это идентификатор пользователя из таблицы core.pd_users: 63 - Милютин, 59 - Телегин _d_date timestamptz = now(); _n_longitude numeric(19, 6) = 47.2279506; _n_latitude numeric(19, 6) = 56.1484872; _c_network_status text = 'online'; begin insert into core.ad_tracking (fn_user, d_date, n_longitude, n_latitude, c_network_status) values(_f_user, _d_date, _n_longitude, _n_latitude, _c_network_status); end; $$ language plpgsql;
Как узнать размер таблиц в postgresql
SELECT nspname || '.' || relname AS "relation", pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size" FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) WHERE nspname NOT IN ('pg_catalog', 'information_schema') AND C.relkind <> 'i' AND nspname !~ '^pg_toast' ORDER BY pg_total_relation_size(C.oid) DESC LIMIT 100;
Поиск медленных запросов
Задача
Необходимо найти долговыполняющиеся запросы к базе данных.
Решение
Необходимо включить вывод в лог запросов, длительность которых больше заданной длительности.
Читать далее «Поиск медленных запросов»Обслуживание PostgreSql
Examples
In the examples below, [tablename] is optional. Without a table specified, VACUUM will be run on available tables in the current schema that the user has access to.
- Plain VACUUM: Frees up space for re-use
VACUUM [tablename]
- Full VACUUM: Locks the database table, and reclaims more space than a plain VACUUM
/* Before Postgres 9.0: */ VACUUM FULL /* Postgres 9.0+: */ VACUUM(FULL) [tablename]
- Full VACUUM and ANALYZE: Performs a Full VACUUM and gathers new statistics on query executions paths using ANALYZE
/* Before Postgres 9.0: */ VACUUM FULL ANALYZE [tablename] /* Postgres 9.0+: */ VACUUM(FULL, ANALYZE) [tablename]
- Verbose Full VACUUM and ANALYZE: Same as #3, but with verbose progress output
/* Before Postgres 9.0: */ VACUUM FULL VERBOSE ANALYZE [tablename] /* Postgres 9.0+: */ VACUUM(FULL, ANALYZE, VERBOSE) [tablename]Читать далее «Обслуживание PostgreSql»
Работа с часовыми поясами
Все сервера должны быть в одном часовом поясе и настроить их можно по инструкциям ниже:
Далее в nodejs нужно добавить код для преобразования даты:
var moment = require('moment'); ... Date.prototype.toJSON = function () { return moment(this).format('YYYY-MM-DDTHH:mm:ss.SSSZZ'); }
Вся правда об индексах в PostgreSQL / Олег Бартунов, Александр Коротков (PostgreSQL)
Удаление postgresql
sudo apt-get --purge remove postgresql
dpkg -l | grep postgres
sudo apt-get --purge remove postgresql postgresql-doc postgresql-client-common
https://askubuntu.com/questions/32730/how-to-remove-postgres-from-my-installation
Настройка временной зоны для БД postgres
Подключаемся под postgres
sudo su - postgresЧитать далее «Настройка временной зоны для БД postgres»
Настройка временной зоны на Ubuntu 18
В systemd есть своя утилита для настройки даты и часового пояса. Чтобы узнать текущее состояние выполните:
timedatectl status
Для просмотра всех доступных временных зон выполните такую команду:
Читать далее «Настройка временной зоны на Ubuntu 18»Автоматическое документирование базы данных
Для документирование базы данных применяется открытое решение Autodoc.
Инструкция по установке и настройке на сайте appcode.pw
Основной скрипт для запуска генерации документации.
cd autodoc postgresql_autodoc -d cic-dev-db -h 192.168.17.111 -u postgres --password=<pw> -t html -s "core|dbo" -f /var/www/html/cic-dev-db
Демонстрационный вариант документации можно посмотреть на сайте http://cic.it-serv.ru/cic-dev-db.html