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)

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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. 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? 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

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.

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

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

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

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
