Dmitry Yemanov пишет:
Ты лучше объясни, чем тебя не устраивает залить все ID в GTT и сджойниться с ней, вместо этих извратов со строками и разделителями.
С GTT вместо обсуждаемого
SELECT *
FROM MyTable t
WHERE t.id IN (:param1)

придётся выполнить что-то подобное:

CREATE GLOBAL TEMPORARY TABLE tmp1(N integer);
INSERT INTO tmp1 (1);
INSERT INTO tmp1 (2);
INSERT INTO tmp1 (3);

SELECT *
FROM MyTable t
INNER JOIN tmp1 ON tmp1.N == t.id

И так для каждого запроса с конструкцией t.id IN (:param1)

Кода несколько больше, однако, да и суммарная скоростью выполнения, кажется мне изрядно ниже будет...

Другое дело, что для реализации придётся изменить API чтобы можно было массивы в параметры покласть что скажется на совместимости...
--
Александр Замараев

Ответить