首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么会导致不好的SQL服务器性能?

什么会导致不好的SQL服务器性能?
EN

Stack Overflow用户
提问于 2009-08-10 01:23:40
回答 5查看 4.4K关注 0票数 9

每次我发现从我的数据库中检索数据的性能都很慢。我试图找出我的SQL查询的哪一部分有问题,并尝试优化它,并向表中添加一些索引。但这并不总能解决问题。

我的问题是:

还有其他使SQL服务器性能更好的窍门吗?

还有什么原因会使SQL服务器性能更差呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-08-10 01:38:50

  • 低效查询设计
  • 自动增长文件
  • 表上要维护的索引太多
  • 表上索引太少
  • 没有正确选择聚集索引
  • 由于维护不善而导致索引碎片
  • 由于没有聚集索引而造成的堆碎片
  • 索引使用的FILLFACTORs过高,会导致过多的分页
  • 索引上使用的FILLFACTOR太低,导致空间占用过多和扫描时间增加
  • 在适当情况下不使用覆盖索引
  • 正在使用的非选择性索引
  • 统计数据的不当维护(过时的统计数据)
  • 数据库未正确标准化
  • 事务日志和数据共享相同的驱动器轴。
  • 内存配置错误
  • 记忆太少
  • CPU太少
  • 慢速硬盘
  • 硬盘或其他硬件故障
  • 数据库服务器上的3D屏幕保护程序将占用CPU。
  • 与竞争CPU和内存的其他进程共享数据库服务器
  • 查询之间的锁争用
  • 扫描整个大型表的查询
  • 前端代码,它以无效的方式搜索数据(嵌套循环,逐行)
  • 不需要和/或不是FAST_FORWARD的游标
  • 不设置NOCOUNT时,你有大的桌子被审查通过。
  • 使用事务隔离级别太高(例如在没有必要时使用SERIALIZABLE )
  • 客户端和Server之间的往返次数太多(一个聊天接口)
  • 不必要的链接服务器查询
  • 一种链接服务器查询,目标是没有定义主键或候选键的远程服务器上的表。
  • 选择过多的数据
  • 过多的查询重新编译

还有可能还有其他的。

票数 22
EN

Stack Overflow用户

发布于 2009-08-10 02:19:19

当我与有这个问题的新开发人员交谈时,我通常会发现这是因为两个问题之一。如果你遵守这两条规则,它们都是固定的。

首先,不要检索任何不需要的数据。例如,如果正在进行分页,则不要带回100行,然后计算页面上属于哪些行。让存储的proc计算出来,只检索您需要的10。

第二,没有什么比你不做的工作更快了。例如,我在一个系统上工作,在这个系统中,用户的全部角色和权限都是通过请求的每个页面来检索的--对于某些用户来说,这是100行。即使只是在第一个请求中将其保存到会话状态,然后将其用于后续请求,也会对数据库产生重要影响。

票数 2
EN

Stack Overflow用户

发布于 2009-08-10 15:03:04

建议您获得一本关于您使用的数据库的性能调优的好书(这在很大程度上是特定于数据库的)。这是一个非常复杂的问题,除了在网络上的概括性之外,不能真正得到回答。

例如,Dave告诉您,低效查询会导致问题,编写低效查询的方法很多,解决这些问题的方法也有很多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1252795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档