成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實施Oracle事務相關管理問題的總結

數據庫 Oracle
以下的文章主要是對Oracle事務管理的相關問題的經驗總結,如果你對其實際的相關操作感興趣的話,你就可以點擊以下的文章了。

以下的文章主要介紹的實施Oracle事務管理的相關問題的總結,前兩天在相關網站看見實施Oracle事務管理的相關問題的資料,覺得挺好,就拿出來供大家分享。實施Oracle事務管理的相關問題。

該SQL語句的操作過程中認為此數據狀態是保持不變的。當此操作執行結束時刻,才產生語句級數據狀態影響。就是說,可能該語句同時更新了兩行,但都用了同一個主鍵,則此時會導致違反***性約定而消除整個語句的影響,如果成功執行,但未必就在Oracle事務級別上影響數據狀態,就是說如果所在Oracle事務回滾,此影響仍然被消除,不過正如前面所說,一個語句成功執行后,就可能影響其他語句所面對的數據狀態。51CTO數據庫頻道向您推薦《Oracle數據庫調試與性能優化》專題。

PL/SQL的執行是怎么管理并發和恢復控制的?

PL/SQL是在一個PL/SQL引擎中執行的。該引擎可以認為是Oracle之外的單位。該引擎會解析PL/SQL,并不斷發送SQL語句給Oracle。所以和用Java程序通過JDBC在一個會話連接中發送多個SQL語句沒有本質差別。也因此并發和恢復管理沒有不同。

Oracle死鎖是怎么樣產生的?

由于Oracle控制并發是使用的鎖機制,也因此即會產生死鎖問題。Oracle在執行一個語句時,會根據語句的含義,同時根據所處的Oracle事務隔離級別,解析出需要加什么樣的鎖,什么時候釋放。而隔離級別越高,對鎖資源占用越大。現在考慮這樣的情形,Oracle同時處理兩個事務A,B。

A發過來幾條語句,導致Oracle加了幾把鎖沒有釋放,B發過來幾條語句,導致Oracle加了另外幾把鎖沒有釋放,現在,A又發過來一個語句,此語句要求Oracle加的一些鎖中,有幾個鎖已經被B事務占用,那么A等待,而B又發過來一條語句,此語句要求Oracle加的鎖,在A手中。

于是死鎖出現。而隔離級別越高,死鎖的可能性越大??梢苑治龀鰜?,死鎖的根本原因在于,Oracle事務包含的語句是分條發給Oracle的,Oracle不能夠在事務開始時刻就解析出全部執行過程需要什么鎖,什么時候釋放,無法統一安排。

死鎖問題歸咎由誰呢?我這么理解:如果沒有事務概念,Oracle在語句級上控制并發,完全不會出現死鎖問題。因為在解析語句時,Oracle已經知道要加多少把鎖,它會看目前這些鎖如果能全部獲得就執行,否則就等待。可是實際應用怎么能沒有Oracle事務的概念呢?

我同意完全可以出現新的sql語法,可以把原來的多條sql語句的含義在一個語句中定義完畢,長短不是問題,犧牲一定的語法簡潔度也不是問題;然而最關鍵的是往往我們是在一個業務處理邏輯中,多個數據庫操作之間摻雜了其他非數據庫操作,而又想獲取這些數據庫操作作為一個整體的ACID。

因此事務概念必須存在。既然如此,或許我們真得可以把一個Oracle事務可能包含的語句在事務開始時就交給Oracle,盡管這樣一來,有可能就包含了實際通過業務邏輯判斷不會執行的語句,導致Oracle浪費鎖,降低并發處理能力。

我之前的文章曾經介紹過用Java實現同步控制,降低Oracle隔離級別,只利用Oracle的原子性支持。這樣做的原因就在上文中基本提到了。我們在編寫Java業務邏輯時,是知道我們需要在一串業務邏輯中操作多少次數據庫的,也因此,能夠在業務邏輯開始時就控制得到所有的鎖再執行。

這樣做確實能夠降低Oracle壓力,并消除死鎖問題,然而這樣做會導致同步壓力集中到Java應用端,而且對研發人員要求也會提高。盡管如此,在Java應用端使用同步要靈活很多,而不必限制在表鎖行鎖,你甚至可以建一個森林結構的信號量數據來控制同步。

呵呵,反過來也可以理解隔離級別的問題,為什么要存在允許幻像讀的隔離級別呢?隔離級別的存在是一種權衡,如果應用既不想自己控制并發,又想提高并發能力,則需要好好權衡一下吧!

【編輯推薦】

  1. Oracle修改字段類型2種方案介紹
  2. Oracle數據文件的特性介紹
  3. Oracle臨時表用法的經驗心得
  4. Oracle表中數據導出成 Txt格式的方案
  5. Oracle通過其實際存儲過程中返回相關數據集

 

責任編輯:佚名 來源: 互聯網
相關推薦

2010-05-05 09:33:46

Oracle事務

2010-04-21 08:50:08

2010-04-15 08:57:29

Oracle數據庫

2010-05-31 15:12:44

MySQL數據庫

2021-06-10 16:18:39

Oracle賬號信息

2010-04-23 15:58:20

Oracle用戶

2010-04-21 09:12:56

Oracle JDBC

2010-03-16 19:29:26

Java多線程操作

2015-07-06 09:52:40

2009-11-30 14:40:29

PHP管理Oracle

2010-04-23 09:58:30

Oracle管理

2010-04-16 17:31:22

ORACLE回滾段

2012-07-23 16:41:10

Oracle

2015-10-28 15:35:33

Oracle策略

2009-12-11 17:04:20

VS2008程序

2010-05-04 15:59:05

Oracle字符集

2010-04-14 13:22:10

Oracle系統函數

2011-05-19 14:29:49

Oraclerownum

2011-08-18 15:37:02

Oracle資源管理分配計劃SQL優化

2021-04-09 21:07:07

Oracle數據庫謂詞
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久综合色一本 | 夜久久| 91性高湖久久久久久久久_久久99 | 久久国产精品免费视频 | 日韩免费 | 亚洲男人天堂 | 成人午夜在线 | 成人区精品一区二区婷婷 | 亚洲一一在线 | 精品国产乱码久久久久久蜜退臀 | 欧美三级成人理伦 | 综合网视频 | 免费欧美 | 97人人爱| 日韩成人免费视频 | 中文字幕在线观看精品 | a级毛片免费高清视频 | 欧美一级全黄 | 欧美成人一区二区三区片免费 | 韩国久久精品 | 五月天天丁香婷婷在线中 | 中文字幕在线看 | 日韩av手机在线观看 | 亚洲一区二区精品视频 | 男女羞羞视频大全 | 在线免费观看视频你懂的 | 午夜电影福利 | 在线观看国产精品一区二区 | 国产一区二区三区四区五区3d | 精品国产一区三区 | 久久综合久久自在自线精品自 | 国产成人99久久亚洲综合精品 | 黄色免费av | 日本aa毛片a级毛片免费观看 | 亚洲成av| 91av视频在线 | 超碰导航| 免费av播放| 精品免费视频 | 国产在线视频一区 | 二区中文字幕 |