2011-07-31 71 views
0

我在UI中有一个搜索屏幕,我们需要根据名字,姓氏,姓氏,州,城市,出生日期,父亲姓名进行搜索,这里用户可以搜索一列或这些列的组合。如何提高查询在SQL Server 2005中的性能

现在查询被写入,我在所有这些列上使用条件来获取数据。

但该表包含大约200000行,并且基于此进行搜索确实会降低性能。我如何在这里创建一个非聚集索引?

如何提高查询的性能,可以在这里做些什么?

欢迎在此提出任何建议。

谢谢 Kumee。

+1

请添加表和查询...... – gbn

+2

要给予适当的回答,我们真的需要看你如何使用LIKE。 – hatchet

回答

0

您将需要一个full text index

+0

对于直线=搜索,也许不是。我们不能说,因为有所有的信息都会被窃听...... – gbn

+0

@gbn,他说他在所有列上都使用了类似的条件,这些条件无法真正以我知道的任何其他方式进行优化。 –

+0

如果使用前导通配符或全文搜索,FTS是前进的方向。仅在名称列上使用尾随通配符的词干搜索可以高效地使用索引。 – gbn

0

你可以使用这个脚本:

CREATE INDEX IndexName on TableName (Comma Seperated Columns Name) 

像:

CREATE INDEX IX_SearchBasicInfo on BasicInfo (FirstName,LastName,SurName)