【发布时间】:2015-01-11 12:35:27
【问题描述】:
我创建了一个带有索引 varchar2 列的 Oracle 表,称为“ID”。
我正在使用的软件正在读取此表,但不是运行像
select * from table_name where ID='something'
确实如此(注意值前的额外“N”)
select * from table_name where ID=N'something'
这会导致某种字符转换。
问题是,当第一个查询执行范围扫描时,第二个查询执行全表扫描。
由于我无法修改这个软件正在运行的查询,我应该使用哪种数据类型,而不是 varchar2,这样 'N' 函数执行的转换并不意味着全表扫描?
【问题讨论】: