追加情報がなければ、to_number()関数が列に適用されているときにインデックスが使用されていないと想定することしかできません。 このSOの質問 、型変換により、オプティマイザがインデックスを使用できなくなる可能性があります。
一般的に:
- 列に関数を追加する場合(つまり、
to_number(id)
)オプティマイザはその列の通常のインデックスを使用できなくなります。 - 可能であれば、列をrawで使用する必要があります。例:
WHERE trunc(col) = DATE '2009-08-27'
の代わりに 次を使用する必要があります:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- 本当に列に関数を適用する必要がある場合は、関数ベースのインデックス