2010-10-12 63 views
2

我做了一个Windows应用程序,我需要添加一个“排序”选定的列。网格有4列和很多记录(当然是分页)。数据库排序SQL Server

的问题是:

我应该考虑增加一个索引需要在网格排序每一列?

感谢进步。

问候

回答

3

是的 - 考虑添加索引。

要确保您出于性能原因所做的事真正有帮助的唯一方法就是测试它们。但是,如果表中有很多数据,并且人们可能会在所有这些列上使用排序,那么我会添加索引。

+0

不,对于大表索引不会改进排序。全面扫描比索引扫描+全面扫描更好。 – iddqd 2010-10-12 22:09:45

+1

@iddqd - 索引确实改善了排序。索引是预先排序的,因此避免了按需排序整个表的需要。 – 2010-10-12 22:14:09

+0

@Martin Smith INDEX对于大型表格(OLTP数据库)没有用处,如果你有很多DML查询则维护成本非常高。如果INDEX超过某个大小限制,则随机读取将杀死每台服务器。你可以尝试http://www.codeproject.com/kb/aspnet/PagingLarge.aspx,但我在某个时候100%确定,分页时间将增长到非常大的值。 – iddqd 2010-10-13 06:52:36

1

选择的索引取决于很多因素,包括插入/更新/删除查询的频率与选择查询的频率。索引可以帮助ORDER BY,另外四个指数对于业绩来说可能不会太糟糕,但它确实取决于你想要完成的事情。