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

Oracle事務在管理中的問題有哪些?

數據庫 Oracle
以下的文章主要講述的是Oracle事務的管理問題的總結,其中包括PL/SQL的執行在實際操作中是如何管理并發與恢復控制,Oracle死鎖產生的原因的分析。

我們大家都知道如果一個Oracle事務里包含N多個相關的操作語句,而在此時實際操作中已對其中的幾個進行了執行,也可以同時執行某個語句,那么我們就不能簡單的認為前面幾個執行的操作語句也還沒發生。

這是要看Oracle事務的隔離級別的,但是不管事務隔離級別是幾級,語句級別上可以認為是序列執行的。

該sql語句的操作過程中認為此數據狀態是保持不變的。當此操作執行結束時刻,才產生語句級數據狀態影響。就是說,可能該語句同時更新了兩行,但都用了同一個主鍵,則此時會導致違反***性約定而消除整個語句的影響,如果成功執行,但未必就在事務級別上影響數據狀態,就是說如果所在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已經知道要加多少把鎖,它會看目前這些鎖如果能全部獲得就執行,否則就等待。

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

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

我之前的文章曾經介紹過用JAVA實現同步控制,降低ORACLE隔離級別,只利用ORACLE的原子性支持。這樣做的原因就在上文中基本提到了。我們在編寫JAVA業務邏輯時,是知道我們需要在一串業務邏輯中操作多少次數據庫的,也因此,能夠在業務邏輯開始時就控制得到所有的鎖再執行。這樣做確實能夠降低oracle壓力,并消除死鎖問題,然而這樣做會導致同步壓力集中到JAVA應用端,而且對研發人員要求也會提高。

盡管如此,在JAVA應用端使用同步要靈活很多,而不必限制在表鎖行鎖,你甚至可以建一個森林結構的信號量數據來控制同步。

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

【編輯推薦】

  1. Oracle字符集中的一些問題總結
  2. Oracle修改相關字段的幾種常用方法
  3. Oracle分頁查詢語句的實際應用
  4. 實現異地Oracle數據庫的數據同步步驟
  5. Oracle數據比較的兩大妙招

 

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

2010-04-21 09:12:56

Oracle JDBC

2010-04-09 09:46:38

Oracle RAC

2010-05-04 18:00:56

Oracle事務

2010-03-29 13:33:27

Oracle模式

2022-08-27 14:14:06

Spring事務開發

2010-05-07 17:56:10

Oracle數據庫安全

2010-05-05 13:56:09

Oracle常見問題

2010-05-05 10:49:34

Oracle 復合類型

2010-04-20 09:06:25

Oracle優化

2010-04-21 08:50:08

2023-07-03 14:11:06

預測分析

2010-04-21 10:04:33

Oracle移植

2010-04-16 09:03:28

Oracle 存儲過程

2010-04-06 17:36:15

Oracle數據字典

2010-04-15 10:34:16

Oracle程序開發

2022-09-22 09:57:20

Spring事務失效

2010-04-28 12:24:56

Oracle數據庫

2010-05-07 18:44:28

Oracle存儲過程

2010-05-06 16:02:42

Oracle SQL

2010-04-21 14:11:56

Oracle數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲电影一区二区三区 | 天堂视频一区 | 国产综合久久久久久鬼色 | 成人婷婷 | 中文字幕成人免费视频 | 成人激情视频免费在线观看 | 最新中文字幕第一页视频 | www亚洲精品| 97起碰 | 国产成人精品午夜视频免费 | 综合久久久久久久 | 国产成人免费 | 亚洲影视在线 | 欧美xxxx网站| 日韩在线中文 | 国产精品一区一区三区 | 久久久青草婷婷精品综合日韩 | 国产日日操| 女人毛片a毛片久久人人 | 精品一区二区在线视频 | 欧美一级黄色片在线观看 | 日韩久久精品视频 | 青春草国产| 亚洲 欧美 在线 一区 | 国产真实精品久久二三区 | 992tv人人草| 国产成人久久av免费高清密臂 | 久久久久久国产精品免费免费狐狸 | 成人精品鲁一区一区二区 | 天天干视频网 | 成人国产精品久久久 | 玖草资源 | 久久久九九九九 | 久草免费在线视频 | 亚洲视频欧美视频 | 欧美成人精品一区二区男人看 | a a毛片 | 妞干网福利视频 | 玩丰满女领导对白露脸hd | 亚洲精品性视频 | 男女羞羞网站 |