oracle 入門教程系列3.ppt_第1頁
oracle 入門教程系列3.ppt_第2頁
oracle 入門教程系列3.ppt_第3頁
oracle 入門教程系列3.ppt_第4頁
oracle 入門教程系列3.ppt_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、鎖和表分區(qū),第三章,(免備案空間),回顧,2,Select 語句的用途 在 SQL*Plus 中可以使用各種類型的操作符 使用集合操作符可以合并查詢 SQL*PLUS 函數(shù)被歸類為單行函數(shù)和分組函數(shù) Rollup 和 Cube 操作符用于查找表達(dá)式的聚集和超級聚集 臨時表中的數(shù)據(jù)在用戶事務(wù)處理期間可持續(xù)使用免備案空間,目標(biāo),掌握鎖定的概念及其實現(xiàn)用法 掌握表分區(qū)的概念及其實現(xiàn)方法,3,鎖定概念 8 - 1,允許或拒絕資源訪問的一種機(jī)制 資源可以是特定行或整個表 控制對數(shù)據(jù)的并發(fā)訪問 防止在同時訪問相同資源的用戶之間出現(xiàn)破壞性的交互操作,4,鎖定概念 8 - 2,鎖定類型 行級鎖 表級鎖 行級鎖

2、 行被排他鎖定 在某行的鎖被釋放之前,其他用戶不能修改此行 使用 commit 或 rollback 命令釋放鎖 Oracle 通過使用 INSERT、UPDATE 和 SELECTFOR UPDATE 語句自動獲取行級鎖,5,鎖定概念 8 - 3,SELECTFOR UPDATE 子句 在表的一行或多行上放置排他鎖 用于防止其他用戶更新該行 可以執(zhí)行除更新之外的其他操作,6,鎖定的概念 8 - 4,FOR UPDATE WAIT 子句 Oracle9i 中的新增功能 防止無限期地等待鎖定的行 允許對鎖的等待時間進(jìn)行更多的控制 等待間隔必須指定為數(shù)值文字 等待間隔不能是表達(dá)式、賦值變量或 PL

3、/SQL變量免備案空間,7,鎖定概念 8 - 5,表級鎖 保護(hù)表的數(shù)據(jù) 在多個用戶同時訪問數(shù)據(jù)時確保數(shù)據(jù)的完整性 可以設(shè)置為三種模式:共享、共享更新和排他 語法: Lock table in ;,8,鎖定概念 8 - 6,共享鎖 鎖定表 僅允許其他用戶執(zhí)行查詢操作 不能插入、更新和刪除 多個用戶可以同時在同一表中放置此鎖,9,共享更新鎖 鎖定要被更新的行 允許其他用戶同時查詢、插入、更新未被鎖定的行 在 SELECT 語句中使用“FOR UPDATE”子句,可以強(qiáng)制使用共享更新鎖 允許多個用戶同時鎖定表的不同行免備案空間,10,鎖定概念 8 - 7,鎖定概念 8 - 8,排他鎖 與其他兩種鎖相

4、比,排他鎖是限制性最強(qiáng)的表鎖 僅允許其他用戶查詢數(shù)據(jù) 不允許執(zhí)行插入、刪除和更新操作 在同一時間僅允許一位用戶在表上放置排他鎖 共享鎖與此相反,11,分區(qū)的概念是指可以將表拆分為幾個部分 在數(shù)據(jù)倉庫應(yīng)用程序中非常有用 根據(jù)鍵值范圍對表進(jìn)行拆分 表的每個部分稱為“分區(qū)” 分區(qū)被獨立存儲和管理 通過引用邏輯表名稱進(jìn)行查詢和更新,12,表分區(qū) 13 - 1,分區(qū)方法 分區(qū)類型 范圍分區(qū) 散列分區(qū) 復(fù)合分區(qū) 列表分區(qū),13,表分區(qū) 13 - 2,范圍分區(qū) 根據(jù)列值的范圍將行映射到分區(qū) 由表的分區(qū)規(guī)范進(jìn)行定義: PARTITION BY RANGE ( column_list ) 由每個單獨分區(qū)的分區(qū)規(guī)

5、范進(jìn)行定義: VALUES LESS THAN ( value_list ) 其中 column_list 是列的有序列表 value_list 是 column_list 中列值的有序列表,14,表分區(qū) 13 - 3,范圍分區(qū)的語法: create table (column_name data type,column_name data type,.) partition by range(column_name) (partition values less than , partition values less than ); ,15,表分區(qū) 13 - 4,散列分區(qū) 在分區(qū)列上使用

6、hash 函數(shù) 是比范圍分區(qū)更好的選擇 如果不知道將有多少數(shù)據(jù)映射到指定的范圍,散列分區(qū)非常有用 分區(qū)的數(shù)目應(yīng)是 2 的冪 可以對散列分區(qū)進(jìn)行命名,并將其存儲在特定的表空間中免備案空間,16,表分區(qū) 13 - 5,散列分區(qū)的語法: CREATE TABLE ( . ) PARTITION BY HASH(column_list) PARTITIONS ( PARTITION TABLESPACE , PARTITION TABLESPACE tablespace_name);,17,表分區(qū) 13 - 6,復(fù)合分區(qū) 使用范圍分區(qū)方法對數(shù)據(jù)進(jìn)行分區(qū),并在每一個分區(qū)內(nèi)使用散列分區(qū)方法將其劃分為子分區(qū)

7、 允許命名子分區(qū) 允許將子分區(qū)存儲在特定的表空間 兼具范圍分區(qū)和散列分區(qū)的優(yōu)點,18,表分區(qū)13 - 7,復(fù)合分區(qū)的語法: CREATE TABLE ( ) PARTITION BY RANGE(column_list) SUBPARTITION BY HASH(column_list) SUBPARTITIONS STORE IN(, , ,.) ( PARTITION VALUES LESS THAN() ( SUBPARTITION TABLESPACE , . SUBPARTITION TABLESPACE , SUBPARTITION TABLESPACE ) PARTITION V

8、ALUES LESS THAN() );,19,表分區(qū)13 - 8,列表分區(qū) 基于 PARTITION BY LIST 中指定的分區(qū)鍵對表進(jìn)行分區(qū) 明確地控制行到分區(qū)的映射 指定分區(qū)鍵的離散值 不同于范圍分區(qū)和散列分區(qū),20,表分區(qū) 13 - 9,將記錄插入已分區(qū)表 記錄被存儲到表的分區(qū)中 基于指定的分區(qū)鍵執(zhí)行 與定義的分區(qū)邊界進(jìn)行比較 示例: SQL INSERT INTO ord_mast VALUES(o001,12-jan-96, V001,p,12-jan-97); SQL INSERT INTO ord_mast VALUES(o010,12-feb-99, V002,c,15-m

9、ar-99); SQL INSERT INTO ord_mast VALUES(o012,12-feb-99, V002,c,15-mar-99);,21,表分區(qū) 13 - 10,分區(qū)維護(hù)操作 修改已分區(qū)表的一個分區(qū) 劃分為兩類事件: 計劃事件 - 定期刪除最舊分區(qū)的操作 非計劃事件 解決應(yīng)用程序或系統(tǒng)問題 免備案空間,22,表分區(qū)13 - 11,維護(hù)分區(qū) 各種分區(qū)維護(hù)操作如下: 添加分區(qū) 移動 刪除 結(jié)合 截斷 拆分 合并 交換表分區(qū),23,表分區(qū) 13 - 12,本地域索引 Oracle9i 中引入的新功能 在 Oracle9i 之前的版本中,不能為表的每個分區(qū)定義本地域索引 在 Oracle9i 之前的版本中,僅可以定義非分區(qū)的全局域索引 現(xiàn)在,可以為范圍分區(qū)表上的分區(qū)定義本地域索引免備案空間 其他類型的分區(qū)不支持此功能,24,表分區(qū)13 - 13,鎖用于在用戶之間控制對數(shù)據(jù)的并發(fā)訪問 鎖有兩種類型 - 行級鎖和表級鎖 行級鎖用于指定的行 表級鎖用于整個表 SELECTFOR UPDATE OF 子句用于鎖定指定的行,25,總結(jié) - 1,FOR UPDATE WAIT 子句用于指定獲取鎖的時間間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論