latch:librarycache等待(只存在于9i,10g)
latch: library cache等待(只存在于9i,10g) SQL-ASCII-Hash_value-hash bucket,然后申请保护该bucket的library cache latch(3-67个latch保护成千上万个hash bucket),这个latch是为了保护会话在检索bucket对应的hash chain的过程中,hash chain结构不被改
latch: library cache等待(只存在于9i,10g) SQL->ASCII->Hash_value值->hash bucket,然后申请保护该bucket的library cache latch(3-67个latch保护成千上万个hash bucket),这个latch是为了保护会话在检索bucket对应的hash chain的过程中,hash chain结构不被改变。 在chain上会挂着一串父cursor头的指针,每检索到一个指针,就到所指向的内存区,去看这个父cursor是否符合(sql文本是否相同),chain发现相应父cursor后,再寻觅里面的子cursor,找到可重复利用的综合型计划等信息,就会释放latch,这个过程叫软解析。 假如没有找到可重复利用的cursor,就要hard parsing了。先释放library cache latch,获得shared pool latch锁存器,检索并分配可用的chunk,然后释放shared pool latch,这些chunk就算是进入library cache中了。然后查询优化器生成执行计划,并存到相应chunk上。再次获得library cache latch,然后将这些chunk挂到hash chain上。若在library cache latch获得发生争用,就须等待latch: library cache事件。然后SQL才开始执行,此时转入library cache pin+lock(null模式) select value from v$parameter where name='cpu_count'; --32个cpu select rownum,name,gets from v$latch_children where name like '%library%'; --37个library cache 子锁存器,一般认为子锁存器数量是比cpu_count大的最小质数值,可以被 _KGL_LATCH_COUNT 参数控制 原因: 1.hard parsing或soft parsing过多,硬解析时除了检索library cache的hash chain费时间,还得花时间额外分配chunk。就算是仅有软解析,也会发生争用,因为其还有语法检查语义检查、库高速缓冲区检索这些过程,在这些过程中也得先获得library cache latch。这个等待伴随shared pool latch等待就是硬解析过多(因为要分配chunk),没有后者就应该仅是软解释过多。
2.High Versions Count,子游标过多,v$sqlarea的version_count字段显示有多少个子游标,或者v$sql的child_number字段,从0开始算的。bucket->hash chain->检索到这个文本对应的cursor,还得检索这个父cursor下面的几个子cursor,例如不同用户发出的相同sql就会有一样的父cursor,此时获得library cache latch的时间会延长。 High version counts can easily cause high contention for library cache latches. A process parsing a SQL statement with many versions (children cursors) will need to scan through all these children while holding on to a library cache latch. This means that other processes needing the same latch will have to wait and can lead to significant database-wide performance degradation. 3.SGA区发生OS层面的page out,
解决: 1.要使用绑定变量减少硬解析,软解释最好也设法减少,例如应用上用缓存等。 2.session_cached_cursors参数默认为0,设为50以上比较好。设定了该值后Oracle将执行三次以上的SQL Cursor信息保存到PGA内,信息包括SQL文本与对于库高速缓存的指针值。用户一旦提交SQL,首先看PGA,存在的话直接跳到library cache的cursor那。所以这个参数是softer soft parse,软解析的软解析。因为这个参数针对会话,所以维持会话的连接性才能有效,例如配置中间件连接池。itpub的vage说,软软解析时,10.2.0.1中有,10.2.0.2--10.2.0.4没有,到10.2.0.5又有了。到11G又没了,搞不明白Oracle是咋想的。 3.HP_UX,AIX用LOCK_SGA参数设为true(默认false),SunOS用_USE_ISM参数设为true(默认true)。
后续: 11g,这个等待事件library cache: mutex X就是早期的latch: library cache等待。10g后很多latch用mutex代替。_kks_use_mutex_pin=false可以禁止mutex)

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











PHP는 이메일을 비동기식으로 보냅니다. 이메일이 전송될 때까지 오래 기다리지 마세요. 소개: 웹 개발에서 이메일 보내기는 일반적인 기능 중 하나입니다. 하지만 이메일을 보내려면 서버와의 통신이 필요하기 때문에 사용자가 이메일이 전송될 때까지 오랜 시간을 기다려야 하는 경우가 많습니다. 이 문제를 해결하기 위해 PHP를 사용하여 이메일을 비동기적으로 보내 사용자 경험을 최적화할 수 있습니다. 이 기사에서는 특정 코드 예제를 통해 비동기적으로 이메일을 보내고 오랜 대기 시간을 피하기 위해 PHP를 구현하는 방법을 소개합니다. 1. 비동기식 이메일 전송 이해

6월 30일 뉴스에 따르면 L7, L8, L9를 포함한 Li Auto의 L 시리즈 모델은 각 가격대에서 상당한 판매 실적을 달성했습니다. 그러나 편집자의 이해에 따르면 Li Auto는 판매를 더욱 늘리기를 희망하고 있으며 초점은 또 다른 신차인 Li Li L6의 성능에 맞춰져 있습니다. 최근 한 블로거가 고속도로 휴게소에서 위장된 Ideal L6 차량을 촬영한 것으로 알려졌습니다. 해당 블로거가 촬영한 사진에 따르면 릴리 L6로 의심되는 위장 차량은 정상적으로 주행하지 않고 트레일러 위에 주차되어 있는 것으로 나타났다. 옆에 있는 흰색 웨이라이 SUV와 비교하면 L 시리즈 중 가장 낮은 위치에 있는 모델임에도 리디알 L6가 꽤 커 보이는데요. 릴리 L6는 중형 5인승 SUV로 포지셔닝되는 것으로 알려졌다. 이 사진들은 외관 세부 사항에 대한 많은 정보를 제공하지 않지만

Go 언어의 주요 기능이 기다릴까요? 탐색 및 분석 Go 언어에서 main 함수는 프로그램의 진입점이며 프로그램 실행 시작을 담당합니다. 많은 초보자들은 Go 언어의 주요 기능이 프로그램의 다른 고루틴이 실행을 완료할 때까지 기다릴 것인지에 대해 혼란스러워합니다. 이 문서에서는 이 문제를 자세히 살펴보고 특정 코드 예제를 통해 설명합니다. 우선, Go 언어의 main 함수는 다른 프로그래밍 언어의 main 함수처럼 프로그램의 다른 부분이 실행을 완료할 때까지 기다리지 않는다는 점을 분명히 해야 합니다. main 함수는 프로그램의 시작점일 뿐입니다.

Java의 스레드 동기화: 대기 및 알림 메소드의 작동 원리 분석 Java 다중 스레드 프로그래밍에서 스레드 간의 동기화는 매우 중요한 개념입니다. 실제 개발에서는 여러 스레드 간의 실행 순서와 리소스 액세스를 제어해야 하는 경우가 많습니다. 스레드 동기화를 달성하기 위해 Java는 대기 및 알림 메소드를 제공합니다. wait 및 inform 메서드는 Object 클래스의 두 가지 메서드로 Java의 모니터 메커니즘을 사용하여 구현됩니다.

컴퓨터 프로그래밍의 세계에서는 주어진 범위에서 특정 숫자와 서로소인 숫자의 수를 찾는 것이 일반적인 작업이 될 수 있습니다. 상대적 소수(relative prime number)라고도 알려진 상대적 소수는 1 외에 공통인수가 없는 숫자입니다. 이번 글에서는 C++ 언어를 사용하여 주어진 정수 L과 R 사이에서 특정 숫자 P에 상대적으로 소수인 숫자의 개수를 찾는 방법을 살펴보겠습니다. 구문 먼저 다음 코드 예제에서 사용할 메서드의 구문을 설명합니다. intcountCoprimes(intL,intR,intP) 알고리즘 서로소 수의 개수를 계산하는 데 사용할 알고리즘은 다음과 같습니다. − 변수 count를 다음과 같이 초기화합니다. 0, 상대적으로 소수의 개수를 저장하는 데 사용됩니다. L부터 R까지 각 숫자 num을 반복합니다. 각각

Linux는 보다 효율적으로 사용하는 데 도움이 되는 유용한 명령과 팁이 많이 포함된 강력한 운영 체제입니다. 1. 파일 체크값을 확인하세요. 파일 복사나 전송 과정에서 파일이 손상되거나 수정될 수 있습니다. 이 경우 체크값을 확인용으로 활용하실 수 있습니다. 일반적으로 우리는 작업 시 다른 팀에서 제공하는 일부 인터페이스 프로그램을 사용해야 합니다. 이러한 프로그램의 실행 결과가 예상과 다를 때마다 양측의 md5 검사 값을 비교하여 데이터의 일관성을 확인합니다. 파일의 검사 값을 생성하는 방법에는 md5sum 검사, crc 검사, 합계 검사 등이 일반적으로 사용됩니다. 명령은 다음과 같습니다: md5sumfile_namecksumfile_namesum 알고리즘 매개변수 파일

오류가 발생하는 이유는 Python에서 pip의 "ParseException(s,l,str(ve))" 오류는 일반적으로 pip 버전이 너무 낮거나 네트워크 연결 문제로 인해 발생하기 때문입니다. pip 버전을 업데이트하거나 네트워크 연결을 확인해 보세요. 해결 방법 이 오류를 해결하는 몇 가지 방법은 다음과 같습니다. pip 업데이트: "Python-mpipinstall --upgradepip" 명령을 사용하여 pip 버전을 업데이트합니다. 네트워크 연결 확인: 네트워크 연결이 안정적이고 pypi.org에 액세스할 수 있는지 확인하세요. 프록시: 네트워크에 프록시가 필요한 경우 명령줄에서 프록시를 설정하십시오. 예: pipinstall --proxyHttp://pro

마이크로소프트는 윈도우 10 이후 6년 만에 새로운 시스템인 윈도우 11을 출시했다. 많은 사용자들이 이 새로운 시스템을 기대하고 있다. 그러나 일부 사용자는 여전히 win10 시스템을 구입할지, 아니면 win11 시스템을 기다릴지 고민하고 있습니다. 그런 다음 편집기를 따라 두 시스템의 차이점을 이해하십시오. 아마도 이 글을 읽고 나면 이미 답을 얻게 될 것입니다. . 1. 시작 메뉴: 단순한 아이콘, 라이브 타일 없음 Win11의 시작 메뉴는 의심할 여지 없이 Win10의 타일형 애플리케이션 바로가기(Win8부터 시작)에 비해 큰 변화입니다. 시작 메뉴는 기본적으로 PC 바탕화면 중앙에 위치합니다. 이는 Win10X의 시작 메뉴가 실행되었다면 제대로 작동했을 것과 거의 같은 방식입니다. W에서
