• 记两次线上出现的索引失效的问题


    1、并发环境两个进程做update操作导致死锁

    2、触发器中,由于字段类型转换引发的索引失效问题

    以上两个问题的间接原因都是索引失效,进而引发全局扫描,使检索时间大大增加

    1、并发环境两个进程做update操作导致死锁

    场景:项目中有一张记录表单传签的记录表,包含表单单号、传签时间、审核人申请人等字段信息。目前表数据量已经达到160W笔。原先是有一个主键的聚集索引【包含表单单号、申请人、申请时间】。在某个时间这张表出现了死锁的情况。经过分析,得到死锁现场的重演:由于在同一时间,两位审核人进入系统同时点击审核。由于不同的日期,共用同一个单号,所以审核人单词的审核操作会修改多条记录。尝试用explain关键字分析update的检索条件。发现type字段是all,也就是出现了索引失效了。

    解决方案:

    【1】:移除垃圾历史资料                                                                                      

    【2】:给单号字段添加非聚集索引。因为主键的聚集索引失效了,所以为了使单号索引生效,添加了非聚集索引。

    2、触发器中,由于字段类型转换引发的索引失效问题

    场景:由于使用了临时表,但是由于临时表与原始资料表该字段一个是char(10),一个是varchar(10),由于出现了类型转换,所以引发了索引失效。

    解决方案:

    【1】:直接将临时表的数据类型改为与资源表一致的就可以

  • 相关阅读:
    Button与Submit调用前台与后台代码的方法
    ASP.NET前台代码绑定后台变量方法总结
    点击后禁用提交按钮
    SilverLight3测试(1): Message: AG_E_NETWORK_ERROR
    SilverLight 问题解决
    XmlSerializers.dll.deploy 未成功
    命令模式泛型?问题?
    SilverLight 收藏(2009年3月27日)
    在Web安装工程中为虚拟目录指定不同的本地路径
    Silverlight 3 Sample Application: Slidentity
  • 原文地址:https://www.cnblogs.com/yibao/p/14517857.html
Copyright © 2020-2023  润新知