Você pode criar um índice e definir o comprimento do prefixo, para que o índice armazene apenas os primeiros símbolos iniciais de cada valor da coluna. Fica assim no MySQL:
CREATE INDEX table_idx ON emp(last_name(8));
Existe uma alternativa de como fazer isso no Oracle?
Você pode criar um índice em uma expressão (o que você não pode fazer no MySQL):
Mas isso não ajudará em nada, a menos que você também use essa expressão na cláusula where, por exemplo
Qual é exatamente o uso de um índice no MySQL que não indexa todo o valor?
Descobri que existem índices especiais "Oracle Text" que melhoram o desempenho para consultas curinga. Essa construção de índice requer um pouco mais de trabalho, mas ainda é uma maneira de criar índices de prefixo:
http://docs.oracle.com/cd/B28359_01/text.111/b28303/ind.htm#i1007102