Это почти наверняка не будет заметной разницы.
Индекс может быть немного более компактным, потому что целочисленные представления могут быть немного меньше, чем представление с фиксированной точкой. Например, число 1234 требует 3 байта памяти, в то время как число 1234 требует 4 байта памяти. Время от времени происходит обратное, и значение с фиксированной точкой требует меньшего объема памяти, но в 100 раз больше вероятность того, что целочисленное представление будет меньше, чем обратное. Вы можете убедиться в этом сами, заполнив таблицу первыми 1 миллионами целых и первым миллионами целых чисел, разделенными на 1000.
SQL> create table int_test( int_col number(38,0), fixed_col number(10,3) );
Table created.
SQL> insert into int_test
2 select level, level/1000
3 from dual
4 connect by level <= 1000000;
1000000 rows created.
SQL> select sum(vsize(int_col)) int_col_total_size,
2 sum(vsize(fixed_col)) fixed_col_total_size
3 from int_test;
INT_COL_TOTAL_SIZE FIXED_COL_TOTAL_SIZE
------------------ --------------------
3979802 4797983
SQL> ed
Wrote file afiedt.buf
1 select count(*) int_larger_than_fixed
2 from int_test
3* where vsize(int_col) > vsize(fixed_col)
SQL> /
INT_LARGER_THAN_FIXED
---------------------
8262
SQL> ed
Wrote file afiedt.buf
1 select count(*) fixed_larger_than_int
2 from int_test
3* where vsize(int_col) < vsize(fixed_col)
SQL> /
FIXED_LARGER_THAN_INT
---------------------
826443
Хотя индекс будет несколько более компактным, он вступит в действие только в том случае, если вы будете выполнять какие-либо расширенные сканирования диапазона или быстрые полные сканирования структуры индекса. Маловероятно, что в целочисленных значениях индекса будет меньше уровней, поэтому поиск в одной строке потребует столько же операций ввода-вывода. И это довольно редко, когда вы захотите сделать сканирование большого диапазона по индексу. Тот факт, что данные более компактны, может также привести к увеличению конкуренции за определенные блоки.
Поэтому я предполагаю, что индекс будет занимать немного меньше места на диске, но вам будет сложно заметить разницу в производительности. И если вы выполняете дополнительные умножения и деления каждый раз, дополнительный процессор, который будет потреблять, скорее всего, отменит любую предельную выгоду ввода-вывода, которую вы можете получить. Если ваше приложение выполнит намного больше индексных быстрых полных сканирований, чем в среднем, вы можете увидеть некоторое сокращение ввода-вывода.