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ヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP は電子メールを非同期に送信します。電子メールの送信を長時間待つ必要がなくなります。はじめに: Web 開発では、電子メールの送信は一般的な機能の 1 つです。しかし、メールの送信にはサーバーとの通信が必要となるため、ユーザーはメールの送信を待つ間、長時間待たされてしまうことがよくあります。この問題を解決するには、PHP を使用して電子メールを非同期に送信し、ユーザー エクスペリエンスを最適化します。この記事では、具体的なコード例を通じてメールを非同期に送信し、長時間の待ち時間を回避するための PHP の実装方法を紹介します。 1. メールの非同期送信について理解する

6月30日のニュースによると、L7、L8、L9を含むLi AutoのLシリーズモデルは、それぞれの価格帯でかなりの販売実績を上げている。しかし、編集者の理解によれば、Li Auto はさらなる販売増加を望んでおり、その焦点は別の新車である Li Li L6 のパフォーマンスにあるという。最近、ブロガーが高速道路のサービスエリアで偽装されたアイデアル L6 車を撮影したとされています。ブロガーが撮影した写真によると、リリL6と思われる偽装車は正常に走行しておらず、トレーラーに駐車されている。隣の白い威来SUVと比べると、Lシリーズの中で一番下に位置するモデルとはいえ、Lideal L6はかなり大きく見えます。リリL6は中型5人乗りSUVとして位置づけられると報じられている。これらの写真では外観の詳細についてはあまり情報が得られませんが、

Go 言語の main 関数は待機しますか?調査と分析 Go 言語では、main 関数はプログラムのエントリ ポイントであり、プログラムの実行の開始を担当します。多くの初心者は、Go 言語の main 関数がプログラム内の他のゴルーチンの実行が完了するまで待機するかどうかについて混乱しています。この記事では、この問題を詳しく掘り下げ、具体的なコード例を通じて説明します。まず、Go 言語の main 関数は、他のプログラミング言語の main 関数とは異なり、プログラムの他の部分の実行が完了するのを待機しないことを明確にする必要があります。 main 関数はプログラムの開始点にすぎません。

Java のスレッド同期: wait メソッドと Notice メソッドの動作原理の分析 Java マルチスレッド プログラミングでは、スレッド間の同期は非常に重要な概念です。実際の開発では、複数のスレッド間の実行順序やリソース アクセスを制御する必要があることがよくあります。スレッドの同期を実現するために、Java には wait メソッドと notification メソッドが用意されています。 wait メソッドとnotify メソッドは Object クラスの 2 つのメソッドであり、Java の監視メカニズムを使用して実装されます。

Linux は、Linux をより効率的に使用するための便利なコマンドやヒントが数多く備わった強力なオペレーティング システムです。 1. ファイルチェック値を確認します ファイルのコピーまたは送信プロセス中に、ファイルが破損または変更されている可能性があります。この場合、チェック値を検証に使用できます。通常、私たちの作業では他のチームが提供するインターフェイス プログラムを使用する必要があります。これらのプログラムの実行結果が期待どおりにならない場合は、双方の md5 チェック値を比較してデータの一貫性を確認します。ファイルのチェック値を生成するにはさまざまな方法がありますが、一般的に使用される方法には、md5sum チェック、crc チェック、sum チェックなどが含まれます。コマンドは次のとおりです: md5sumfile_namecksumfile_namesum アルゴリズム パラメータ ファイル

コンピューター プログラミングの世界では、指定された範囲内で特定の数値と互いに素な数値の数を見つけるのは一般的なタスクです。相対素数とも呼ばれる相対素数は、1 以外に共通約数を持たない数です。この記事では、C++ 言語を使用して、指定された整数 L と R の間で特定の数値 P と互いに素な数値の数を見つける方法を検討します。構文 まず、次のコード例で使用するメソッドの構文の概要を説明します - intcountCoprimes(intL,intR,intP); アルゴリズム 互いに素数の数をカウントするために使用するアルゴリズムは次のとおりです。 0、相対的に素な数の数を格納するために使用されます。 L から R まで各数値 num を繰り返します。それぞれに

エラーの理由は、Python では、pip の「ParseException(s,l,str(ve))」エラーは、通常、pip のバージョンが低すぎるか、ネットワーク接続の問題によって発生するためです。 pip バージョンを更新するか、ネットワーク接続を確認してください。解決方法 このエラーを解決する方法は次のとおりです。 pip を更新します。コマンド「Python-mpipinstall --upgradepip」を使用して pip バージョンを更新します。 ネットワーク接続を確認します。ネットワーク接続が安定しており、pypi.org にアクセスできることを確認します。プロキシ: ネットワークにプロキシが必要な場合は、コマンド ラインでプロキシを設定してください。例: pipinstall --proxyHttp://pro

Microsoft は Windows 10 から 6 年後に新しいシステム Windows 11 を発売しました。多くのユーザーがこの新しいシステムを楽しみにしています。しかし、まだ悩んでいるユーザーもいます。win10 システムを購入するべきか、それとも win11 システムを待つべきかわかりません。その後、エディターに従って両者の違いを理解してください。おそらく、これを読んだ後はすでに答えが頭の中にあるでしょう。 。 1. スタート メニュー: シンプルなアイコン、ライブ タイルなし Win11 のスタート メニューは、Win10 のタイル アプリケーション ショートカット (Win8 以降) と比較すると、間違いなく大きな変更です。 [スタート] メニューは、デフォルトで PC のデスクトップの中央に配置されます。これは、Win10X の [スタート] メニューが起動した場合に問題なく機能するのとほぼ同じです。 Wで
