在非索引列上选择带有动态where子句的数据

时间:2015-11-11 15:35:29

标签: indexing sql-server-2012

我有一个包含30列和数百万条目的表。 我想在此表上执行存储过程来搜索数据。 搜索条件在参数中传递给此SP。 如果我在非索引列上使用动态WHERE子句搜索数据,则会花费大量时间。

以下是一个例子:

Select counterparty_name from counterparty where  counterparty_name = 'test'

在这个例子中,这个交易对手的行号为5000000。

如上所述,我无法为此表创建索引。

我想知道处理时间是否正常。

我想知道是否有任何可以改善执行时间的建议?

最好的问候。

1 个答案:

答案 0 :(得分:0)

如果列上没有索引,则必须扫描聚簇索引才能查找数据(或者可能包含可能包含该列的较小索引)。因此,这需要很长时间。