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

Oracle管理常見問題的解答

數據庫 Oracle
我們今天和主要和大家討論的是Oracle管理的相關問題總結,以及這些相關問題的正確解答,以下就是具體方案的描述。

我們今天要和大家討論的是Oracle管理的相關問題總結,你想知道在Oracle對相關的sql語句的相關執行是如何對Oracle管理并發與恢復控制的嗎?以下的文章就是對此問題的解決,,望你會有所收獲。

一條符合語法的sql語句,定義了對數據庫的操作。此操作執行的時刻,對應了數據庫的一個數據狀態。可以這樣理解這個狀態:到此執行時刻為止,沒有任何數據庫語句級操作正在并發執行;就是說實際上正在并發執行的多個語句級操作可以假定在此語句操作之后執行。

這里強調語句級操作,是指如果一個事務包含多個操作語句,在此時刻實際已經執行了其中幾個,此時刻也正在執行某一個語句,那么不能簡單地認為前面幾個執行的操作語句也還沒發生,這是要看事務的隔離級別的,但是不管事務隔離級別是幾級,語句級別上可以認為是序列執行的。

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

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

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已經知道要加多少把鎖,它會看目前這些鎖如果能全部獲得就執行,否則就等待。可是實際應用怎么能沒有事務的概念呢?

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

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

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

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

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

以上的相關內容就是對Oracle管理相關問題總結的介紹,望你能有所收獲。

文章出自: http://www.programbbs.com/doc/class10-2.htm

【編輯推薦】

  1. Oracle數據庫下導出用戶的所有表的具體方案
  2. Oracle PL/SQL基礎知識及其相關概念
  3. JDBC連接Oracle數據庫10大技巧描述
  4. Oracle 調優的最終的目標是什么
  5. Oracle 10g如何用FIRALL來處理非連續數組
責任編輯:佚名 來源: programbbs
相關推薦

2010-04-27 18:24:56

Oracle常見問題

2010-04-28 11:09:47

Oracle常見問題

2009-07-29 10:03:24

思科網絡管理Cisco

2010-03-25 09:08:43

CentOS配置

2010-07-21 09:16:47

Perl常見問題

2009-07-07 10:13:57

Servlet學習

2009-11-09 10:42:53

ibmdwRational

2009-10-13 14:56:00

CCNA培訓

2009-04-13 11:42:29

IBMdWRational

2009-06-14 22:28:14

ibmdwWebSphere

2011-07-13 17:57:15

SQLite

2011-08-09 15:10:00

SQLite

2010-09-13 14:43:47

無線技術常見問題

2023-10-10 08:01:13

2010-04-14 14:37:56

Oracle卸載

2011-07-21 11:19:51

JAVA

2013-05-23 09:49:49

Chrome for google

2012-12-06 10:24:21

Saliency MaMATLAB

2010-05-12 17:04:20

BlackBerry開

2010-12-27 14:50:16

Windows 部署服
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜成人在线视频 | 自拍第一页| 天堂成人国产精品一区 | 毛片在线免费 | 日韩中文字幕视频在线观看 | 日韩中文字幕一区二区 | av免费网站在线 | 欧美一区二区三区电影 | 成年网站在线观看 | 天堂中文资源在线 | 国产一区不卡 | 久久精品手机视频 | 毛片在线免费 | 欧美国产日韩一区二区三区 | 91精品国产色综合久久不卡蜜臀 | 五月天婷婷久久 | 日韩福利 | 欧美日韩三级 | 成人免费观看男女羞羞视频 | 午夜在线 | 先锋资源亚洲 | 欧美在线国产精品 | 日韩三级在线观看 | 欧美国产精品久久久 | 国产一区二区三区不卡av | 98久久| 日韩在线观看一区二区三区 | 91传媒在线观看 | 在线日韩精品视频 | 中文精品久久 | 欧美在线a | 成人免费视频观看视频 | 99re| 国产精品一区二区在线免费观看 | 精品综合 | 91精品一区二区三区久久久久久 | 欧美成人精品 | ww亚洲ww亚在线观看 | 国产亚洲精品久久久优势 | chengrenzaixian| 狠狠干狠狠操 |