readbyothersession等待事件。
今天是2014-01-06,从今天开始,打算春节之前每天学习一个等待事件,今天就记录一下read by other session这个等待事件笔记。 什么是read by other session? This wait event occurs when we are trying to access a buffer in the buffer cache but we fin
今天是2014-01-06,从今天开始,打算春节之前每天学习一个等待事件,今天就记录一下read by other session这个等待事件笔记。
什么是read by other session?
This wait event occurs when we are trying to access a buffer in the buffer cache but we find that the buffer is currently being read from disk by another user so we need to wait for that to complete before we can access it. In previous versions, this wait was classified under the "buffer busy waits" event. However, in Oracle 10.1 and higher, the wait time is now broken out into the "read by other session" wait event.
Excessive waits for this event are typically due to several processes repeatedly reading the same blocks, e.g. many sessions scanning the same index or performing full table scans on the same table. Tuning this issue is a matter of finding and eliminating this contention.
参考文档:文档 ID 732891.1
官方介绍:
read by other session
This event occurs when a session requests a buffer that is currently being read into the buffer cache by another session. Prior to release 10.1, waits for this event were grouped with the other reasons for waiting for buffers under the 'buffer busy wait' event
Wait Time: Time waited for the buffer to be read by the other session (in microseconds)
Parameter Description
file# See "file#"
block# See "block#"
class# See "class"
注意有p1,p2,p3,。
当出现该问题如何解决?
一般出现该问题是由于sql导致的,或者是由于磁盘设备可能导致。
当出现该问题的时候,首先需要定位sql。
方法一:通过ash获得细粒度的报告,查看top sql statement 获得sql。
方法二:通过sql语句直接获得:
1、当前正在发生的问题:
select sql_fulltext from v$sql a,v$session b where a.sql_id=b.sql_id and b.event='read by other session';
2、历史曾经发生的
select a.sql_id,sql_fulltext from v$sql a,dba_hist_active_sess_history b where a.sql_id=b.sql_id and b.event='read by other session';
往往read by other session伴随着db file sequential read事件的出现。
另外可以查看涉及对象信息,此处就是p1,p2,p3
SELECT p1 "file#", p2 "block#", p3 "class#"
FROM v$session_wait WHERE event = 'read by other session';
通过p1,p2,p3获得热点对象:
SELECT relative_fno, owner, segment_name, segment_type FROM dba_extents
WHERE file_id = &file
AND &block BETWEEN block_id AND block_id + blocks - 1;
另外,也可以 直接查看热点块的信息,如查看热点块导致的sql语句:
select sql_text
from v$sqltext a,
(select distinct a.owner, a.segment_name, a.segment_type
from dba_extents a,
(select dbarfil, dbablk
from (select dbarfil, dbablk from x$bh order by tch desc)
where rownum
where a.RELATIVE_FNO = b.dbarfil
and a.BLOCK_ID
and a.block_id + a.blocks > b.dbablk) b
where a.sql_text like '%' || b.segment_name || '%'
and b.segment_type = 'TABLE'
order by a.hash_value, a.address, a.piece;
查看热点块对象:
<code class="sql keyword">SELECT E.OWNER, E.SEGMENT_NAME, E.SEGMENT_TYPE<br>
FROM DBA_EXTENTS E,<br>
(SELECT *<br>
FROM (SELECT ADDR, TS#, FILE#, DBARFIL, DBABLK, TCH<br>
FROM X$BH<br>
ORDER BY TCH DESC)<br>
WHERE ROWNUM
WHERE E.RELATIVE_FNO = B.DBARFIL<br>
AND E.BLOCK_ID
AND E.BLOCK_ID + E.BLOCKS > B.DBABLK; <code class="sql keyword">找到sql之后需要做的就是查看执行计划,判断问题所在,并进行优化。 <code class="sql keyword">1、对于在shared pool存在的cursor可以通过如下命令查看执行计划 <code class="sql keyword">select * from table(dbms_xplan.display_cursor('sql_id',null,'allstats')); <code class="sql keyword">2、对于历史可以通过查看awr信息获得: <code class="sql keyword">select * from table(dbms_xplan.display_awr('sql_id')); <code class="sql keyword">另外对于设备引起的需要查看磁盘读写信息,可以 通过vmstat 2 200进行判断。
<code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><strong>Reducing Number of Waits:</strong>
<code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword"><code class="sql keyword">If you are seeing long delays taken to service this wait event then check the amount of I/O being performed on the device identified by the P1 argument of this wait event.<br>
The device and / or the controller may be overloaded. If this is the case then take the standard steps of spreading the file across further devices etc. Check that the real problem isn't the amount of time that the operating system is taking to service the system call. Find out which file numbers are causing the highest average waits and then determine which filesystem contains the file Determine why the filesystems are performing poorly. Some common causes are:<br>
"hot filesystems" - too many active files on the same filesystem exhausting the I/O bandwidth hardware problem In Parallel Execution (PX) is being used, determine if the I/O subsystem is saturated by having too many slaves in use. 参考文档:<strong>文档 ID 1477229.1</strong> ——————————————————————————————————————————————————————————————————————————————————————————————————Rhys——————————————

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

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

Die Möglichkeit zur Aktualisierung von Bybit -Börsen variiert je nach Plattform und Gerät: Mobil: Überprüfen Sie nach Updates und installieren Sie im App Store. Desktop -Client: Überprüfen Sie die Updates im Hilfemenü und installieren Sie automatisch. Webseite: Sie müssen auf die offizielle Website zugreifen, um Updates zu erhalten. Wenn der Austausch nicht aktualisiert wird, kann dies zu Sicherheitslücken, funktionalen Einschränkungen, Kompatibilitätsproblemen und reduzierter Transaktionseffizienz führen.
![Ereignis-ID 4660: Objekt gelöscht [Fix]](https://img.php.cn/upload/article/000/887/227/168834320512143.png?x-oss-process=image/resize,m_fill,h_207,w_330)
Einige unserer Leser sind auf das Ereignis ID4660 gestoßen. Sie sind sich oft nicht sicher, was sie tun sollen, deshalb erklären wir es in diesem Leitfaden. Die Ereignis-ID 4660 wird normalerweise protokolliert, wenn ein Objekt gelöscht wird. Daher werden wir auch einige praktische Möglichkeiten zur Behebung des Problems auf Ihrem Computer untersuchen. Was ist Ereignis-ID4660? Die Ereignis-ID 4660 bezieht sich auf Objekte in Active Directory und wird durch einen der folgenden Faktoren ausgelöst: Objektlöschung – Ein Sicherheitsereignis mit der Ereignis-ID 4660 wird protokolliert, wenn ein Objekt aus Active Directory gelöscht wird. Manuelle Änderungen – Die Ereignis-ID 4660 kann generiert werden, wenn ein Benutzer oder Administrator die Berechtigungen eines Objekts manuell ändert. Dies kann passieren, wenn Sie Berechtigungseinstellungen ändern, Zugriffsebenen ändern oder Personen oder Gruppen hinzufügen oder entfernen

Auf iPhones mit iOS 16 oder höher können Sie bevorstehende Kalenderereignisse direkt auf dem Sperrbildschirm anzeigen. Lesen Sie weiter, um herauszufinden, wie es geht. Aufgrund von Komplikationen auf dem Zifferblatt sind viele Apple Watch-Benutzer daran gewöhnt, einen Blick auf ihr Handgelenk werfen zu können, um das nächste bevorstehende Kalenderereignis zu sehen. Mit der Einführung von iOS 16 und Sperrbildschirm-Widgets können Sie dieselben Kalenderereignisinformationen direkt auf Ihrem iPhone anzeigen, ohne das Gerät überhaupt entsperren zu müssen. Das Widget „Kalender-Sperrbildschirm“ gibt es in zwei Varianten, sodass Sie die Zeit des nächsten bevorstehenden Ereignisses verfolgen oder ein größeres Widget verwenden können, das den Namen des Ereignisses und seine Zeit anzeigt. Um mit dem Hinzufügen von Widgets zu beginnen, entsperren Sie Ihr iPhone mit Face ID oder Touch ID und halten Sie es gedrückt

Wenn dem Eingabefeld ein Wert hinzugefügt wird, tritt das oninput-Ereignis auf. Sie können versuchen, den folgenden Code auszuführen, um zu verstehen, wie Oninput-Ereignisse in JavaScript implementiert werden – Beispiel<!DOCTYPEhtml><html> <body> <p>Writebelow:</p> <inputtype="text"

Wie implementiert man Kalenderfunktionen und Ereigniserinnerungen in PHP-Projekten? Kalenderfunktionen und Terminerinnerungen gehören zu den häufigsten Anforderungen bei der Entwicklung von Webanwendungen. Ob persönliche Terminverwaltung, Teamzusammenarbeit oder Online-Veranstaltungsplanung – die Kalenderfunktion ermöglicht eine bequeme Zeitverwaltung und Transaktionsplanung. Die Implementierung von Kalenderfunktionen und Ereigniserinnerungen in PHP-Projekten kann durch die folgenden Schritte abgeschlossen werden. Datenbankdesign Zunächst müssen Sie eine Datenbanktabelle entwerfen, um Informationen zu Kalenderereignissen zu speichern. Ein einfaches Design könnte die folgenden Felder enthalten: id: eindeutig für das Ereignis

jQuery ist eine beliebte JavaScript-Bibliothek, die zur Vereinfachung der DOM-Manipulation, Ereignisbehandlung, Animationseffekte usw. verwendet werden kann. Bei der Webentwicklung stoßen wir häufig auf Situationen, in denen wir die Ereignisbindung für ausgewählte Elemente ändern müssen. In diesem Artikel wird erläutert, wie Sie mit jQuery ausgewählte Elementänderungsereignisse binden, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir ein Dropdown-Menü mit Optionen erstellen, die Beschriftungen verwenden:

Vue.js ist ein leichtes JavaScript-Framework, das einfach zu verwenden, effizient und flexibel ist. Es ist derzeit eines der beliebtesten Front-End-Frameworks. In Vue.js sind Eingabefeld-Bindungsereignisse eine sehr häufige Anforderung. In diesem Artikel werden die Eingabefeld-Bindungsereignisse im Vue-Dokument ausführlich vorgestellt. 1. Grundkonzepte In Vue.js bezieht sich das Eingabefeld-Bindungsereignis auf die Bindung des Werts des Eingabefelds an das Datenobjekt der Vue-Instanz, wodurch eine bidirektionale Bindung von Eingabe und Antwort erreicht wird. In Vue.j
