当前位置:   article > 正文

SQL执行很慢的原因分析_sqlserver数据库日志会导致sql变慢么

sqlserver数据库日志会导致sql变慢么

sql执行很慢的时候可以大致分为两种情况:

一、大部分情况下正常,偶尔慢

   1.数据库刷新脏页

  • redolog写满:更新数据或者插入数据时,会先在内存中将相应的数据更新,并不会立刻持久化到磁盘中去,而是把更新记录存到redolog日志中去,待到空闲时,再通过redolog把最新数据同步到磁盘中去。所以当redolog写满的时候,就不会等到空闲时,而是暂停手中的活,去把数据同步到磁盘中,所以这个时候SQL就会执行的比较慢
  • 内存写满:如果一次查询的数据过多,查询的数据页并不在内存中,这时候就需要申请新的内存空间,而如果此时内存已满,就需要淘汰一部分内存数据页,如果是干净页就直接释放,如果是脏页就需要flush
  • 数据库认为空闲的时候:这时候系统不忙
  • 数据库正常关闭:内存脏页flush到磁盘上

    2.无法获取锁

二、数据量不变的情况下,一直都很慢

  1. 字段没有索引
  2. 有索引没用
  3. 索引没用上
  4. 数据库选错索引:通过区分度判断走索引的话反而扫描的行数很大而且索引要走两边,选择全表扫描
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号