-1

我有一列是 varchar2(2000 字节),这是一个现有的列,并且在许多地方都在使用,问题是当我尝试与该列进行比较时,查询需要 30-40 秒才能执行。查询很简单,如下所示 -

select response_id from t_response where desc_response = to_char(1000);

desc_response是那一栏。

我发现到目前为止,我们在此表上只有一个索引,即在 response_id 列上。

4

1 回答 1

2

“到目前为止,我们在此表上只有一个索引,即在 response_id 列上。”

因此,您的查询正在执行全表扫描,读取表中的每条记录以检查desc_response.

你忽略了说表格有多少行,但这是简单的物理学。具有大量行的表需要更长的时间来搜索。所以在30-40秒的基础上,我猜这是一张大桌子。

建立一个索引,desc_response执行时间就会下降。多少取决于各种因素。

于 2014-05-28T07:02:26.733 回答