/*怎麼快速查詢鎖與鎖等待
資料庫的鎖是比較耗費資源的,特別是發生鎖等待的時候,我們必須找到發生等待的鎖,有可能的話,殺掉該程序。
這個語句將查詢到資料庫中所有的dml語句產生的鎖,還可以發現,任何dml語句其實產生了兩個鎖,乙個是表鎖,乙個是行鎖。
可以通過alter system kill session 『sid,serial#』來殺掉會話
*/select /*+ rule */ s.username,
decode(l.type,'tm','table lock','tx','row lock',null) lock_level,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
from v$session s,v$lock l,dba_objects o
where l.sid = s.sid
and l.id1 = o.object_id(+)
and s.username is not null
--如果發生了鎖等待,我們可能更想知道是誰鎖了表而引起誰的等待,以下的語句可以查詢到誰鎖了表,而誰在等待。
select /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_name,
o.owner,o.object_name,o.object_type,s.sid,s.serial#
from v$locked_object l,dba_objects o,v$session s
where l.object_id=o.object_id
and l.session_id=s.sid
order by o.object_id,xidusn desc
--以上查詢結果是乙個樹狀結構,如果有子節點,則表示有等待發生。如果想知道鎖用了哪個回滾段,還可以關聯到v$rollname,其中xidusn就是回滾段的usn
--[q] 如何有效的刪除乙個大表(extent數很多的表)
-- [a] 乙個有很多(100k)extent的表,如果只是簡單地用drop table的話,會很大量消耗cpu(oracle要對fet$、uet$資料字典進行操作),可能會用上幾天的時間,較好的方法是分多次刪除extent,以減輕這種消耗:
1. truncate table big-table reuse storage;
2. alter table big-table deallocate unused keep 2000m ( 原來大小的n-1/n);
3. alter table big-table deallocate unused keep 1500m ;
....
4. drop table big-table;
-----查詢什麼sql鎖表
select event, count(*) from v$session_wait group by event;
select sid, event
from v$session_wait
where event in ('enqueue', 'latch free', 'db file sequential read', 'library cache lock', 'db file scattered read', '
buffer busy waits');
select /*+ ordered */
--s.sid,
--s.serial#,
--s.last_call_et,
--s.username,
--p.spid,
sql.sql_text
--s.machine
from v$session s, v$process p, v$sqltext sql
where sql.address = s.sql_address and sql.hash_value = s.sql_hash_value and s.sid = &sid and s.paddr = p.addr and
s.status = 'active' and s.username is not null and s.username in ('develop', 'neva2', 'uptel2h', 'uptel2l', 'gj')
order by s.username, s.sid, s.serial#, sql.piece
select * from v$locked_object
Oracle資料鎖快速查殺
網上有很多這樣的文章,我希望的是迅速找到一張表的所有的行級鎖,並把它們一併處理掉。所以改進了一下 要是想用kill 9 sessionpid的方式就會用到檢視v process,但這樣查詢速度很慢。於是可以先建表 可以先建表 create table b session process nologg...
怎麼快速查詢頁面元素的繫結事件
怎麼查詢頁面元素的繫結事件 1 程式簡單清晰 直接複製元素的id,在引用的js裡查詢 2 程式複雜 這是我們主要 的角度,尤其在複雜的web系統中,頁面元素的事件可能沒有顯式的呼叫,事件繫結比較隱蔽,翻了半天沒有找到 思路 仔細想一下,既然點選後觸發了某個事件,說明二者肯定已經關聯到了一起,瀏覽器可...
問題疫苗怎麼查?快速查詢渠道看這裡
最近幾天大家談論和關注的最多的應該就是問題疫苗事件,尤其是家長們對給孩子注射疫苗也產生了極大的焦慮和恐慌,更擔心自己的孩子之前注射的疫苗是否有問題。能否查詢到孩子之前是否注射過問題疫苗,也是眾多家長非常關心的問題,源妹也收集整理了一些疫苗查詢方式和途徑,擔心的家長不妨通過這些方式查詢看看。問題疫苗查...