
∆nto
24.04.2018
08:25:12
Hey, it's correct to put EXISTS and NOT EXISTS in one WHERE Clause?

Pavel
24.04.2018
08:25:43

∆nto
24.04.2018
08:26:13

Amir
24.04.2018
09:10:17

Google

Petr
24.04.2018
09:10:46

Amir
24.04.2018
09:11:51
Вот именно) поэтому если есть обычный индекс по дате, чтобы не добавлять всякий ещё функциональных индексов

Petr
24.04.2018
09:12:23

Amir
24.04.2018
09:12:49
Всяких много, но многоколоночные не подходят под сложные сортировкид
Проблема не во мне, я умею писать запросы так чтобы подхватывать индексы которые есть, в разработке пишут с большей скоростью запросы, и они редко обращают внимание на существующие индексы

Petr
24.04.2018
09:15:22
у меня складывается ощущение что вам вообще нужен clickhouse, но это уже совсем другая история :)

Amir
24.04.2018
09:16:14
Я просто для разработчиков хотел упростить жизнь так что бы их запросы были и просты в написании и по существующим индексам могли работать,

Petr
24.04.2018
09:17:04
?

Yaroslav
24.04.2018
09:17:16

Amir
24.04.2018
09:17:59
Проект очень большой, этих функцийфункций очень много

Yaroslav
24.04.2018
09:20:12

Google

Darafei
24.04.2018
09:22:29
примерно те же усилия займёт научить разработчиков читать планы
я вот всё думаю, как сделать тесты на планы, типа "если в плане два секскана, то переписывай"

Mike Chuguniy
24.04.2018
09:31:17

Darafei
24.04.2018
09:31:43
ну да
если генератор адекватных прод-данных не получается написать, то как ещё? :)

Voldemar
24.04.2018
09:43:28

Yaroslav
24.04.2018
09:45:33
Т.е. backup —- это не самоцель, а только _средство_ достижения нужных вам RTO/RPO.

Voldemar
24.04.2018
09:47:34
и еще я много где слышал упоминания, о том что возможны ситуации, когда по неведомым причинам, дамп оказывался поврежден, и бесполезен, без каких либо ошибок в процессе снятия, бывает такое?

Yaroslav
24.04.2018
09:49:17

Voldemar
24.04.2018
09:52:10

Yaroslav
24.04.2018
09:52:13

Voldemar
24.04.2018
09:53:05

Yaroslav
24.04.2018
09:53:15

Mike Chuguniy
24.04.2018
09:55:00

Voldemar
24.04.2018
09:55:12

Yaroslav
24.04.2018
09:55:51

Google

Voldemar
24.04.2018
09:59:11
спасибо, за пояснения. мне важно было развеять миф про внезапные "непригодные" дампы.

Алексей
24.04.2018
10:02:20

Sergey
24.04.2018
10:02:46


Vladimir
24.04.2018
10:03:49
подскажите, пожалуйста, только камнями сразу не кидайте, получил то что есть в наследство. Есть БД порядка 5 ТБ в ней фактически 2 таблички и куча индексов версия 9.3. есть ли смысл переделывать индексы? как оценить их "размер"? при перестроении индексов табличка будет залочена?
filestorage=# \di+
List of relations
Schema | Name | Type | Owner | Table | Size | Description
—------+-------------------------+-------+-------------+-------------+---------+-------------
public | file_data_pkey | index | filestorage | file_data | 500 MB |
public | file_header_created | index | filestorage | file_header | 326 MB |
public | file_header_key_key | index | filestorage | file_header | 1756 MB |
public | file_header_pkey | index | filestorage | file_header | 337 MB |
public | ix_file_header_category | index | filestorage | file_header | 684 MB |
public | ix_file_header_data_key | index | filestorage | file_header | 1260 MB |

Sergey
24.04.2018
10:06:54


Yaroslav
24.04.2018
10:07:47
спасибо, за пояснения. мне важно было развеять миф про внезапные "непригодные" дампы.
Если вы обрабатываете ошибки pg_dump, и не натыкаетсь на bug-и PostgreSQL (или чего-то ещё... см. например ongoing thread про fsync в linux ;) ), то вы должны получить dump на какой-то snapshot.
Если база достаточно "проста" (в ней нет того / с ней не связано то, что pg_dump не снимает), этот дамп "пригоден".
Далее, строго говоря, если он снят с default options, он подходит только для recovery (а не для ETL, например), но можно снимать и ACID-дампы (см. —serializable-deferrable).

Voldemar
24.04.2018
10:12:39

Sergey
24.04.2018
10:15:08


Vladimir
24.04.2018
10:16:51
current_database | schemaname | tablename | tbloat | wastedbytes | iname | ibloat | wastedibytes
—----------------+------------+------------------+--------+-------------+---------------------------------+--------+------------—
filestorage | public | file_header | 1.0 | 119078912 | file_header_key_key | 0.8 | 0
filestorage | public | file_header | 1.0 | 119078912 | ix_file_header_category | 0.3 | 0
filestorage | public | file_header | 1.0 | 119078912 | ix_file_header_data_key | 0.6 | 0
filestorage | public | file_header | 1.0 | 119078912 | file_header_pkey | 0.1 | 0
filestorage | public | file_header | 1.0 | 119078912 | file_header_created | 0.1 | 0
filestorage | public | file_data | 1.0 | 30760960 | file_data_pkey | 0.7 | 0

Yaroslav
24.04.2018
10:18:40

Vladimir
24.04.2018
10:19:17
т.е. места они не занимают? как я понял один индекс на 1.2 ТБ
от этого хочу понять как оценить размер БД без учета индексов и понять есть ли возможность уменьшить размер перестройкой индекса как вариант

Yaroslav
24.04.2018
10:21:29

Vladimir
24.04.2018
10:22:18
имею виду может индекс разросся и его имеет смысл перестроить или вообще удалить

Andiskiy
24.04.2018
10:24:06
Добрый день, суммирую значения одного столбца, но мне нужно до суммирования округлить все значения, подскажите пожалуйста как это сделать?
пытался так
SELECT SUM(ROUND(votes)) AS sum_id FROM "addresses"

Yaroslav
24.04.2018
10:26:56

Vladimir
24.04.2018
10:28:10

Andiskiy
24.04.2018
10:28:13

Google


Vladimir
24.04.2018
10:28:29
relname | rows_in_bytes | num_rows | number_of_indexes | unique | single_column | multi_column
—-----------+---------------+-------------+-------------------+--------+---------------+------------—
file_header | 14 MB | 1.42432e+07 | 5 | Y | 5 | 0
file_data | 5741 kB | 5.87868e+06 | 1 | Y | 1 | 0
tablename | indexname | num_rows | table_size | index_size | unique | number_of_scans | tuples_read | tuples_fetched
—-----------+-------------------------+-------------+------------+------------+--------+---------------- -+-------------+----------------
file_data | file_data_pkey | 5.87868e+06 | 884 MB | 500 MB | Y | 3908284 | 3483628 | 3483621
file_header | file_header_created | 1.42432e+07 | 2981 MB | 326 MB | N | 0 | 0 | 0
file_header | file_header_key_key | 1.42432e+07 | 2981 MB | 1756 MB | Y | 977119 | 361000 | 360995
file_header | file_header_pkey | 1.42432e+07 | 2981 MB | 337 MB | Y | 360995 | 371903 | 360995
file_header | ix_file_header_category | 1.42432e+07 | 2981 MB | 684 MB | N | 0 | 0 | 0
file_header | ix_file_header_data_key | 1.42432e+07 | 2981 MB | 1260 MB | N | 1954238 | 1954238 | 1954238


Kirill
24.04.2018
10:34:03
подскажите, как увеличить количество слотов для подключению к бд?)

Yaroslav
24.04.2018
10:34:42

Vladimir
24.04.2018
10:34:46

Yaroslav
24.04.2018
10:35:13


Kirill
24.04.2018
10:35:35
слотов репликации?
ошибка уже перетёрлась, как опять появится- скажу, че-то с superuser связано
хотя коннекты все не от суперюзера

Vladimir
24.04.2018
10:36:39

Kirill
24.04.2018
10:37:03
слотов репликации?
remaining connection slots are reserved for non-replication superuser connections

Vladimir
24.04.2018
10:37:25

Yaroslav
24.04.2018
10:38:54

Kirill
24.04.2018
10:38:57
как замерить количество коннектов, текущих к БД

Гаврилов
24.04.2018
10:39:49
ps aux | grep postgres

HipJoy
24.04.2018
10:40:24
добрый день
хочу скопировать значения из одной таблицы в другую
time psql -c "copy table to stdout" | psql -c "copy table from stdin"
выдает такое
ERROR: missing data for column "ranking"
CONTEXT: COPY moz, line 19: "www.lifewire.com/what-is-sudo-2197466 what is H"
выясняется что есть странное значение в одной строке
как на скрине ниже
как это можно экспейпить и вообще ахтунг
пробовал уже и csv, то же самое

Yaroslav
24.04.2018
10:40:35

Kirill
24.04.2018
10:41:09
блин, реально лимит кончается периодически
20 коннектов, 4 воркера
надо вдвое поднять, количество воркеров оставлять?
4 ядра

Google

Vladimir
24.04.2018
10:45:06

Yaroslav
24.04.2018
10:50:22
не понял
Хмм... я правильно вижу, что вы показываете индексы размером по 2-3 ГИГАбайта, хотя SELECT pg_size_pretty( pg_total_relation_size( 'file_data' ) ); у вас 5 ТЕРАбайт?
Поэтому, интересует:
SELECT pg_size_pretty(pg_indexes_size('file_data'));
SELECT pg_size_pretty(pg_relation_size('file_data', 'main')); —- на всякий случай

Vladimir
24.04.2018
10:57:12

Yaroslav
24.04.2018
11:01:25

Vladimir
24.04.2018
11:02:41
? блин вечер усталость)
туплю сорри)
получается индексов не так и много 1.3 ГБ. пора идти читать матчасть)

Гаврилов
24.04.2018
11:05:17
там скорее всего пол базы - это разные предгрегированные данные для отчетов
какинить кубы ежедневно считающиеся
а старые не удаляются

Vladimir
24.04.2018
11:05:51
можно сказать эта БД Архив вложений

Гаврилов
24.04.2018
11:05:59
бинариники чтоли?


Vladimir
24.04.2018
11:06:16
current_database | schemaname | tablename | indexname | real_size | estimated_size | bloat_size | bloat_ratio
—----------------+------------+------------------+---------------------------------+------------+----------------+------------+---------------------—
filestorage | public | file_data | file_data_pkey | 524640256 | 353771520 | 170868736 | 32.5687428758802679
filestorage | public | file_header | file_header_created | 325541888 | 285712384 | 39829504 | 12.2348322806311180
filestorage | public | file_header | file_header_key_key | 1759387648 | 742834176 | 1016553472 | 57.7788228282480246
filestorage | public | file_header | file_header_pkey | 337223680 | 285712384 | 51511296 | 15.2751123527268310
filestorage | public | file_header | ix_file_header_category | 685588480 | 514277376 | 171311104 | 24.9874536981718246
filestorage | public | file_header | ix_file_header_data_key | 1255170048 | 857112576 | 398057472 | 31.7134297965657001


Yaroslav
24.04.2018
11:06:19

Vladimir
24.04.2018
11:06:28
это 100% TOAST

Grigory
24.04.2018
11:21:18

Darafei
24.04.2018
11:22:42

Voldemar
24.04.2018
11:27:04