每次我发现从数据库检索数据的性能很慢时。我尝试找出 SQL 查询 的哪一部分有问题,并尝试优化它并向表中添加一些索引。但这并不总能解决问题。
我的问题是:
还有其他技巧可以提高 SQL Server 性能吗?
还有哪些其他原因会导致 SQL Server 性能变差?
最佳答案
- 查询设计效率低下
- 自动增长文件
- 表上需要维护的索引太多
- 表上的索引太少
- 没有正确选择聚集索引
- 由于维护不善而导致索引碎片
- 由于没有聚集索引而导致堆碎片
- 索引上使用的 FILLFACTOR 过高,导致页面拆分过多
- 索引上使用的 FILLFACTOR 过低,导致空间使用过多并增加扫描时间
- 在适当的情况下不使用覆盖索引
- 使用非选择性索引
- 统计数据维护不当(统计数据过时)
- 数据库未正确标准化
- 事务日志和数据共享同一驱动器轴
- 内存配置错误
- 内存太小
- CPU 太少
- 硬盘速度慢
- 硬盘驱动器或其他硬件出现故障
- 数据库服务器上的 3D 屏幕保护程序会占用您的 CPU
- 与其他竞争 CPU 和内存的进程共享数据库服务器
- 查询之间的锁定争用
- 扫描整个大表的查询
- 前端代码以低效方式搜索数据(嵌套循环,逐行)
- 不必要和/或不是 FAST_FORWARD 的游标
- 当您使用游标浏览大型表时,不要设置 NOCOUNT。
- 使用过高的事务隔离级别(例如在不需要时使用 SERIALIZABLE)
- 客户端和 SQL Server 之间的往返次数过多(聊天界面)
- 不必要的链接服务器查询
- 链接服务器查询,其目标是远程服务器上未定义主键或候选键的表
- 选择太多数据
- 过多的查询重新编译
哦,可能还有其他一些。
关于sql-server - 什么会导致 SQL Server 性能不佳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1252795/