Fro*_*rud 6 performance database-administration sql-server
我是一个 dba,拥有一个包含 ~280 个表的数据库,总数据大小为 ~1,5GB。我想调整数据库以使其性能更好。
您如何保持 SQL 数据库的性能?你做了多少索引、统计和碎片整理?
最大的性能杀手/改进是什么,您如何排除故障以找出优化的位置?
编辑: 这是来自 3rd 方 CRM 系统的数据库,所以我无法控制代码。他们添加了很多索引(在合理的地方),但我想知道如何保持服务器的速度。
我确实每晚跑步
EXEC sp_MSforeachtable "dbcc dbreindex('?', '', 90)"
Run Code Online (Sandbox Code Playgroud)
使用维护计划重建索引和(希望)更新统计信息。同一个计划还执行“收缩数据库任务”。
还可以完成哪些其他夜间/每周维护任务或一次性优化?
编辑2:
收集到的提示:
que*_*tin 10
您应该删除维护计划中的“收缩数据库”部分。“收缩数据库”将使您的索引碎片化!这是 Paul S. Randal 的一篇很棒的博客文章,详细解释了这一点。
您可以使用以下方法重建统计信息:
EXEC sp_updatestats
Run Code Online (Sandbox Code Playgroud)
在您的数据库重新索引后总是更新您的统计信息。这是 Colin Stasiuk 的一篇博客文章,解释了这种最佳实践。
我仅通过索引就获得了数量级的性能改进(尽管我并没有真正摆弄它)
在您处理了显而易见的(体面的硬件、索引和碎片整理)之后,您最好的性能来源就是查看您自己的代码。
确保您的 SQL 服务器除了服务 SQL、没有文件共享、没有 Web 服务器之外没有做任何事情。一个大小不应该有任何性能问题的数据库,运行 Profiler 将有助于在任何慢点上归零。
确保预先分配足够的空间,以便数据库不会一直自动增长。
归档时间: |
|
查看次数: |
13417 次 |
最近记录: |