




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、鎖和表分區(qū),2,回顧,SQL 是數(shù)據(jù)庫(kù)語(yǔ)言,Oracle 使用該語(yǔ)言在數(shù)據(jù)庫(kù)中存儲(chǔ)和檢索信息 Oracle 支持各種數(shù)據(jù)類型,如 VARCHAR2、NUMBER、LONG、RAW 和 DATE 等 數(shù)據(jù)操縱語(yǔ)言用于查詢和修改表中的數(shù)據(jù) 事務(wù)控制語(yǔ)言管理事務(wù)的一致性 SQL 操作符包括算術(shù)、比較、邏輯、集合和連接操作符 SQL 函數(shù)可以大致分為單行函數(shù)、聚合函數(shù)和分析函數(shù),3,目標(biāo),理解鎖定的概念 了解和使用表分區(qū),4,鎖的概念 2-1,鎖是數(shù)據(jù)庫(kù)用來控制共享資源并發(fā)訪問的機(jī)制。 鎖用于保護(hù)正在被修改的數(shù)據(jù) 直到提交或回滾了事務(wù)之后,其他用戶才可以更新數(shù)據(jù),5,鎖的概念 2-2,修改表,修改表,
2、拒絕訪問,6,鎖定的優(yōu)點(diǎn),一致性 - 一次只允許一個(gè)用戶修改數(shù)據(jù) 完整性 - 為所有用戶提供正確的數(shù)據(jù)。如果一個(gè)用戶進(jìn)行了修改并保存,所做的修改將反映給所有用戶,并行性 允許多個(gè)用戶訪問同一數(shù)據(jù),修改表中 的數(shù)據(jù),查看表中的數(shù)據(jù),允許訪問,7,表級(jí)鎖,行級(jí)鎖,鎖的類型,鎖的類型,8,行級(jí)鎖 3-1,更新 T002 行,更新 T001 行,行被鎖定,對(duì)正在被修改的行進(jìn)行鎖定。其他用戶可以訪問除被鎖定的行以外的行,允許訪問,9,行級(jí)鎖 3-2,行級(jí)鎖是一種排他鎖,防止其他事務(wù)修改此行 在使用以下語(yǔ)句時(shí),Oracle會(huì)自動(dòng)應(yīng)用行級(jí)鎖: INSERT UPDATE DELETE SELECT FOR
3、UPDATE SELECT FOR UPDATE語(yǔ)句允許用戶一次鎖定多條記錄進(jìn)行更新 使用COMMIT或ROLLBACK語(yǔ)句釋放鎖,10,行級(jí)鎖 3-3,SELECT FOR UPDATE語(yǔ)法: SELECT FOR UPDATE OF columnsWAIT n | NOWAIT;,SQL SELECT * FROM order_master WHERE vencode=V002 FOR UPDATE OF odate, del_date; SQL UPDATE order_master SET del_date=28-8月-05 WHERE vencode=V002; SQL COMMIT
4、;,SQL SELECT * FROM order_master WHERE vencode=V002 FOR UPDATE WAIT 5;,SQL SELECT * FROM order_master WHERE vencode=V002 FOR UPDATE NOWAIT;,11,表級(jí)鎖 3-1,修改表中的行,更新表,拒絕訪問,鎖定整個(gè)表,限制其他用戶對(duì)表的訪問。,12,表級(jí)鎖 3-2,表級(jí)鎖類型,行共享,行排他,共享,使用命令顯示地鎖定表,應(yīng)用表級(jí)鎖的語(yǔ)法是: LOCK TABLE table_name IN mode MODE;,共享行排他,排他,13,表級(jí)鎖 3-3,行共享 (ROW
5、 SHARE) 禁止排他鎖定表 行排他(ROW EXCLUSIVE) 禁止使用排他鎖和共享鎖 共享鎖(SHARE) 鎖定表,僅允許其他用戶查詢表中的行 禁止其他用戶插入、更新和刪除行 多個(gè)用戶可以同時(shí)在同一個(gè)表上應(yīng)用此鎖 共享行排他(SHARE ROW EXCLUSIVE) 比共享鎖更多的限制,禁止使用共享鎖及更高的鎖 排他(EXCLUSIVE) 限制最強(qiáng)的表鎖,僅允許其他用戶查詢?cè)摫淼男?。禁止修改和鎖定表,14,死鎖,當(dāng)兩個(gè)事務(wù)相互等待對(duì)方釋放資源時(shí),就會(huì)形成死鎖 Oracle會(huì)自動(dòng)檢測(cè)死鎖,并通過結(jié)束其中的一個(gè)事務(wù)來解決死鎖 右邊是一個(gè)死鎖的例子,15,表分區(qū),允許用戶將一個(gè)表分成多個(gè)分區(qū)
6、 用戶可以執(zhí)行查詢,只訪問表中的特定分區(qū) 將不同的分區(qū)存儲(chǔ)在不同的磁盤,提高訪問性能和安全性 可以獨(dú)立地備份和恢復(fù)每個(gè)分區(qū),更新表,只訪問 P1,P1 分區(qū),P2 分區(qū),16,表分區(qū)的類型 9-1,分區(qū)方法,范圍分區(qū),散列分區(qū),列表分區(qū),復(fù)合分區(qū),17,表分區(qū)的類型 9-2,范圍分區(qū) 以表中的一個(gè)列或一組列的值的范圍分區(qū) 范圍分區(qū)的語(yǔ)法:,PARTITION BY RANGE (column_name) ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), . PARTITION
7、partN VALUE LESS THAN(MAXVALUE) );,18,表分區(qū)的類型 9-3,SQL CREATE TABLE Sales ( Product_ID varchar2 (5), Sales_Cost number (10) ) PARTITION BY RANGE (Sales_Cost) ( PARTITION P1 VALUES LESS THAN (1000), PARTITION P2 VALUES LESS THAN (2000), PARTITION P3 VALUES LESS THAN (3000) );,根據(jù) Sales_Cost 創(chuàng)建分區(qū),分區(qū)的名稱,包
8、含銷售成本低于1000 的所有產(chǎn)品的值,SQL CREATE TABLE SALES2 ( PRODUCT_ID VARCHAR2(5), SALES_DATE DATE NOT NULL, SALES_COST NUMBER(10) PARTITION BY RANGE (SALES_DATE) ( PARTITION P1 VALUES LESS THAN (DATE 2003-01-01), PARTITION P2 VALUES LESS THAN (DATE 2004-01-01), PARTITION P3 VALUES LESS THAN (MAXVALUE) );,范圍分區(qū)示例
9、,19,表分區(qū)的類型 9-4,散列分區(qū) 允許用戶對(duì)不具有邏輯范圍的數(shù)據(jù)進(jìn)行分區(qū) 通過在分區(qū)鍵上執(zhí)行HASH函數(shù)決定存儲(chǔ)的分區(qū) 將數(shù)據(jù)平均地分布到不同的分區(qū) 散列分區(qū)語(yǔ)法,PARTITION BY HASH (column_name) PARTITIONS number_of_partitions; 或 PARTITION BY HASH (column_name) ( PARTITION part1 TABLESPACE tbs1, PARTITION part2 TABLESPACE tbs2, . PARTITION partN TABLESPACE tbsN);,20,表分區(qū)的類型 9-
10、5,散列分區(qū)示例,SQL CREATE TABLE Employee ( Employee_ID varchar2 (5), Employee_Name varchar2(20), Department varchar2 (10) ) PARTITION BY HASH (Department) ( Partition D1, Partition D2, Partition D3 );,在表 Employee上創(chuàng)建分區(qū)鍵 Department,分區(qū)的名稱,創(chuàng)建 3 個(gè)分區(qū),SQL CREATE TABLE EMPLOYEE ( EMP_ID NUMBER(4), EMP_NAME VARCHA
11、R2(14), EMP_ADDRESS VARCHAR2(15), DEPARTMENT VARCHAR2(10) ) PARTITION BY HASH (DEPARTMENT) PARTITIONS 4;,21,表分區(qū)的類型 9-6,列表分區(qū) 允許用戶將不相關(guān)的數(shù)據(jù)組織在一起 列表分區(qū)的語(yǔ)法:,PARTITION BY LIST (column_name) ( PARTITION part1 VALUES (values_list1), PARTITION part2 VALUES (values_list2), . PARTITION partN VALUES (DEFAULT) );,
12、22,表分區(qū)的類型 9-7,SQL CREATE TABLE Employee ( Emp_ID number (4), Emp_Name varchar2 (14), Emp_Address varchar2 (15) ) PARTITION BY LIST (Emp_Address) ( Partition north values (芝加哥), Partition west values (舊金山, 洛杉磯), Partition south values (亞特蘭大, 達(dá)拉斯, 休斯頓), Partition east values (紐約, 波斯頓) );,包含住在芝加哥的職員的記錄
13、,根據(jù)職員住址在表上創(chuàng)建的列表分區(qū),分區(qū)的名稱,列表分區(qū)示例,23,表分區(qū)的類型 9-8,復(fù)合分區(qū) 范圍分區(qū)與散列分區(qū)或列表分區(qū)的組合 復(fù)合分區(qū)的語(yǔ)法:,PARTITION BY RANGE (column_name1) SUBPARTITION BY HASH (column_name2) SUBPARTITIONS number_of_partitions ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), . PARTITION partN VALUE LESS THAN(
14、MAXVALUE) );,24,表分區(qū)的類型 9-9,SQL CREATE TABLE SALES ( PRODUCT_ID VARCHAR2 (5), SALES_DATE DATE NOT NULL, SALES_COST NUMBER (10) ) PARTITION BY RANGE (SALES_DATE) SUBPARTITION BY HASH (PRODUCT_ID) SUBPARTITIONS 5 ( PARTITION S1 VALUES LESS THAN (TO_DATE(01/4月/2001, DD/MON/YYYY), PARTITION S2 VALUES LES
15、S THAN (TO_DATE(01/7月/2001, DD/MON/YYYY), PARTITION S3 VALUES LESS THAN (TO_DATE(01/9月/2001, DD/MON/YYYY), PARTITION S4 VALUES LESS THAN (MAXVALUE) );,創(chuàng)建的四個(gè)范圍分區(qū)的名稱,在表的 Sales_Date 列中創(chuàng)建范圍分區(qū),在表的 Product_ID 列創(chuàng)建散列子分區(qū),在每個(gè)范圍分區(qū)中 創(chuàng)建 5 個(gè)散列子分區(qū),復(fù)合分區(qū)示例,25,操縱已分區(qū)的表,在已分區(qū)的表中插入數(shù)據(jù)與操作普通表完全相同,Oracle會(huì)自動(dòng)將數(shù)據(jù)保存到對(duì)應(yīng)的分區(qū) 查詢、修改和
16、刪除分區(qū)表時(shí)可以顯式指定要操作的分區(qū),INSERT INTO SALES3 VALUES (P001, 02-3月-2001, 2000); INSERT INTO SALES3 VALUES (P002, 10-5月-2001, 2508); INSERT INTO SALES3 VALUES (P003, 05-7月-2001, 780); INSERT INTO SALES3 VALUES (P004, 12-9月-2001, 1080);,SELECT * FROM SALES3 PARTITION (P3);,DELETE FROM SALES3 PARTITION (P2);,26
17、,分區(qū)維護(hù)操作,分區(qū)維護(hù)操作修改已分區(qū)表的分區(qū)。 分區(qū)維護(hù)的類型: 計(jì)劃事件 定期刪除最舊的分區(qū) 非計(jì)劃事件 解決應(yīng)用程序或系統(tǒng)問題 分區(qū)維護(hù)操作有: 添加分區(qū) 刪除分區(qū) 截?cái)喾謪^(qū) 合并分區(qū) 拆分分區(qū),27,維護(hù)分區(qū) 2-1,添加分區(qū) 在最后一個(gè)分區(qū)之后添加新分區(qū),SQL ALTER TABLE SALES ADD PARTITION P4 VALUES LESS THAN (4000);,刪除分區(qū) 刪除一個(gè)指定的分區(qū),分區(qū)的數(shù)據(jù)也隨之刪除,SQL ALTER TABLE SALES DROP PARTITION P4;,截?cái)喾謪^(qū) 刪除指定分區(qū)中的所有記錄,SQL ALTER TABLE SALES TRUNCATE PARTITION P3;,28,維護(hù)分區(qū) 2-2,合并分區(qū) - 將范圍分區(qū)或復(fù)合分區(qū)的兩個(gè)相鄰分區(qū)連接起來,SQL ALTER TABLE SALES MERGE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 碼頭貨物運(yùn)輸合同
- 工程熱力學(xué)模擬試答題
- 企業(yè)內(nèi)部年度財(cái)務(wù)分析報(bào)告
- 寓言故事烏鴉喝水的啟示讀后感
- 企業(yè)知識(shí)產(chǎn)權(quán)保護(hù)及維權(quán)服務(wù)協(xié)議
- 年度目標(biāo)達(dá)成報(bào)告
- 大數(shù)據(jù)挖掘在輿情監(jiān)控中的應(yīng)用實(shí)踐指南
- 如何正確使用辦公軟件提高效率
- 太陽(yáng)能光伏發(fā)電系統(tǒng)安裝合同
- 人與自然紀(jì)錄片評(píng)析和諧共生的啟示
- 湖北省華中師大一附中2020-2021高一物理期中檢測(cè)試卷【含答案】
- 從生產(chǎn)工藝角度詳解磷酸鐵鋰
- 全套橋梁施工技術(shù)交底記錄
- 《教師職業(yè)道德》全書word版
- 城市定制型商業(yè)醫(yī)療保險(xiǎn)(惠民保)知識(shí)圖譜
- GB∕T 3836.31-2021 爆炸性環(huán)境 第31部分:由防粉塵點(diǎn)燃外殼“t”保護(hù)的設(shè)備
- AMDAR資料的分析和應(yīng)用
- 橋梁缺陷與預(yù)防
- 新蘇教版小學(xué)科學(xué)三年級(jí)下冊(cè)全冊(cè)教案(2022年春修訂)
- 弗洛姆異化理論
- AQL抽樣標(biāo)準(zhǔn)表xls2
評(píng)論
0/150
提交評(píng)論