Как обсуждалось в комментариях, если целью использования таблицы с ключами при использовании upserting было создание уникальной строки для каждого ключа (ключей), то может быть более эффективно (когда речь идет о воспроизведении журнала) начать с таблицы без ключей иустановите upd на insert
, а когда воспроизведение завершено, сгруппируйте таблицу по ключам, например,
`keyCol1`keyCol2 xkey select from replayedTable where i=(last;i) fby ([]keyCol1;keyCol2)
Обратите внимание, что insert
нельзя использовать с таблицей с ключами, поскольку она не позволяетвставить, когда ключ уже существует в таблице.
Причина, по которой оригинал upsert
в таблице ключей был медленной, возможно, была связана с количеством ключей и неэффективностью поиска списка ключей (в частности, строк) в каждом upsert.Хотя это всего лишь предположение