a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

在Oracle數據庫中處理數據的高并發響應

2024-08-29 13:53:06
字體:
來源:轉載
供稿:網友

某些系統可能對系統應付數據高并發的響應要求比較高 (如: 飛行航空訂票系統). 本文采用Oracle的lock table來解決此問題:


PRocedure中關鍵code如下:


---------------------------------------


lock table tb_book_ticket in share mode;


...


insert into tb_book_ticket (id, scheduled_flight, ticket_no, book_time) values (ID.nextval, v_scheduled_flight, v_ticket_no, SYSDATE); -- mark1


... -- mark2


select count(*) into v_book_count from tb_book_ticket where scheduled_flight = v_scheduled_flight; -- mark3


if v_book_count <= v_book_max_count then


v_result := 'book successfully';


commit;


else


v_result := 'book unsuccessfully';


rollback;


end if;


return v_result;


-------------------------------------------------------------


以上有2個地方需注意:


1) 采用 lock table table_name in share mode 方式而非 lock table table_name in exclusive mode 提高并發性處理, 盡量減少不必要執行等待.


2) 按常規思路, 可能會將 mark1 與 mark3 順序交換, 但此舉不行


-------------------------------------------------------------


select count(*) into v_book_count from tb_book_ticket where scheduled_flight = v_scheduled_flight; -- mark3


... -- mark2


if v_book_count < v_book_max_count then


insert into tb_book_ticket (id, scheduled_flight, ticket_no, book_time) values (ID.nextval, v_scheduled_flight, v_ticket_no, SYSDATE); -- mark1


-- mark4


commit;


end if;


-------------------------------------------------------------


試想若 userA 執行到 mark4, 而同時 userB 執行到 mark3, 就可能會出現由于 userA 尚未commit 而導致 userB 訂到機票但實際沒有座位的情況。


若確希望使用常規邏輯來實現, 需要用到 Oracle 的表的讀鎖功能 (精細訪問策略), 而此非本文范圍, 且其對于SYS用戶無效。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品成人在线观看 | 久久a国产| 色久天堂 | 欧美一级二级片 | 精品一区二区三区国产 | 亚洲欧美一区二区精品中文字幕 | 成人激情视频 | 日韩综合| 国产精自产拍久久久久久 | 国产99久久精品一区二区永久免费 | 欧美成人激情视频 | 三级av在线 | 黄色天堂在线观看 | 亚洲一区二区三区免费在线观看 | 欧美一区二区三区精品免费 | 农村少妇kkkk7777 | 欧美精品在线观看 | 国产高清一级 | 日韩一区二区三区免费观看 | 久久靖品 | 国产精品美女久久久久久久久久久 | 国产精品影院在线观看 | 亚洲精品午夜aaa久久久 | 欧美精品免费在线 | 国产小视频在线观看 | 91污视频软件 | 精品国产99 | 中文字幕国产一区 | 黄色在线观看网站 | 最新国产中文字幕 | 欧洲毛片 | 中文字幕在线观看免费视频 | 亚洲香蕉在线观看 | 国产在线a| 亚洲第一视频 | 久久免费精品 | 成人久久18免费观看 | 欧美在线观看一区 | 国产成人精品亚洲777人妖 | 色欧美综合 | 国精产品一区一区三区免费完 |