我有一个varchar2(2000字节)的列,这是一个现有的列,并且正在许多地方使用,问题是当我尝试与此列进行比较时,查询需要30-40秒才能执行。查询就像下面这样简单 -
select response_id from t_response where desc_response = to_char(1000);
desc_response
就是那一栏。
我发现此表上目前只有一个索引,而且是在response_id列上。
答案 0 :(得分:2)
"我们在此表上只有一个索引,而且在response_id列上。"
因此,您的查询正在执行全表扫描,读取表中的每条记录以检查desc_response
的值。
你忽略了表中有多少行,但这是简单物理。有很多行的表需要更长的时间来搜索。所以在30-40秒的基础上,我猜这是一张大桌子。
在desc_response
上构建索引,执行时间将会减少。多少取决于各种因素。