donnie's life
Oracle...Java...Math...
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆 - 79 文章 - 11 trackbacks - 0
<
2009年5月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
不再墮落。
Oracle documents:
http://tahiti.oracle.com/
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
(66)
da(4)
database(26)
java(6)
math(3)
os(11)
電力(13)
系統(tǒng)分析(3)
隨筆檔案
(79)
2009年7月 (1)
2009年6月 (5)
2009年5月 (14)
2009年4月 (23)
2009年3月 (26)
2009年2月 (10)
相冊
abc
收藏夾
(11)
database(2)
java(3)
x'(6)
搜索
積分與排名
積分 - 53708
排名 - 948
最新隨筆
1.?【轉】科學工作者的祖國——潘維博士在中國科學院研究生院工程碩士開學典禮上的演講
2.?Oracle 內存數(shù)據(jù)庫 TimesTen
3.?中國夢——唐駿正傳
4.?UML中各種圖形的建立步驟
5.?淺析軟件項目需求開發(fā)
6.?再談軟件需求分析和開發(fā)
7.?遙測
8.?變電站綜合自動化
9.?SOE和遙信的區(qū)別
10.?微機保護
最新評論
1.?re: flash player 9 安裝錯誤:正在嘗試安裝的ADOBE FLASH PLAYER版本不是最新的。。。。[未登錄]
10.1也這樣 愁死我了!
--大海
2.?re: flash player 9 安裝錯誤:正在嘗試安裝的ADOBE FLASH PLAYER版本不是最新的。。。。
謝謝了,幫我解決大問題了,呵呵
--第三只眼
3.?re: 使用ORA_ROWSCN的樂觀鎖定
抄書 %……&*(
--ddd
4.?re: T400 ubuntu 下,ati顯卡驅動安裝后 花屏,無法進入圖形之解決方法[未登錄]
呵呵。,謝謝啊,謝謝啊。O了
--三十
5.?re: T400 ubuntu 下,ati顯卡驅動安裝后 花屏,無法進入圖形之解決方法[未登錄]
ubuntu 9.04顯卡安裝,系統(tǒng)設置》設備驅動 自動識別安裝。
--me
閱讀排行榜
1.?方差(Variance) (10905)
2.?開啟windows xp 4G內存限制 Memory Limits for Windows Releases (7818)
3.?SOE和遙信的區(qū)別(4663)
4.?T400 ubuntu 下,ati顯卡驅動安裝后 花屏,無法進入圖形之解決方法(3819)
5.?flash player 9 安裝錯誤:正在嘗試安裝的ADOBE FLASH PLAYER版本不是最新的。。。。(2930)
阻塞 之Insert 現(xiàn)象與解決方案
insert阻塞不常見,對于帶主鍵的表,如果表上有唯一約束,有兩個會話試圖插入相同主鍵值的一條記錄,則其中一個會話會發(fā)生阻塞,直到另一個會話提交或回滾。
mld
@ORCL
>
create
table
demo ( x
int
primary
key
);
表已創(chuàng)建。
mld
@ORCL
>
insert
into
demo
values
(
1
);
已創(chuàng)建
1
行。
----- session2
mld
@ORCL
>
insert
into
demo
values
(
1
);
--waiting。。。。。。。。
解決:
a,使主鍵保證唯一,可采用UUID,SEQUENCE等方式;
b,使用DBMS_LOCK.REQUEST根據(jù)主鍵ID的hash值分配一個排它鎖,一次只有一個會話能請求成功,見代碼:
mld
@ORCL
>
conn sys
/
mld
as
sysdba
已連接。
sys
@ORCL
>
grant
execute
on
dbms_lock
to
mld;
授權成功。
mld
@ORCL
>
create
or
replace
trigger
demo_bifer
2
before
insert
on
demo
3
for
each row
4
declare
5
l_lock_id
number
;
6
resource_busy exception;
7
pragma exception_init( resource_busy,
-
54
);
8
begin
9
l_lock_id :
=
10
dbms_utility.get_hash_value( to_char( :new.x ),
0
,
1024
);
11
if
( dbms_lock.request
12
( id
=>
l_lock_id,
13
lockmode
=>
dbms_lock.x_mode,
14
timeout
=>
0
,
15
release_on_commit
=>
TRUE )
<>
0
)
16
then
17
raise resource_busy;
18
end
if
;
19
end
;
20
/
觸發(fā)器已創(chuàng)建
mld
@ORCL
>
show error;
沒有錯誤。
mld
@ORCL
>
insert
into
demo
values
(
1
);
已創(chuàng)建
1
行。
--session
2
mld
@ORCL
>
insert
into
demo
values
(
1
);
insert
into
demo
values
(
1
)
*
第
1
行出現(xiàn)錯誤:
ORA
-
00054
: 資源正忙, 但指定以 NOWAIT 方式獲取資源
ORA
-
06512
: 在 "MLD.DEMO_BIFER", line
14
ORA
-
04088
: 觸發(fā)器
'
MLD.DEMO_BIFER
'
執(zhí)行過程中出錯
mld
@ORCL
>
posted on 2009-05-06 22:45
donnie
閱讀(618)
評論(0)
編輯
收藏
所屬分類:
database
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Oracle 內存數(shù)據(jù)庫 TimesTen
阻塞 之Insert 現(xiàn)象與解決方案
查看行的ORA_ROWSCN, 修改時間 TIMESTAMP (oracle10以后的版本才有)
使用ORA_ROWSCN的樂觀鎖定
使用校驗和的樂觀鎖定
悲觀鎖定(試圖更新前就鎖定)
使用版本列的樂觀鎖定(樂觀鎖定:即將執(zhí)行更新前才鎖定)
oracle row length
oracle 壓縮表測試
A SQL Joke
Copyright ©2025 donnie Powered by:
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
拜泉县
|
哈巴河县
|
余江县
|
无为县
|
平舆县
|
深州市
|
孙吴县
|
铜梁县
|
泰安市
|
德格县
|
滦平县
|
濮阳市
|
广河县
|
盐城市
|
福鼎市
|
凤台县
|
黄平县
|
烟台市
|
太和县
|
白城市
|
长岭县
|
昌宁县
|
南江县
|
蕲春县
|
方山县
|
射洪县
|
固始县
|
龙井市
|
尚志市
|
新津县
|
方山县
|
南宁市
|
香河县
|
当阳市
|
桑日县
|
健康
|
博爱县
|
珠海市
|
安泽县
|
南京市
|
利川市
|