This post demonstrates influence of characterset on use of indexes. See also Language and Use of Indexes in Oracle
/* DROP TABLE t; ALTER SESSION SET NLS_LANGUAGE='AMERICAN'; */ SELECT PARAMETER, VALUE FROM V$NLS_PARAMETERS; CREATE TABLE t (x VARCHAR2(255)); INSERT INTO t VALUES ('a'); INSERT INTO t VALUES ('b'); INSERT INTO t VALUES ('c'); INSERT INTO t VALUES ('d'); CREATE INDEX t_idx ON t (x); -- the index is used UPDATE t SET x='a' WHERE x='a'; ALTER SESSION SET NLS_LANGUAGE='CZECH'; -- the index is still used if NLS_CHARACTERSET=WE8MSWIN1252 -- the index is not used if NLS_CHARACTERSET=WE8ISO8859P1 UPDATE t SET x='a' WHERE x='a';