我是一名数据库管理员,我的数据库有大约 280 个表,总数据大小大约 1.5GB。我想调整数据库,使其性能更好。
您如何保持 SQL 数据库的性能?您花了多少时间处理索引、统计信息和碎片整理?
最大的性能杀手/改进是什么?以及如何排除故障以找出需要优化的地方?
编辑: 这是来自第三方 CRM 系统的数据库,因此我无法控制代码。他们添加了很多索引(在合理的位置),但我想知道如何保持服务器的速度。
我每晚都会跑步
EXEC sp_MSforeachtable "dbcc dbreindex('?', '', 90)"
使用维护计划重建索引并(希望)更新统计信息。同一计划还执行“收缩数据库任务”。
还可以进行哪些其他夜间/每周维护任务或一次性优化?
编辑2:
收集到的提示:
- 不要运行“收缩数据库任务”
- 关闭“自动收缩”属性
- 运行“EXEC sp_MSforeachtable“dbcc dbreindex('?', '', 90)”
- 然后运行“EXEC sp_updatestats”
答案1
答案2
我仅通过索引就获得了数量级的性能提升(尽管我并没有真正摆弄它)
在您处理了显而易见的问题(合适的硬件、索引和碎片整理)之后,您最好的性能来源就是查看您自己的代码。
答案3
确保您的 SQL 服务器除了提供 SQL 服务外不执行任何其他操作,没有文件共享,没有 Web 服务器。这种规模的数据库不应该有任何性能问题,运行 Profiler 将有助于找出任何慢点。
确保预先分配足够的空间,以便数据库不会一直自动增长。
答案4
将主数据库文件和日志文件放在不同的物理磁盘上。即 - 将您.MDF
和您的.LDF
文件分开。