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

Нормальный запрос. На что жалуетесь?

13 ответов

11 просмотров

не жалуется, тормозит с выполнением

а вообще это нормальная практика использования служебных полей в запросе? ну и формы ANY(ARRAY()) вместо in?

Ale><ander
а вообще это нормальная практика использования слу...

Вообще-то нет, не нормальная. Как и сборки их в массив из запроса, в большинстве случаев. А ANY(ARRAY()) для константного списка (передаваемого как параметр с клиента, например) — норма. Т.е. смотря в какой ситуации. Тут, похоже, кто-то что-то оптимизировал (пытался устранить deadlocks, возможно).

Yaroslav Schekin
Вообще-то нет, не нормальная. Как и сборки их в ма...

Как-то непойму -- а зачем тут ANY(ARRAY()) нужэн? Ну, будет сначала оно в указанном порядке FOR UPDATE, а потом только UPDATE, или в указанном порядке будет идти на каждую строку попарно FOR UPDATE, UPDATE -- какая разница? Блокировка вроде одна и та жэ в итоге.

Ilya Anfimov
Как-то непойму -- а зачем тут ANY(ARRAY()) нужэн? ...

Видимо, там есть какие-то другие UPDATE, с которыми это и "синхронизируется" таким образом. В сторону: почему в своих рассуждениях о блокировках и корректности многие часто рассматривают только взаимодействие разрабатываемого UPDATE (или транзакции) только с другой такой же? Других запросов к этой таблице не существует, что ли ("таблица одного запроса")? ;) > Блокировка вроде одна и та жэ в итоге. Последовательность блокировок может быть разная — ORDER BY-то прямо в UPDATE не напишешь.

Yaroslav Schekin
Видимо, там есть какие-то другие UPDATE, с которым...

Да какбы -- другие/не другие... По-моему, оно будет иметь одинаковую последовательность блокировок, определяемую ORDER BY в IN (SELECT ... ORDER BY FOR UPDATE) и ANY(ARRAY(SELECT ... ORDER BY FOR UPDATE).

Ilya Anfimov
Да какбы -- другие/не другие... По-моему, оно буде...

А, в этом смысле. Ну да, с ctid-ами отличие только в том, что это (возможно) быстрее.

Yaroslav Schekin
А, в этом смысле. Ну да, с ctid-ами отличие только...

Не-не, я вообще сейчас не про ctid. ctid -- это отдельно Я про ctid IN (SELECT ...) vs ctid = ANY(ARRAY(SELECT ...)) Тут ужэ упоминали, что это странная конструкцыя. Она в общем в большынстве случае заметно замедлит всё это развлечение (часто промежуточный результат можно просто не хранить). Я думал -- можэт вы обратили внимание, и имеете в виду, что этот кунштюк можэт как-то повлиять на блокировки и deadlock avoidance.

Ilya Anfimov
Не-не, я вообще сейчас не про ctid. ctid -- это от...

Да нет, хотя планы так получаются формально разные, эффективность у них примерно одинакова, если rows мало. Если много — замедлит, по идее (я как-то не пользовался).

Yaroslav Schekin
Да нет, хотя планы так получаются формально разные...

Ну, тут примерно 700 тысяч, надо думать. Кроме того, так он, возможно, сможэт это в один проход по буферам t1 отработать.

Ilya Anfimov
Ну, тут примерно 700 тысяч, надо думать. Кроме тог...

Вообще неизвестно, сколько там в t2 на самом деле, то-то и оно.

Yaroslav Schekin
Вообще неизвестно, сколько там в t2 на самом деле,...

Эстиматор говорит, что 685546. Для временных таблиц он вроде нормально эту статистику online обновляет.

Ilya Anfimov
Эстиматор говорит, что 685546. Для временных табли...

Как раз нет, для temporary tables "сама по себе" статистика не обновляется никогда, и рассчитывается очень криво, особенно в нетривиальных случаях.

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Реально в одиночку написать игровой движок на Си?
ㅤ (SVO)
11
Всем привет, товарищи! Можете меня поздравить, получил "отлично" за дисциплину "языки программирования низкого уровня". Честно говоря, не очень хочу, чтобы основы асма, которы...
Ыиу
1
Карта сайта