【TechTarget中国原创】问:我有一个非常大的顾客表。它的ID是主键,并且SQL Server在上面建立了一个聚簇索引。同时,表上没有其它的索引。那么,我可以添加一个索引到诸如年龄、国家和性别的域上,以便实现更快的查询吗?我们在WHERE子句中有很多对于这些字段的表的页查询,因此,表可以进行频繁的更新和写入。我所担心的是,在这些域上创建一个非聚簇索引将会影响性能。你能给我一些建议吗?
答:可以,如果你有根据这些字段查询(WHERE、ORDER BY、GROUP BY等)或JOIN,那么你可以添加一个非聚簇索引到这些其它的字段中。但你要记住的是,你只可以有一个聚簇索引和最多255个非聚簇索引。
在SQL Server 2005中,你也可以添加字段到索引,从而在通常不可加索引的字段上添加索引,如文本数据类型字段。此外,在某种情况下,添加太多索引到有大量插入、更新或删除事务的数据库上将降低性能,因此要小心地选择。