Heim Datenbank MySQL-Tutorial latch:librarycache等待(只存在于9i,10g)

latch:librarycache等待(只存在于9i,10g)

Jun 07, 2016 pm 03:22 PM
l latch 等待

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)
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die L-Serie von Li Auto begrüßt neues Mitglied: Li Auto L6, positioniert als mittelgroßer fünfsitziger SUV Die L-Serie von Li Auto begrüßt neues Mitglied: Li Auto L6, positioniert als mittelgroßer fünfsitziger SUV Jul 02, 2023 pm 11:57 PM

Laut Nachrichten vom 30. Juni haben die Modelle der L-Serie von Li Auto, darunter L7, L8 und L9, in ihren jeweiligen Preisklassen beachtliche Verkaufsergebnisse erzielt. Nach Verständnis des Herausgebers hofft Li Auto jedoch auf eine weitere Umsatzsteigerung und konzentriert sich auf die Leistung eines weiteren neuen Autos, des Li Li L6. Kürzlich soll ein Blogger ein getarntes Ideal L6-Auto auf einer Autobahnraststätte fotografiert haben. Den Fotos des Bloggers zufolge fährt das getarnte Auto, bei dem es sich vermutlich um den Lili L6 handelt, nicht normal, sondern ist auf einem Anhänger geparkt. Im Vergleich zum weißen Weilai-SUV daneben wirkt der Lideal L6 selbst als niedrigstes Modell der L-Serie recht groß. Es wird berichtet, dass der Lili L6 als mittelgroßer fünfsitziger SUV positioniert ist. Obwohl diese Fotos nicht viele Informationen über die Details des Aussehens liefern

PHP sendet E-Mails asynchron: Vermeiden Sie lange Wartezeiten auf den Versand von E-Mails. PHP sendet E-Mails asynchron: Vermeiden Sie lange Wartezeiten auf den Versand von E-Mails. Sep 19, 2023 am 09:10 AM

PHP sendet E-Mails asynchron: Vermeiden Sie lange Wartezeiten auf den Versand von E-Mails. Einleitung: In der Webentwicklung ist das Versenden von E-Mails eine der häufigsten Funktionen. Da das Senden von E-Mails jedoch eine Kommunikation mit dem Server erfordert, führt dies häufig dazu, dass Benutzer lange warten müssen, bis die E-Mail gesendet wird. Um dieses Problem zu lösen, können wir PHP verwenden, um E-Mails asynchron zu versenden und so das Benutzererlebnis zu optimieren. In diesem Artikel erfahren Sie anhand spezifischer Codebeispiele, wie Sie PHP implementieren, um E-Mails asynchron zu versenden und lange Wartezeiten zu vermeiden. 1. Das asynchrone Senden von E-Mails verstehen

Wird die Hauptfunktion der Go-Sprache warten? Erkunden und analysieren Wird die Hauptfunktion der Go-Sprache warten? Erkunden und analysieren Mar 09, 2024 pm 10:51 PM

Wird die Hauptfunktion der Go-Sprache warten? Exploration und Analyse In der Go-Sprache ist die Hauptfunktion der Einstiegspunkt des Programms und für den Start der Ausführung des Programms verantwortlich. Viele Anfänger sind verwirrt, ob die Hauptfunktion der Go-Sprache darauf wartet, dass andere Goroutinen im Programm die Ausführung abschließen. Dieser Artikel befasst sich mit diesem Problem und erläutert es anhand spezifischer Codebeispiele. Zunächst muss klar sein, dass die Hauptfunktion in der Go-Sprache nicht darauf wartet, dass andere Teile des Programms die Ausführung abschließen, wie die Hauptfunktion in einigen anderen Programmiersprachen. Die Hauptfunktion ist nur der Ausgangspunkt des Programms

Vertiefendes Verständnis von Warten und Benachrichtigen in Java: Analyse des Thread-Synchronisationsmechanismus Vertiefendes Verständnis von Warten und Benachrichtigen in Java: Analyse des Thread-Synchronisationsmechanismus Dec 20, 2023 am 08:44 AM

Thread-Synchronisation in Java: Analyse der Funktionsprinzipien von Warte- und Benachrichtigungsmethoden In der Java-Multithread-Programmierung ist die Synchronisation zwischen Threads ein sehr wichtiges Konzept. In der tatsächlichen Entwicklung müssen wir häufig die Ausführungssequenz und den Ressourcenzugriff zwischen mehreren Threads steuern. Um eine Thread-Synchronisation zu erreichen, stellt Java Warte- und Benachrichtigungsmethoden bereit. Die Wait- und Notify-Methoden sind zwei Methoden in der Object-Klasse. Sie werden mithilfe des Monitormechanismus in Java implementiert.

Machen Sie sich mit einigen praktischen Linux-Tipps vertraut Machen Sie sich mit einigen praktischen Linux-Tipps vertraut Mar 12, 2024 pm 01:49 PM

Linux ist ein leistungsstarkes Betriebssystem mit vielen nützlichen Befehlen und Tipps, die Ihnen helfen, es effizienter zu nutzen. 1. Überprüfen Sie den Prüfwert der Datei. Während des Kopier- oder Übertragungsvorgangs kann die Datei beschädigt oder geändert werden. In diesem Fall kann der Prüfwert zur Überprüfung verwendet werden. Normalerweise müssen wir bei unserer Arbeit einige Schnittstellenprogramme verwenden, die von anderen Teams bereitgestellt werden. Wenn die Ausführungsergebnisse dieser Programme nicht den Erwartungen entsprechen, vergleichen wir die MD5-Prüfwerte beider Parteien, um die Konsistenz der Daten zu bestätigen. Es gibt viele Möglichkeiten, den Prüfwert einer Datei zu generieren. Zu den häufig verwendeten gehören die MD5-Summenprüfung, die CRC-Prüfung, die Summenprüfung usw. Die Befehle lauten: md5sumfile_namecksumfile_namesum-Algorithmus-Parameterdatei

Übersetzen Sie in C++ Folgendes ins Chinesische: Zählen Sie die Anzahl der Zahlen zwischen L und R, die teilerfremd zu P sind Übersetzen Sie in C++ Folgendes ins Chinesische: Zählen Sie die Anzahl der Zahlen zwischen L und R, die teilerfremd zu P sind Aug 26, 2023 pm 09:33 PM

In der Welt der Computerprogrammierung kann es eine häufige Aufgabe sein, die Anzahl der Zahlen in einem bestimmten Bereich zu ermitteln, die teilerfremd zu einer bestimmten Zahl sind. Relative Primzahlen, auch relative Primzahlen genannt, sind Zahlen, die außer 1 keinen gemeinsamen Teiler haben. In diesem Artikel werden wir untersuchen, wie wir mithilfe der C++-Sprache die Anzahl der Zahlen ermitteln können, die zwischen den gegebenen ganzen Zahlen L und R teilerfremd zu einer bestimmten Zahl P sind. Syntax Wir werden zunächst die Syntax der Methode skizzieren, die wir in den folgenden Codebeispielen verwenden werden: intcountCoprimes(intL,intR,intP); 0, wird zum Speichern der Anzahl relativer Primzahlen verwendet. Iterieren Sie über jede Zahl num, beginnend von L bis R. für jeden

Soll ich ein Windows 10-System kaufen oder auf ein Windows 11-System warten? Soll ich ein Windows 10-System kaufen oder auf ein Windows 11-System warten? Jul 09, 2023 pm 11:21 PM

Sechs Jahre nach Windows 10 hat Microsoft mit Windows 11 ein neues System auf den Markt gebracht. Viele Nutzer freuen sich auf dieses neue System. Einige Benutzer wissen jedoch immer noch nicht, ob sie ein Win10-System kaufen oder auf ein Win11-System warten sollen. Vielleicht haben Sie die Antwort bereits im Kopf, nachdem Sie dies gelesen haben . 1. Startmenü: Einfache Symbole, keine Live-Kacheln Das Startmenü von Win11 ist zweifellos eine große Änderung im Vergleich zu den gekachelten Anwendungsverknüpfungen von Win10 (ab Win8). Das Startmenü befindet sich standardmäßig in der Mitte des Desktops Ihres PCs, ähnlich wie das Startmenü von Win10X auch funktioniert hätte, wenn es jemals gestartet worden wäre. in W

Warum ParseException(s, l, str(ve)) und wie man es löst Warum ParseException(s, l, str(ve)) und wie man es löst Feb 29, 2024 pm 08:22 PM

Der Grund für den Fehler liegt darin, dass in Python der Fehler „ParseException(s,l,str(ve))“ in pip normalerweise durch eine zu niedrige Pip-Version oder ein Netzwerkverbindungsproblem verursacht wird. Sie können versuchen, die Pip-Version zu aktualisieren oder die Netzwerkverbindung zu überprüfen. So lösen Sie diesen Fehler: Hier sind einige Möglichkeiten, diesen Fehler zu beheben: Pip aktualisieren: Verwenden Sie den Befehl „Python-mpipinstall --upgradepip“, um die Pip-Version zu aktualisieren. Überprüfen Sie die Netzwerkverbindung: Stellen Sie sicher, dass die Netzwerkverbindung stabil ist und auf pypi.org zugreifen kann ein Proxy: Wenn Ihr Netzwerk einen Proxy erfordert, legen Sie den Proxy bitte in der Befehlszeile fest, zum Beispiel: pipinstall --proxyHttp://pro

See all articles