2012-04-21 70 views
1

当我创建一个全新的数据库和/或表时,应该遵循什么样的索引策略。因为我不会有任何用户查询来分析或要求找到主要使用的列。什么应该是我的索引战略/(哪些列应该框住聚集,哪些列应该参与非聚集)?在这种情况下我应该如何继续?新表上的索引策略 - SQL Server

+1

我不知道如何回答这个问题。索引策略通常基于已知(或假定)的一组查询和更新操作来构建。如果您构建的数据库仅发生插入操作,则无论是否索引或基于递增值的单一(聚集)索引都将是最有效的。在开始查询时它不起作用,但是如果不知道需要支持哪种类型的查询,则无法建立索引策略。 – 2012-04-21 20:13:09

回答

1

事先不知道什么,你能做的最好的就是慷慨申请指标。这会大大降低写入性能,但至少可以很好地处理意外的查询。

1

索引当前在函数/存储过程中使用的列。一旦您的应用程序开始使用,您可以相应地进行调整并运行调整向导。

1

当涉及新的开发项目与生产支持时,在索引进入优先级列表时很难有绝对的答案。就新的开发项目而言,在数据库设计,索引策略和数据访问代码上花费同等时间是明智的。没有它,应用程序可能成为一个需要在生产环境中引起高度关注的维护噩梦。在很多方面,如果数据库被认为是一个预计永远没有任何关注地运行的黑匣子,说起来容易做起来难。如果你面对这个问题,那么有必要首先改变这种心态,并确保时间,精力和资源正确地满足向前发展的数据库需求。

对于生产应用程序,查看索引和查询计划在发生性能问题时应该是高优先级。在很多方面,改变或添加索引应该是经过审查,分析,测试和部署的许多项目之一,而不是考虑索引是解决性能问题的灵丹妙药。

索引的另一个重要考虑因素是随着应用程序的更改,索引可能也需要更改。不要认为索引停滞不前,而是要考虑索引含义的代码。因此,随着应用程序的变化,不要害怕改变,测试和部署改进的索引策略。

你可以阅读这里进一步http://www.mssqltips.com/sqlservertip/1452/sql-server-index-checklist/