最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

sql执行计划错误之cachebufferschain

来源:动视网 责编:小采 时间:2020-11-09 11:20:27
文档

sql执行计划错误之cachebufferschain

sql执行计划错误之cachebufferschain:都是这个order by desc使CBO倾向于走INDEX FULL SCAN DESCENDING(如果你有相关的知识,应该知道,index_fs会读取所有的索引块,当 分享个小案例: 今天某个库出现了cache buffers chain,最近应用没啥变更,怎么会突然出现呢,当然latch:cach
推荐度:
导读sql执行计划错误之cachebufferschain:都是这个order by desc使CBO倾向于走INDEX FULL SCAN DESCENDING(如果你有相关的知识,应该知道,index_fs会读取所有的索引块,当 分享个小案例: 今天某个库出现了cache buffers chain,最近应用没啥变更,怎么会突然出现呢,当然latch:cach


都是这个order by desc使CBO倾向于走INDEX FULL SCAN DESCENDING(如果你有相关的知识,应该知道,index_fs会读取所有的索引块,当

分享个小案例:

今天某个库出现了cache buffers chain,最近应用没啥变更,怎么会突然出现呢,当然latch:cache buffers chain的作用是db cache中Find data很重要的latch,不管逻辑读,物理读(也要经历逻辑读),如果link或者unlink一个buffer到不同的Hash Bucket,再或者pin,unpin一个buffer,都要获得相关bucket上相关的cache buffers chain latch。所以,,关联到sql上,正如我们通常说的,调sql的一个目标就是减少资源的消耗,包括降低逻辑读,如果某个sql的读的块很多,那么和其它在访问相同数据的session就会争夺cache buffers chain latch(因为决定buffer被连接到那个bucket里面是由block的信息决定的,一个cache buffers chain latch会保护多个bucket,如果很多访问一个bucket里面的buffer,此时就会导致次latch的争用,也就是我们说的热块)所以,应用最近没啥变更,可以肯定是某些sql走错了执行计划。

我们收集统计信息是按照segment_size大于150M,并且每天的变化量超过20%的对象才会收集统计信息。所以对于有些对象没达到这个

收集的条件,统计信息可能是很久以前的或者是缺失,数据变化较大的时候,可能导致执行计划错误。

查看下当时ASH信息:

  • 很明显,sql_id:0a3zj3m5h72rb嫌疑比较大,看看执行计划:

    当前的执行计划: 【Linux公社 】

    当然这个sql很简单,执行计划也很简单,我们先看下这个表上索引的信息:

    文档

    sql执行计划错误之cachebufferschain

    sql执行计划错误之cachebufferschain:都是这个order by desc使CBO倾向于走INDEX FULL SCAN DESCENDING(如果你有相关的知识,应该知道,index_fs会读取所有的索引块,当 分享个小案例: 今天某个库出现了cache buffers chain,最近应用没啥变更,怎么会突然出现呢,当然latch:cach
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top