在對指定表做append操作,其他再做truncate時候,會產生鎖表,如下驗證步驟,
南宮網站建設公司創新互聯公司,南宮網站設計制作,有大型網站制作公司豐富經驗。已為南宮1000多家提供企業網站建設服務。企業網站搭建\外貿網站制作要多少錢,請找那個售后服務好的南宮做網站的公司定做!
1、創建測試表,
create table test_lock(id number, value varchar2(200));
2、執行append語句;并且不做提交,insert /*+append*/ into test_lock values(1,1);
3、再次執行清表語句,truncate table test_lock;報鎖表錯誤,
4、查看鎖表語句,發現被鎖表,
select b.object_name, t.*
from v$locked_object t, user_objects b
where t.object_id = b.object_id
1.創建測試表,如下圖。
createtabletest_lock(idnumber,valuevarchar2(200));
2.執行append語句;并且不做提交,insert/*+append*/intotest_lockvalues(1,1)如下圖。
3.再次執行清表語句,truncatetabletest_lock;報鎖表錯誤,如下圖。
4.查看鎖表語句,發現被鎖表
selectb.object_name,t.*
fromv$locked_objectt,user_objectsb
wheret.object_id=b.object_id
注意事項:
簡化數據:可以將復雜的查詢創建為其他人可以使用的視圖,而不必了解復雜的業務或邏輯關系。這簡化并掩蓋了視圖用戶數據的復雜性。
表結構設計的補充:在設計的系統才剛剛開始,大部分的程序直接訪問數據表結構,但是隨著業務的變化,系統更新,等等,引起了一些表結構不適用,這次修改系統的表結構太大,開發成本較高的影響。
這個時候可以創建一個視圖來補充表結構設計,降低開發成本。程序可以通過查詢視圖直接獲得它想要的數據。
添加安全性:視圖可以向用戶顯示表中的指定字段,而不是向用戶顯示表中的所有字段。在實際開發中,視圖通常作為提供數據的一種方式提供,并將只讀權限提供給第三方以供查詢使用。
1. 先通過top命令查看產用資源較多的spid號
2.查詢當前耗時的會話ID,用戶名,sqlID等:
select sid,serial#,machine,username,program,sql_hash_value,sql_id,
? to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session
where paddr in (select addr from v$process where spid in ('5648612','256523'));
3. 如果上一步sql_id或者 hash_value不為空,則可用v$sqlarea查出當前正在使用的sql
select sql_text
from v$sqltext_with_newlines
where hash_value = hash_value
order by piece;
也可直接使用:
select a.*,b.SQL_TEXT from (
select sid,serial#,machine,username,program,sql_hash_value,sql_id,
? to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session
where paddr in (select addr from v$process where spid in ('23226'))
) a,v$sql b
where a.sql_id? = b.SQL_ID(+)
4.kill占用大資源的session
Alter system kill session 'SID,SERIAL#'
解鎖:
1.查詢哪些對象被鎖:
select object_name,machine,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;
2.下面的語句用來殺死一個進程:
alter system kill session '524,1095'; (其中24,111分別是上面查詢出的sid,serial#)
3.再一次查詢目前鎖定的對象,若發現以上方法不能解除鎖定的表,則用以下方法:
3.1 執行下面的語句獲得進程(線程)號:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=524 (524是上面的sid)
當前標題:oracle如何查看瑣表 oracle怎么看所有的表
網頁網址:http://www.yijiale78.com/article44/hhsdee.html
成都網站建設公司_創新互聯,為您提供電子商務、做網站、、營銷型網站建設、關鍵詞優化、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯