不合理索引设计导致查询缓慢甚至锁表。避免在高并发列上创建非必要索引,定期用sys.dm_db_index_usage_stats分析索引使用率,删除零读取、高维护成本的冗余索引。

2026AI生成图像,仅供参考
未设置自动增长参数引发数据库挂起。数据文件与日志文件必须配置合理的初始大小和增量(如512MB),禁用“按百分比增长”,防止碎片化与I/O阻塞。
日志文件无限膨胀却不截断。确保恢复模式匹配业务需求:简单恢复模式可自动截断;完整/大容量日志恢复模式下,必须定时执行LOG备份,否则日志无法收缩。
忘记更新统计信息,执行计划劣化。对频繁DML的大表启用自动更新(AUTO_UPDATE_STATISTICS),并补充每周全库统计信息刷新任务,尤其在批量导入后立即手动更新。
使用SELECT 和不带WHERE的UPDATE/DELETE。前者增加网络与内存开销,后者极易误操作。强制SQL Server Management Studio开启“影响行数确认”与“仅执行查询计划”,开发环境禁止连生产库。
TempDB配置不当引发争用。将tempdb数据文件数量设为CPU逻辑核数(≤8),各文件大小相同、自动增长一致,并置于独立高速磁盘,禁用AUTO_SHRINK。
忽视备份验证,灾难时发现备份无效。每次备份后执行RESTORE VERIFYONLY,配合定期还原演练;保留至少3份异地副本,备份文件名嵌入时间戳与校验码。
权限过度宽松,如长期使用sa或db_owner。遵循最小权限原则,用数据库角色分离读写权限,禁用Windows内置管理员映射SQL登录,定期审计sys.server_principals。
长事务未监控,阻塞链扩散。启用扩展事件捕获阻塞会话(blocked_process_threshold),结合sp_who2与sys.dm_exec_requests识别超长运行事务,设置语句级超时(如COMMAND_TIMEOUT=30)。
忽略错误日志轮转,关键告警被覆盖。配置SQL Server错误日志保留6轮以上,将ERRORLOG重定向至SSMS Alert+邮件通知,重点监控823/824/832等严重IO类错误。
未做实例级补丁管理,安全漏洞长期暴露。订阅Microsoft安全通告,测试环境先行验证CU/SP升级,生产窗口避开业务高峰,升级前务必完整备份并记录实例配置。
缺乏性能基线,故障响应靠猜测。每月采集一次标准化快照:等待统计(sys.dm_os_wait_stats)、CPU/内存使用率、缓存命中率、批处理请求/秒。基线异常偏差超20%即触发根因排查。