데이터 베이스 MySQL 튜토리얼 sql执行计划错误之cache buffers chain

sql执行计划错误之cache buffers chain

Jun 07, 2016 pm 05:17 PM
sql

都是这个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很简单,执行计划也很简单,我们先看下这个表上索引的信息:

    linux

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    뜨거운 기사 태그

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    Hibernate 프레임워크에서 HQL과 SQL의 차이점은 무엇입니까? Hibernate 프레임워크에서 HQL과 SQL의 차이점은 무엇입니까? Apr 17, 2024 pm 02:57 PM

    Hibernate 프레임워크에서 HQL과 SQL의 차이점은 무엇입니까?

    Oracle SQL의 나누기 연산 사용법 Oracle SQL의 나누기 연산 사용법 Mar 10, 2024 pm 03:06 PM

    Oracle SQL의 나누기 연산 사용법

    SQL의 ID 속성은 무엇을 의미합니까? SQL의 ID 속성은 무엇을 의미합니까? Feb 19, 2024 am 11:24 AM

    SQL의 ID 속성은 무엇을 의미합니까?

    Oracle과 DB2의 SQL 구문 비교 및 ​​차이점 Oracle과 DB2의 SQL 구문 비교 및 ​​차이점 Mar 11, 2024 pm 12:09 PM

    Oracle과 DB2의 SQL 구문 비교 및 ​​차이점

    MyBatis 동적 SQL 태그의 Set 태그 기능에 대한 자세한 설명 MyBatis 동적 SQL 태그의 Set 태그 기능에 대한 자세한 설명 Feb 26, 2024 pm 07:48 PM

    MyBatis 동적 SQL 태그의 Set 태그 기능에 대한 자세한 설명

    Java는 MySQL 드라이버 인터셉터를 어떻게 사용하여 SQL 시간이 많이 소요되는 계산을 구현합니까? Java는 MySQL 드라이버 인터셉터를 어떻게 사용하여 SQL 시간이 많이 소요되는 계산을 구현합니까? May 27, 2023 pm 01:10 PM

    Java는 MySQL 드라이버 인터셉터를 어떻게 사용하여 SQL 시간이 많이 소요되는 계산을 구현합니까?

    SpringBoot가 구성 파일의 SQL 계정 비밀번호를 암호화하는 방법 SpringBoot가 구성 파일의 SQL 계정 비밀번호를 암호화하는 방법 May 22, 2023 pm 08:50 PM

    SpringBoot가 구성 파일의 SQL 계정 비밀번호를 암호화하는 방법

    SQL에서 5120 오류를 해결하는 방법 SQL에서 5120 오류를 해결하는 방법 Mar 06, 2024 pm 04:33 PM

    SQL에서 5120 오류를 해결하는 방법

    See all articles