172 похожих чатов

Что может быть причиной долгого выполнения DELETE? таблица на 20

гигабайт, удаляются данные по столбцу который есть в индексе
долгий - больше 2 часов
запрос вида
delete from table_a where id not in (select id from table_b)
в обоих таблицах индексы на id есть

11 ответов

11 просмотров

Попробуйте where not exists

Fᴏʀᴅᴇɴ- Автор вопроса
Slava Rozhnev SQLtest.online https://phpize.online
Попробуйте where not exists

действительно намного больше стала утилизация железа странно что такая разница, но в любом случае спасибо

20 гб? там сколько записей? 0_o

Fᴏʀᴅᴇɴ- Автор вопроса
lendoroff
20 гб? там сколько записей? 0_o

много) 101378087 estimated total rows

DELETE не truncate, он и должен быть долгим... но если отвечать на ваш вопрос, то могут например блокировки быть причиной

Fᴏʀᴅᴇɴ- Автор вопроса
Дмитрий
DELETE не truncate, он и должен быть долгим... но ...

там ерунда какая то была, почему то диск занят был на 100 кб/с

Fᴏʀᴅᴇɴ- Автор вопроса
Дмитрий
в смысле ?

ну вот я запускал запрос такой: https://t.me/pgsql/361391 смотрел через atop и видел что диск занят на 0,1 мб/с заменил not in на not exists и щас бодренько по 200 мб/с все летит

Fᴏʀᴅᴇɴ
ну вот я запускал запрос такой: https://t.me/pgsql...

🤣Бодренько вы определяете по чтению с диска ?)) Любопытно))) То есть если выполняете запрос с "not in" то чтение с диска 100 кб/с а если с "not exists" то 200 мб/с ?)

Fᴏʀᴅᴇɴ- Автор вопроса
Fᴏʀᴅᴇɴ
а вот не знаю как еще) я не профи, увы)

Ну вы бы план запроса построили да посмотрели на него уже) https://postgrespro.ru/docs/postgrespro/13/using-explain

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта