Запрос выполняется на огромной таблице (1 миллиард записей +)
Выберите Col1 из таблицы A, где identcol > (выберите bigint (identval) из ParamTable)
(identval
тип данных — это символ, а identcol
— это BIGINT
). Это занимает много времени и выполняет полное сканирование таблицы. Когда я заменяю подзапрос и использую числовое значение в предложении where для identcol, он начинает использовать индекс этого столбца.
Есть ли способ заставить DB2 использовать этот индекс без указания буквального значения? (DB2 9.7 luw на AIX)
edit: я обнаружил, что BETWEEN работает с подзапросом и верхним значением, а также использует индекс. Также, если я удалю явное приведение к BIGINT, он начнет использовать индекс. Но все же хотелось бы знать техническое объяснение/указатели. Спасибо!