【发布时间】:2015-11-24 21:37:10
【问题描述】:
我对索引完全不熟悉,想加快我的一些客户系统的速度。我的组织犯了一个错误,将我们的一些客户从 SQL Server 2000 升级到 SQL Server 2008,然后在内部对其进行全面测试。结果,(新)服务器的运行速度比以往任何时候都慢。正如您所想象的那样,这让客户感到困惑。每个客户都有两个 SQL Server 用户数据库,大小都设置为大约 1GB,每个客户大约有 30 个用户。
在我的组织中,目前没有任何资源可以聘请开发人员或 DBA 来推荐如何加快新系统的速度。
如果我要花 4 周时间尽可能多地学习 SQL Server 数据库和索引,您认为添加一些索引来看看是否有什么不同可能是个好主意吗?我也可以轻松删除索引以使系统恢复原来的状态,以免造成伤害吗?除了它是一种学习体验?
【问题讨论】:
-
索引的基本经验法则:决策上下文中使用的任何字段(
where、join、order by等)都应该有一个索引。话虽如此,更多的索引也意味着更多的开销,并且在某些时候,您可能最终会浪费足够的开销来维护所有额外的索引,从而失去查询效率的任何收益。 -
是的 - 索引通常会有所帮助 - IF 您知道哪些查询会导致性能问题,哪些索引会有所帮助。所以是的 - 如果你可以添加 right 索引 - 很有可能你会获得更好的性能 - 但是 finding 并确定那些 right索引可能有点挑战....
-
我现在正在阅读这篇文章,值得一看:SQL Server Index Design Guide
-
问得好,祝你好运!也可以轻松删除索引,但如果您是 SQL 的新手,您可能会考虑创建一个测试环境。
-
如果您想真正完整地了解 sql server 中的索引,从最基础的部分通过一些非常深入的部分深入了解,这里是关于该主题的精彩文章集合。 sqlservercentral.com/stairway/72399
标签: sql sql-server indexing