日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle表是动态表怎么算排名,Oracle学习动态性能表

發布時間:2023/12/3 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle表是动态表怎么算排名,Oracle学习动态性能表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

按照OracleDocument中的描述,v$sysstat存儲自數據庫實例運行那刻起就開始累計全實例(instance-wide)的資源使用情況。 類似于v$s

Oracle 學習動態性能表 v$locked_object

本視圖列出系統上的每個事務處理所獲得的所有鎖。

V$LOCKED_OBJECT中的列說明:

XIDUSN:回滾段號

XIDSLOT:槽號

XIDSQN:序列號

OBJECT_ID:被鎖對象ID

SESSION_ID:持有鎖的sessionID

ORACLE_USERNAME:持有鎖的Oracle 用戶名

OS_USER_NAME:持有鎖的操作系統 用戶名

PROCESS:操作系統進程號

LOCKED_MODE:鎖模式,值同上表1

示例:1.以DBA角色, 查看當前數據庫里鎖的情況可以用如下SQL語句:

select object_id,session_id,locked_mode from v$locked_object;

select t2.username, t2.sid, t2.serial#, t2.logon_time

from v$locked_object t1, v$session t2

where t1.session_id = t2.sid order by t2.logon_time;

如果有長期出現的一列,可能是沒有釋放的鎖。我們可以用下面SQL語句殺掉長期沒有釋放非正常的鎖:

alter system kill session 'sid,serial#';

Oracle 學習動態性能表 v$locked

V$LOCK這個視圖列出Oracle 服務器當前擁有的鎖以及未完成的鎖或栓鎖請求。如果你覺著session在等待等待事件隊列那你應該檢查本視圖。如果你發現session在等待一個鎖,那么按如下先后順序:

使用V$LOCK找出session持有的鎖。

使用V$SESSION找出持有鎖或等待鎖的session執行的sql語句。

使用V$SESSION_WAIT找出什么原因導致session持有鎖堵塞。

使用V$SESSION獲取關于持有鎖的程序和用戶的更多信息。

V$LOCK中的常用列

SID:表示持有鎖的會話信息。

TYPE:表示鎖的類型。值包括TM和TX等。

LMODE:表示會話等待的鎖模式的信息。用數字0-6表示,和表1相對應。

REQUEST:表示session請求的鎖模式的信息。

ID1,ID2:表示鎖的對象標識。

公共鎖類型

在Oracle數據庫中,DML鎖主要包括TM鎖和TX鎖,其中TM鎖稱為表級鎖,TX鎖稱為事務鎖或行級鎖。

當Oracle執行DML語句時,系統自動在所要操作的表上申請TM類型的鎖。當TM鎖獲得后,系統再自動申請TX類型的鎖,并將實際鎖定的數據行的鎖標志位進行置位。這樣在事務加鎖前檢查TX鎖相容性時就不用再逐行檢查鎖標志,而只需檢查TM鎖模式的相容性即可,大大提高了系統的效率。TM鎖包括了SS、SX、S、X等多種模式,在數據庫中用0-6來表示。不同的SQL操作產生不同類型的TM鎖,如下表1。

TX:行級鎖,事務鎖

在改變數據時必須是排它模式(mode 6)。每一個活動事務都擁有一個鎖。它將在事務結束(commit/rollback)時釋放。如果一個塊包括的列被改變而沒有ITL(interested transaction list)槽位(entries),那么session將鎖置于共享模式(mode 4)。當session獲得塊的ITL槽位時釋放。當一個事務首次發起一個DML語句時就獲得一個TX鎖,該鎖保持到事務被提交或回滾。當兩個或多個會話在表的同一條記錄上執行DML語句時,第一個會話在該條記錄上加鎖,其他的會話處于等待狀態。當第一個會話提交后,TX鎖被釋放,其他會話才可以加鎖。指出回滾段和事務表項。

按下列項以避免競爭:

避免TX-6類型競爭,需要根據您的應用而定。

避免TX-4類型競爭,可以考慮增加對象INITRANS參數值。

TM:表級鎖

數據庫執行任何DDL語句時必須是排它模式;例如alter table,drop table。執行像insert,update,delete這類DML語句時處于共享模式。它防止其它session對同一個對象同時執行ddl語句。任何對象擁有正被改變的數據,TM鎖都將必須存在。鎖指向對象。在TM隊列避免競爭,可以考慮屏蔽對象表級鎖,屏蔽表級鎖防止對象執行任何ddl語句。

ST:空間事務鎖

每個數據庫(非實例)擁有一個ST鎖。除了本地管理表空間,在space管理操作(新建或刪除extents)時必須是排它模式。對象creation, dropping, extension, 以及truncation都處于這種鎖。多數公共原因的爭奪,是在磁盤排序(并非使用真正的臨時表空間)或回滾段擴展或收縮。

按如下項以避免競爭:

使用真正的臨時表空間(true temporary tablespaces),,利用臨時文件。臨時段在磁盤排序之后并不創建或刪除。

使用本地管理表空間。

指定回滾段避免動態擴展和收縮,或使用自動undo management。

避免應用執行創建或刪除數據庫對象。

UL:用戶定義鎖

用戶可以自定義鎖。內容較多并與此節關系不大,略過。

V$LOCK中的連接列

Column View Joined Column(s)

SID V$SESSION SID

ID1, ID2, TYPE V$LOCK ID1, ID2, TYPE

ID1 DBA_OBJECTS OBJECT_ID

TRUNCID1/65536) V$ROLLNAME USN

如果session在等待鎖,這可被用于找出session持有的鎖。可被用于找出DML鎖類型的被鎖對象(type='TM'),可被用于找出行級事務鎖(TYPE='TX')使用中的回滾段,不過需要通過V$TRANSACTION連接查詢得到。

表1 Oracle的TM鎖類型

鎖模式

鎖描述

解釋

SQL操作

0

none

1

NULL

Select

2

SS(Row-S)

行級共享鎖,其他對象只能查詢這些數據行

Select for update、Lock for update、Lock row share

3

SX(Row-X)

行級排它鎖,在提交前不允許做DML操作

Insert、Update、Delete、Lock row share

4

S(Share)

共享鎖

Create index、Lock share

5

SSX(S/Row-X)

共享行級排它鎖

Lock share row exclusive

本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴

本文系統來源:php中文網

總結

以上是生活随笔為你收集整理的oracle表是动态表怎么算排名,Oracle学习动态性能表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。