powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Рвёт шаблон...
18 сообщений из 18, страница 1 из 1
Рвёт шаблон...
    #39263117
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При изменении данных в таблице (командами UPDATE или DELETE) накапливается мусор1 (а это плохо);


ЩИТО?????
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263132
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263166
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhson,

Предъявы более предметно.
Сравни поведение делита пг с ораклом - сколько будут занимать таблицы после удаления. И сколько места понадобится в процессе удаления. Потом перейдем к апдейтам, а потом к обсуждению, зачем постоянно держать сотни гигабайт унды ради развмесячного селекта.
Но думается, с твоими открытиями, тебе пора переселяться в форум сравнение субд.
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263202
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да нет, просто любопытно


всё пытаюсь понять, как работает база, но пока рвёт шаблон только
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263204
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p2.,

ну ващето проблема есть
на специальных профилях использования
типа все время обновляемых табличек
даже не столько с самими ровсами, сколько с индексами


правда когда--то это был не баг, а фича -- пж мыслился как БД с полной историей
но это дело давно выпилили
где--то в интернетах следы можно сыскать


1. могу врать -- т.к. свободно интерпретирую следы инфы
2. медленный прогресс со сборкой мусора наметился -- с картой фризов, которую можно, по идее, и для частичных вакуумов применять.
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263274
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqp2.,

ну ващето проблема есть
на специальных профилях использования
типа все время обновляемых табличек
даже не столько с самими ровсами, сколько с индексами


правда когда--то это был не баг, а фича -- пж мыслился как БД с полной историей
но это дело давно выпилили
где--то в интернетах следы можно сыскать


1. могу врать -- т.к. свободно интерпретирую следы инфы
2. медленный прогресс со сборкой мусора наметился -- с картой фризов, которую можно, по идее, и для частичных вакуумов применять.

по 2 - vacuums уже давно частичные в PG (которые не freeze) с использованием visibility map и all visible pages не читают и не трогают. другой вопрос что при этом читаются все индексы целиком (но что с этим сделать ни у кого идей нет).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263441
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а просто вести карту изменённых блоков/записей религия не позволяет?

кстати сейчас проверю, как поведёт себя база при попытке чтения данных, которых реально уже нет
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263481
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Чудеса!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select * from dual;
 dummy 
-------
 X
(1 row)

Time: 12,394 ms
db1=# \dt+ dual
                  List of relations
 Schema | Name | Type  | Owner  | Size  | Description 
--------+------+-------+--------+-------+-------------
 public | dual | table | user1 | 40 kB | 
(1 row)



2. соответственно 2 сессии, работают с Т99:
-- 1 ---
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare cur cursor for select * from t99 where id between 1 and 6;
DECLARE CURSOR
Time: 7,766 ms
db1=# fetch next from cur;
 id | val  
----+------
  1 | rrr1
(1 row)



-- 2 --
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
delete from t99 where id between 1 and 6;
DELETE 234
db1=# commit;
COMMIT
db1=# select *  from t99 where id between 1 and 6;
 id | val 
----+-----
(0 rows)



-- 1 --

Код: sql
1.
2.
3.
4.
5.
fetch next from cur;
 id | val  
----+------
  2 | rrr2
(1 row)



-- 2---
Код: sql
1.
2.
3.
\set autocommit on
vacuum t99;
VACUUM



-- 1 --

Код: sql
1.
2.
3.
4.
5.
fetch next from cur;
 id | val  
----+------
  3 | rrr3
(1 row)



-- 2 --
Код: sql
1.
2.
3.
\q
vacuumdb -f -a
vacuumdb: vacuuming database "db1"



PROCESS HANGS



то есть что мы видим, какой-то аналог UNDO безусловно существует, что похвально. И так же видно естественные проблемы со "сборщиком мусор", поскольку в реляционной базе не должно быть никакого мусора вообщем-то

В связи с чем момент, как посмотреть
Код: sql
1.
v$parameter

? либо show parameter из sqlplus...


п.с.

Кстати странно, что после
Код: sql
1.
2.
3.
close cur;
CLOSE CURSOR
Time: 0,090 ms



в 1-й сессии vacuumdb -f -a остался висеть...
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263532
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhson,

У вас где то висит открытая транзакция или открытый курсор на db1 которые мешают запуску vacuum full.
Вот только руками мусор в базе не собирают (vacuumdb это штука для редких случаев, до понимания когда их надо использовать - вам еще долго вникать), мусор собирается автоматически по мере необходимости самой базой.

>>а просто вести карту изменённых блоков/записей религия не позволяет?
В индексах такую карту вести - смысла нет, удаление строки из базы индексы вообще не меняет (поэтому чтобы очистить индексы от удаленных строк autovacuum их вычитывает целиком).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263538
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhsonто есть что мы видим, какой-то аналог UNDO безусловно существует, что похвально. И так же видно естественные проблемы со "сборщиком мусор", поскольку в реляционной базе не должно быть никакого мусора вообщем-то
Вы считаете, что ORACLE в UNDO разделе хранит мусор? Зачем тогда места для "мусора" так много выделяете?

У каждой СУБД свои особенности. Если в Postgres так всё "убого", то зачем вы с нею возитесь?
Если на то есть причины, то может стоит относиться к этой (и любой другой, отличной от ORACLE) СУБД не столь высокомерно?..

JonhsonВ связи с чем момент, как посмотреть `v$parameter`?
https://www.postgresql.org/docs/current/static/view-pg-settings.html
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263539
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так я ж закрыл курсор )))

аааа вот, commit; ещё надо и вакуум прошёл.

Ну это недоработка имхо, нужен какой-то vacuum online что-ли.


Так а что насчёт v$parameter ? где эффективные настройки экземпляра (тот же УНДО-ретеншн) можно поглядеть?
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263543
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovВы считаете, что ORACLE в UNDO разделе хранит мусор? Зачем тогда места для "мусора" так много выделяете?


оракуль как раз мусор и не хранит (почти , выкрутасы с hwm не считаем), а в УНДО крайне полезная инфа. Поэтому я и удивился мусору тут... неприятно удивился, так скажем.

У каждой СУБД свои особенности. Если в Postgres так всё "убого", то зачем вы с нею возитесь?
Если на то есть причины, то может стоит относиться к этой (и любой другой, отличной от ORACLE) СУБД не столь высокомерно?..


затем, что хочу понять, как её использовать, что-бы было не убого ;)

Почти наверняка это возможно.
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263545
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhsonтак я ж закрыл курсор )))

аааа вот, commit; ещё надо и вакуум прошёл.

Ну это недоработка имхо, нужен какой-то vacuum online что-ли.


Так а что насчёт v$parameter ? где эффективные настройки экземпляра (тот же УНДО-ретеншн) можно поглядеть?

нет таких настроек, удаленные строки живут в базе как минимум пока они хоть какой то открытой транзакции или курсору нужны (поэтому суточные транзакции очень вредно держать), а удаляются (точнее помечаются как свободное место под future reuse) они автоматически базой через autovacuum (у которого куча своих настроек которые посмотреть можно через show autovacuum_vacuum_scale_factor и прочие autovacuum_*).

PS: блин прочтите наконец книжку что ли или документацию.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263557
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovJonhsonВ связи с чем момент, как посмотреть `v$parameter`?
https://www.postgresql.org/docs/current/static/view-pg-settings.html


спасибо! то, что надо


правда с undo это не помогло
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select name, unit, short_desc, boot_val, reset_val  from pg_settings where lower(name) like '%undo%';
 name | unit | short_desc | boot_val | reset_val 
------+------+------------+----------+-----------
(0 rows)

Time: 13,659 ms
db1=# select name, unit, short_desc, boot_val, reset_val  from pg_settings where lower(name) like '%reten%';
 name | unit | short_desc | boot_val | reset_val 
------+------+------------+----------+-----------
(0 rows)
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263566
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk
>>а просто вести карту изменённых блоков/записей религия не позволяет?
В индексах такую карту вести - смысла нет, удаление строки из базы индексы вообще не меняет (поэтому чтобы очистить индексы от удаленных строк autovacuum их вычитывает целиком).


ммм это странно, потому что изменение в блоках таблицы должно изменять так-же и сооотвествующий блоки индекса.

Пример сейчас не могу привести, нет оракла под рукой... только pg )
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263738
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JonhsonMaxim Boguk>>а просто вести карту изменённых блоков/записей религия не позволяет?
В индексах такую карту вести - смысла нет, удаление строки из базы индексы вообще не меняет (поэтому чтобы очистить индексы от удаленных строк autovacuum их вычитывает целиком).


ммм это странно, потому что изменение в блоках таблицы должно изменять так-же и сооотвествующий блоки индекса.

Пример сейчас не могу привести, нет оракла под рукой... только pg )

удаление помечает запись удаленной в самой таблице
индексы это никак не трогает

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263758
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
допустим... но мне одному кажется, что это... не совсем правильно что-ли... ?
...
Рейтинг: 0 / 0
Рвёт шаблон...
    #39263771
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhsonдопустим... но мне одному кажется, что это... не совсем правильно что-ли... ?
вопрос о том, сколько вопросов может задать один эээ альтернативно умный -- вошел в пословицы и поговорки.

а ещё сегодня модно рассуждать о синдроме недостаточного внимания и т.п..
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Рвёт шаблон...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]