powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как удалить таблицу и не стать жертвой взаимоблокировки?
9 сообщений из 59, страница 3 из 3
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39477734
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqursido,

чел не понимает, что BEGIN; в SQL (SQL.BEGIN) и BEGIN в plpgSQL (plpgSQL.BEGIN) разные слова разных языков, и означают разное.

это в поцгрессе сплошь и рядом
например
END;
EXECUTE;
и т.п. -- сыршенно разные слова.

вплоть до SELECT .... INTO . Из за чего требуется отдельная альтернатива --"CREATE table .... as select ...."



а как в PL/pgSQL это впихнуть?
...
Рейтинг: 0 / 0
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39477743
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39477751
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqсникерс,

rtfm
https://www.postgresql.org/docs/current/static/plpgsql.html

какая глава-то хоть? о_О
...
Рейтинг: 0 / 0
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39477790
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сникерс,

Боитесь лишнего что-то прочитать?
...
Рейтинг: 0 / 0
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39479223
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqсникерспропущено...


да!так зачем же ждать этих новых ?

может быть наоборот поторопицца, пока не набегло ?
они не должны набежать, таблица уже не наследник, селекты её не найдут новые.
...
Рейтинг: 0 / 0
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39479238
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durakqwwqпропущено...
так зачем же ждать этих новых ?

может быть наоборот поторопицца, пока не набегло ?
они не должны набежать, таблица уже не наследник, селекты её не найдут новые.

1. смотря как написаны. можно расписать запросы в хранимках и напрямую к партициям

2. автовакуумы таки найдут. а они быстро переподимаются при отстреле

3. ну и инсерты с апдейтами могут найти -- если влезут в партицирующие условия (триггерам инхеритс похер, они по имени ищут партиции обычно)


но самое забавное -- захера человек в транзакции делает паузу ? он действительно дятил, или просто ваш родственник ?
...
Рейтинг: 0 / 0
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39479262
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо банальный
LOCK TABLE ... ACCESS EXCLUSIVE
он сам подождет пока не освободится таблица
...
Рейтинг: 0 / 0
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39481516
сникерс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут подумал...

а почему собственно дедлок-то возникает?

почему delete table просто не дождется пока селект закончится?
...
Рейтинг: 0 / 0
Как удалить таблицу и не стать жертвой взаимоблокировки?
    #39481730
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сникерсЯ тут подумал...

а почему собственно дедлок-то возникает?

почему delete table просто не дождется пока селект закончится?

потому что drop table в случае партиционированной таблицы требует 2 лока:
1)на саму удаляемую таблицу
а потом
2)на таблицу-предок (или основную)

А select берет локи на теже вещи в другом порядке
1)сначала на таблицу предок
а потом уже
2)на таблицы потомки.


Ждать бессмысленно в такой ситуации. Это именно deadlock когда ни тот ни другой запрос не могут отработать и один из 2х надо снимать.
...
Рейтинг: 0 / 0
9 сообщений из 59, страница 3 из 3
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как удалить таблицу и не стать жертвой взаимоблокировки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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