亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

oracle當需要commit

系統(tǒng) 2100 0

今天oracle的SQL plus 運行該刪除和查詢操作,然后PL/SQL還運行查詢。相同的句子,結(jié)果是不一樣的。我郁悶很大,然后,突然想到這可能對雙方造成由數(shù)據(jù)不一致,為什么不一致呢。就是沒用commit,

在網(wǎng)上查了一下,大概是這樣說的:

DML語言,比方update,delete,insert等改動表中數(shù)據(jù)的須要commit;
DDL語言,比方create,drop等改變表結(jié)構(gòu)的。就不須要寫commit(由于內(nèi)部隱藏了commit);


DDL 數(shù)據(jù)定義語言:
create table 創(chuàng)建表 ?
alter table 改動表 ?
drop table 刪除表 ?
truncate table 刪除表中全部行 ?
create index 創(chuàng)建索引 ?
drop index 刪除索引
當運行DDL語句時,在每一條語句前后,oracle都將提交當前的事務。

假設用戶使用insert命令將記錄插入到數(shù)據(jù)庫后,運行了一條DDL語句(如create
table)。此時來自insert命令的數(shù)據(jù)將被提交到數(shù)據(jù)庫。當DDL語句運行完畢時,DDL語句會被自己主動提交,不能回滾。

DML 數(shù)據(jù)操作語言:
insert 將記錄插入到數(shù)據(jù)庫?
update 改動數(shù)據(jù)庫的記錄?
delete 刪除數(shù)據(jù)庫的記錄
當運行DML命令假設沒有提交,將不會被其它會話看到。

除非在DML命令之后運行了DDL命令或DCL命令,或用戶退出會話。或終止實例,此時系統(tǒng)會自己主動
發(fā)出commit命令,使未提交的DML命令提交。


DDL? :
Data Definition Language (DDL) statements are used to define the database structure or schema. Some examples:

CREATE - to create objects in the database

ALTER - alters the structure of the database

DROP - delete objects from the database

TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed

COMMENT - add comments to the data dictionary

RENAME - rename an object

DML:

Data Manipulation Language (DML) statements are used for managing data within schema objects. Some examples:

SELECT - retrieve data from the a database

INSERT - insert data into a table

UPDATE - updates existing data within a table

DELETE - deletes all records from a table, the space for the records remain

MERGE - UPSERT operation (insert or update)

CALL - call a PL/SQL or Java subprogram

EXPLAIN PLAN - explain access path to data

LOCK TABLE - control concurrency

DCL

Data Control Language (DCL) statements. Some examples:

GRANT - gives user's access privileges to database

REVOKE - withdraw access privileges given with the GRANT command

TCL

Transaction Control (TCL) statements are used to manage the changes made by DML statements. It allows statements to be grouped together into logical transactions.

COMMIT - save work done

SAVEPOINT - identify a point in a transaction to which you can later roll back

ROLLBACK - restore database to original since the last COMMIT

SET TRANSACTION - Change transaction options like isolation level and what rollback segment to use

鎖概念基礎


數(shù)據(jù)庫是一個多用戶使用的共享資源。

當多個用戶并發(fā)地存取數(shù)據(jù)時,在數(shù)據(jù)庫中就會產(chǎn)生多個事務同一時候存取同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會讀取和存儲不對的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。

加鎖是實現(xiàn)數(shù)據(jù)庫并發(fā)控制的一個很重要的技術。當事務在對某個數(shù)據(jù)對象進行操作前,先向系統(tǒng)發(fā)出請求。對其加鎖。加鎖后事務就對該數(shù)據(jù)對象有了一定的控制,在該事務釋放鎖之前,其它的事務不能對此數(shù)據(jù)對象進行更新操作。

在數(shù)據(jù)庫中有兩種主要的鎖類型:排它鎖(Exclusive Locks。即X鎖)和共享鎖(Share Locks,即S鎖)。

當數(shù)據(jù)對象被加上排它鎖時。其它的事務不能對它讀取和改動。

加了共享鎖的數(shù)據(jù)對象能夠被其它事務讀取,但不能改動。數(shù)據(jù)庫利用這兩種主要的鎖類型來對數(shù)據(jù)庫的事務進行并發(fā)控制。





Oracle數(shù)據(jù)庫的鎖類型

依據(jù)保護的對象不同,Oracle數(shù)據(jù)庫鎖能夠分為下面幾大類:DML鎖(data locks,數(shù)據(jù)鎖),用于保護數(shù)據(jù)的完整性。DDL鎖(dictionary locks,字典鎖),用于保護數(shù)據(jù)庫對象的結(jié)構(gòu),如表、索引等的結(jié)構(gòu)定義。內(nèi)部鎖和閂(internal locks and latches)。保護數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)。

DML鎖的目的在于保證并發(fā)情況下的數(shù)據(jù)完整性,。

在Oracle數(shù)據(jù)庫中,DML鎖主要包含TM鎖和TX鎖,當中TM鎖稱為表級鎖,TX鎖稱為事務鎖或行級鎖。

當Oracle 運行DML語句時,系統(tǒng)自己主動在所要操作的表上申請TM類型的鎖。當TM鎖獲得后。系統(tǒng)再自己主動申請TX類型的鎖。并將實際鎖定的數(shù)據(jù)行的鎖標志位進行置位。

這樣在事務加鎖前檢查TX鎖相容性時就不用再逐行檢查鎖標志。而僅僅需檢查TM鎖模式的相容性就可以,大大提高了系統(tǒng)的效率。TM鎖包含了SS、SX、S、X 等多種模式。在數(shù)據(jù)庫中用0-6來表示。

不同的SQL操作產(chǎn)生不同類型的TM鎖。

在數(shù)據(jù)行上僅僅有X鎖(排他鎖)。在 Oracle數(shù)據(jù)庫中。當一個事務首次發(fā)起一個DML語句時就獲得一個TX鎖。該鎖保持到事務被提交或回滾。當兩個或多個會話在表的同一條記錄上運行 DML語句時,第一屆會議在此記錄鎖定,處于觀望狀態(tài)的其他會話。

當?shù)谝粚脮h提交,TX鎖定被解除,其他場次足夠的天賦鎖定。

什么時候Oracle數(shù)據(jù)庫發(fā)生TX鎖等待,假設沒有及時治療常導致Oracle數(shù)據(jù)庫掛起,或?qū)е滤梨i的發(fā)生。生產(chǎn)ORA-60錯誤。這些現(xiàn)象將在面臨嚴重風險的實際應用。由于長時間沒有回應。大量的交易失敗,等等。。

oracle當需要commit


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕美日韩在线高清 | 国产日韩美国成人 | 亚洲一区二区中文字幕 | 精品国产欧美一区二区 | 亚洲国产婷婷综合在线精品 | 久久国产精品一区二区 | 四虎影视库永久在线地址 | 日韩视频精品 | 国产成人精品在线 | 天堂精品在线 | 99热久久这里只精品 | 久久久久9 | 欲色综合| 精品在线播放视频 | 日韩欧美影视 | 久久精品系列 | 99精品久久精品一区二区 | 99视频在线看观免费 | 日韩亚洲欧美一区二区三区 | 久久精品爱国产免费久久 | 欧美一级刺激毛片 | 欧美一级特黄aaa大片 | 老妇毛片久久久久久久久 | 日本爽快片100色毛片 | 久热官网 | 91手机视频在线观看 | 久久www免费人成精品 | 亚洲qingse中文久久网 | 少妇美女极品美軳人人体 | 国产乱人伦精品一区二区 | 久久久久久久99精品免费观看 | 欧美日韩免费大片 | 亚洲激情在线播放 | 久久久久久噜噜噜久久久精品 | 久青草国产在线 | 模特精品视频一区 | 国内精品久久久久久影院网站小说 | 日韩黄色大片 | 国产精品麻豆一区二区 | 亚洲欧美日韩高清专区一区 | 夜夜夜网站|