{"id":393,"date":"2020-12-15T13:21:50","date_gmt":"2020-12-15T03:21:50","guid":{"rendered":"http:\/\/www.mrmarkyoung.com\/oracle\/?p=393"},"modified":"2023-07-21T14:59:47","modified_gmt":"2023-07-21T04:59:47","slug":"database-locking","status":"publish","type":"post","link":"http:\/\/www.mrmarkyoung.com\/oracle\/2020\/12\/15\/database-locking\/","title":{"rendered":"Database Locking"},"content":{"rendered":"\n<p><strong>How to identify lockers<\/strong><\/p>\n\n\n\n<p>This article will explain about locks on rows and on objects in ORACLE.<\/p>\n\n\n\n<p>Locks on rows can cause performance problems or even impede a transaction from finishing, when there are processes running for long time we need to validate that they are not waiting on a row(s).<\/p>\n\n\n\n<p>When there is a lock on a row there is also a lock on the dependent objects, if we want to perform a DDL on a locked object we will get an ORA-00054 error.<\/p>\n\n\n\n<p>Scenario 1:<\/p>\n\n\n\n<p>Terminal A is locking a row and Terminal B is waiting on it:<\/p>\n\n\n\n<p><strong>TERMINAL A<br><\/strong><br>&nbsp;&nbsp;&nbsp; SQL&gt; update map1 set col2=&#8217;MYLOCK&#8217; where col1=300;<br>&nbsp;&nbsp;&nbsp; 1 row updated.<br><br>&nbsp;&nbsp;&nbsp; SQL&gt;<br>&nbsp;&nbsp;&nbsp; (..no commit here..)<\/p>\n\n\n\n<p><strong>TERMINAL B<br><\/strong><br>&nbsp;&nbsp;&nbsp; SQL&gt; update map1 set col2=&#8217;NEWVAL2&#8242; where col1=300;<br>&nbsp;&nbsp;&nbsp; (..waiting..)<\/p>\n\n\n\n<p>Now, lets create a session as a DBA User to monitor the system, this query will tell the locking and waiting SIDs.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; SELECT vh.sid locking_sid,<br>&nbsp;&nbsp;&nbsp; &nbsp;vs.status status,<br>&nbsp;&nbsp;&nbsp; &nbsp;vs.program program_holding,<br>&nbsp;&nbsp;&nbsp; &nbsp;vw.sid waiter_sid,<br>&nbsp;&nbsp;&nbsp; &nbsp;vsw.program program_waiting<br>&nbsp;&nbsp;&nbsp; FROM v$lock vh,<br>&nbsp;&nbsp;&nbsp; &nbsp;v$lock vw,<br>&nbsp;&nbsp;&nbsp; &nbsp;v$session vs,<br>&nbsp;&nbsp;&nbsp; &nbsp;v$session vsw<br>&nbsp;&nbsp;&nbsp; WHERE&nbsp;&nbsp;&nbsp;&nbsp; (vh.id1, vh.id2) IN (SELECT id1, id2<br>&nbsp;&nbsp;&nbsp; &nbsp;FROM v$lock<br>&nbsp;&nbsp;&nbsp; &nbsp;WHERE request = 0<br>&nbsp;&nbsp;&nbsp; &nbsp;INTERSECT<br>&nbsp;&nbsp;&nbsp; &nbsp;SELECT id1, id2<br>&nbsp;&nbsp;&nbsp; &nbsp;FROM v$lock<br>&nbsp;&nbsp;&nbsp; &nbsp;WHERE lmode = 0)<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.id1 = vw.id1<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.id2 = vw.id2<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.request = 0<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vw.lmode = 0<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.sid = vs.sid<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vw.sid = vsw.sid;<\/p>\n\n\n\n<p>LOCKING_SID STATUS&nbsp;&nbsp; PROGRAM_HOLDING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WAITER_SID PROGRAM_WAITING<br>&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br>&nbsp;144&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACTIVE&nbsp;&nbsp; sqlplus@rh4_node1.fadeserver.n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131 sqlplus@rh4_node1.fadeserver.n<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; et (TNS V1-V3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; et (TNS V1-V3)<\/p>\n\n\n\n<p>Here is an expanded version of the same query, it also includes jobs information.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; SELECT vs.username,<br>&nbsp;&nbsp;&nbsp; &nbsp;vs.osuser,<br>&nbsp;&nbsp;&nbsp; &nbsp;vh.sid locking_sid,<br>&nbsp;&nbsp;&nbsp; &nbsp;vs.status status,<br>&nbsp;&nbsp;&nbsp; &nbsp;vs.module module,<br>&nbsp;&nbsp;&nbsp; &nbsp;vs.program program_holding,<br>&nbsp;&nbsp;&nbsp; &nbsp;jrh.job_name,<br>&nbsp;&nbsp;&nbsp; &nbsp;vsw.username,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vsw.osuser,<br>&nbsp;&nbsp;&nbsp; &nbsp;vw.sid waiter_sid,<br>&nbsp;&nbsp;&nbsp; &nbsp;vsw.program program_waiting,<br>&nbsp;&nbsp;&nbsp; &nbsp;jrw.job_name,<br>&nbsp;&nbsp;&nbsp; &nbsp;&#8216;alter system kill session &#8216; || &#8221;&#8221;|| vh.sid || &#8216;,&#8217; || vs.serial# || &#8221;&#8217;;&#8217;&nbsp; &#8220;Kill_Command&#8221;<br>&nbsp;&nbsp;&nbsp; FROM v$lock vh,<br>&nbsp;&nbsp;&nbsp; &nbsp;v$lock vw,<br>&nbsp;&nbsp;&nbsp; &nbsp;v$session vs,<br>&nbsp;&nbsp;&nbsp; &nbsp;v$session vsw,<br>&nbsp;&nbsp;&nbsp; &nbsp;dba_scheduler_running_jobs jrh,<br>&nbsp;&nbsp;&nbsp; &nbsp;dba_scheduler_running_jobs jrw<br>&nbsp;&nbsp;&nbsp; WHERE&nbsp;&nbsp;&nbsp;&nbsp; (vh.id1, vh.id2) IN (SELECT id1, id2<br>&nbsp;&nbsp;&nbsp; &nbsp;FROM v$lock<br>&nbsp;&nbsp;&nbsp; &nbsp;WHERE request = 0<br>&nbsp;&nbsp;&nbsp; &nbsp;INTERSECT<br>&nbsp;&nbsp;&nbsp; &nbsp;SELECT id1, id2<br>&nbsp;&nbsp;&nbsp; &nbsp;FROM v$lock<br>&nbsp;&nbsp;&nbsp; &nbsp;WHERE lmode = 0)<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.id1 = vw.id1<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.id2 = vw.id2<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.request = 0<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vw.lmode = 0<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.sid = vs.sid<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vw.sid = vsw.sid<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vh.sid = jrh.session_id(+)<br>&nbsp;&nbsp;&nbsp; &nbsp;AND vw.sid = jrw.session_id(+);<\/p>\n\n\n\n<p>USERNAME OSUSER&nbsp; LOCKING_SID STATUS&nbsp;&nbsp; MODULE&nbsp; PROGRAM_HO JOB_N USERNAME OSUSER&nbsp; WAITER_SID PROGRAM_WA JOB_N Kill_<br>&#8212;&#8212;&#8211; &#8212;&#8212;- &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8211; &#8212;&#8212;&#8211; &#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8211; &#8212;&#8211;<br>CACOSTA&nbsp; oracle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 144 ACTIVE&nbsp;&nbsp; SQL*Plu sqlplus@rh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CACOSTA&nbsp; oracle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131 sqlplus@rh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alter<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4_node1.fa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4_node1.fa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; syst<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deserver.n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deserver.n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; em ki<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; et (TNS V1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; et (TNS V1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ll se<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -V3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -V3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ssion<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;144<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,3897<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&#8242;;<\/p>\n\n\n\n<p>We can see that the user CACOSTA, sid 144 is locking the session 131.<\/p>\n\n\n\n<p>Scenario 2:<br>We are performing a DDL (alter somehow the object) and we get an ORA-00054 error.<\/p>\n\n\n\n<p>I have canceled the waiting session in the example above and now I\u2019m creating an index on the table:<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; SQL&gt; create index ind2 on map1(col2);<br>&nbsp;&nbsp;&nbsp; create index ind2 on map1(col2)<br>&nbsp;&nbsp;&nbsp; &nbsp;*<br>&nbsp;&nbsp;&nbsp; ERROR at line 1:<br>&nbsp;&nbsp;&nbsp; ORA-00054: resource busy and acquire with NOWAIT specified<\/p>\n\n\n\n<p>If I re-run the query fromt he previous scenario it won\u2019t return any rows, because there are no waiting sessions (I canceled the waiting update).<\/p>\n\n\n\n<p>First we need to find out the object ID:<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; SQL&gt; select object_id from dba_objects<br>&nbsp;&nbsp;&nbsp; &nbsp;2&nbsp; where owner=&#8217;CACOSTA&#8217;<br>&nbsp;&nbsp;&nbsp; &nbsp;3&nbsp; and object_name=&#8217;MAP1&#8242;;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;OBJECT_ID<br>&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;-<br>&nbsp;&nbsp;&nbsp; &nbsp;52255<\/p>\n\n\n\n<p>Now lets see who is blocking the object 52255<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; SELECT c.owner,<br>&nbsp;&nbsp;&nbsp; &nbsp;c.object_name,<br>&nbsp;&nbsp;&nbsp; &nbsp;c.object_type,<br>&nbsp;&nbsp;&nbsp; &nbsp;b.sid,<br>&nbsp;&nbsp;&nbsp; &nbsp;b.serial#,<br>&nbsp;&nbsp;&nbsp; &nbsp;b.status,<br>&nbsp;&nbsp;&nbsp; &nbsp;b.osuser,<br>&nbsp;&nbsp;&nbsp; &nbsp;b.machine<br>&nbsp;&nbsp;&nbsp; FROM v$locked_object a, v$session b, dba_objects c<br>&nbsp;&nbsp;&nbsp; WHERE b.sid = a.session_id AND a.object_id = c.object_id<br>&nbsp;&nbsp;&nbsp; and a.object_id=52255;<\/p>\n\n\n\n<p>OWNER&nbsp;&nbsp;&nbsp; OBJECT_NAME&nbsp;&nbsp; OBJECT_TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SID&nbsp;&nbsp;&nbsp; SERIAL# STATUS&nbsp;&nbsp; OSUSER&nbsp; MACHINE<br>&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8211; &#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;<br>CACOSTA&nbsp; MAP1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 144&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 38973 ACTIVE<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to identify lockers This article will explain about locks on rows and on objects in ORACLE. Locks on rows can cause performance problems or even impede a transaction from finishing, when there are processes running for long time we need to validate that they are not waiting on a row(s). When there is a &#8230; <a title=\"Database Locking\" class=\"read-more\" href=\"http:\/\/www.mrmarkyoung.com\/oracle\/2020\/12\/15\/database-locking\/\" aria-label=\"Read more about Database Locking\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-393","post","type-post","status-publish","format-standard","hentry","category-oracle-database"],"_links":{"self":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/comments?post=393"}],"version-history":[{"count":1,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/393\/revisions"}],"predecessor-version":[{"id":394,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/393\/revisions\/394"}],"wp:attachment":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/media?parent=393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/categories?post=393"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/tags?post=393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}