zoukankan      html  css  js  c++  java
  • 记两次线上出现的索引失效的问题

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

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

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

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

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

    解决方案:

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

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

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

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

    解决方案:

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

  • 相关阅读:
    Pagination 分页类
    FckEditorAPI未定义错误分析
    提取DataSet数据集中前N条记录
    JS操作JSON[转]
    JS运行textarea内的HTML代码 [转]
    使用Global.asax文件统计网站总访问量
    文章点击数简单实现周、月、年排行
    asp.net文件下载[转]
    三大策略保证论坛不受垃圾信息影响![转]
    图片以二进制形式写入数据库并显示
  • 原文地址:https://www.cnblogs.com/yibao/p/14517857.html
Copyright © 2011-2022 走看看