Size: a a a

PostgreSQL + 1C + Linux

2020 September 02

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Итак, ответ автора расширения:
надо смотреть sql server  тех лет. 1с утверждал, null = null  возвращает true и в платформе на это рассчитывалось
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Надо покопать мс скл тех лет
источник

2_

2flower _ in PostgreSQL + 1C + Linux
могу копнуть 2005, или надо еще раньше?
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Давайте 2005
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
2flower _
нашел в доке ms sql
параметр ANSI_NULLS

Boolean Expression  SET ANSI_NULLS ON  SET ANSI_NULLS OFF
NULL = NULL  UNKNOWN  TRUE
1 = NULL  UNKNOWN  FALSE
NULL <> NULL  UNKNOWN  FALSE
1 <> NULL  UNKNOWN  TRUE
NULL > NULL  UNKNOWN  UNKNOWN
1 > NULL  UNKNOWN  UNKNOWN
NULL IS NULL  TRUE  TRUE
1 IS NULL  FALSE  FALSE
NULL IS NOT NULL  FALSE  FALSE
1 IS NOT NULL  TRUE  TRUE

т.е. все таки это возможно, при установке ANSI_NULLS в OFF. Шарик, я балбес.
Скорее всего это раньше нельзя было настроить и по умолчанию стоял false
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Ещё ответ от разработчика :
Естественно - менять поведение постгреса слишком опасно.== возвращает. Тогда они в компиляторе скл запросов в мсскл генерили =, для постгреса без расширени генерили конструкцию a = b or (a is null and b is null), с раширением a == b
источник

АД

Антон Дорошкевич... in PostgreSQL + 1C + Linux
Т. Е. Расширение можно будет убрать когда 1с перестанет поддерживать ms sql ниже 2008 и поменяет поведение с postgres
источник

2_

2flower _ in PostgreSQL + 1C + Linux
2005
ANSI_NULLS ON

взял из доки пример

CREATE TABLE dbo.t1 (a INT NULL);  
INSERT INTO dbo.t1 values (NULL),(0),(1);  

DECLARE @varname int;  
SET @varname = NULL  
 
SELECT a  
FROM t1  
WHERE a = @varname;  
 
SELECT a  
FROM t1  
WHERE a <> @varname;  
 
SELECT a  
FROM t1  
WHERE a IS NULL;  
GO  

первые два пусто, в 3-м наборе одна запись null.
т.е. работает также.
источник

A

Almv in PostgreSQL + 1C + Linux
ВЫполнил сброс статистики pg_stat_reset(); но физически место не освобоидлсь, надо вручную каталог очистить?
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Almv
ВЫполнил сброс статистики pg_stat_reset(); но физически место не освобоидлсь, надо вручную каталог очистить?
ну вы же сперва спрашивали как очистить счётчик, а не каталог). Да,   pgsql_tmp можно почистить, желательно чтобы в это время не было активных запросов
источник

A

Almv in PostgreSQL + 1C + Linux
Сергей Голод
ну вы же сперва спрашивали как очистить счётчик, а не каталог). Да,   pgsql_tmp можно почистить, желательно чтобы в это время не было активных запросов
я думал он сразу очистит и каталог... pgsql_tmp пуст
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Almv
я думал он сразу очистит и каталог... pgsql_tmp пуст
тогда почему вас беспокоит значение Size of temporary files?
источник

A

Almv in PostgreSQL + 1C + Linux
Сергей Голод
тогда почему вас беспокоит значение Size of temporary files?
было значение 290Гб критически не хватает свободного места.. думал pg_stat_reset освободит его... сейчас отображает 0, но при этом свободного пространства меньше не стало
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Almv
было значение 290Гб критически не хватает свободного места.. думал pg_stat_reset освободит его... сейчас отображает 0, но при этом свободного пространства меньше не стало
одно не относится к другому. Этот счётчик просто сообщает сколько всего было создано временных файлов (которые потом были автоматически удалены) с момента последней очистки статистики
А то чем у вас занято место - выяснять нужно отдельно. Может у вас просто база выросла
источник

A

Almv in PostgreSQL + 1C + Linux
Сергей Голод
одно не относится к другому. Этот счётчик просто сообщает сколько всего было создано временных файлов (которые потом были автоматически удалены) с момента последней очистки статистики
А то чем у вас занято место - выяснять нужно отдельно. Может у вас просто база выросла
ок, понял, база была 900гб после реиндекса стала 713гб и верменные файлы созданы на 290гб... ладно проверю весь сервер, странно как-то
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Almv
ок, понял, база была 900гб после реиндекса стала 713гб и верменные файлы созданы на 290гб... ладно проверю весь сервер, странно как-то
select nspname, relname, relkind, pg_size_pretty(pg_relation_size(c.oid)) as size from pg_class c left join pg_namespace n on (n.oid=c.relnamespace) where nspname not in ('pg_catalog','information_schema') order by pg_relation_size(c.oid) desc limit 50;
источник

A

Almv in PostgreSQL + 1C + Linux
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Ну вот сделайте sum по последней колонке и получите сколько ваша база занимает.
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
автовакуум не выключен же? попробуйте vaccuum full сделать на жирных таблицах (если есть возможность монопольно занять таблицы). Если сильно сдуется после автовакуума  - значит что-то с настройками автовакуума
источник

A

Almv in PostgreSQL + 1C + Linux
Сергей Голод
автовакуум не выключен же? попробуйте vaccuum full сделать на жирных таблицах (если есть возможность монопольно занять таблицы). Если сильно сдуется после автовакуума  - значит что-то с настройками автовакуума
ок, запускаю, по сумме там много таблиц.. но уже по первым 50строкам около 380гб
источник