freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracle數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè)(編輯修改稿)

2024-12-12 08:15 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 區(qū)索引 ,這個(gè)索引在上面的數(shù)據(jù)字典 user_part_indexes 查詢中得知是 Global 型的 Prefixed 索引。下面我們?cè)賮?lái)創(chuàng)建一個(gè)分區(qū)表上的 Global Prefixed Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 16 頁(yè) 型分區(qū)索引,見(jiàn)下面的例子: 檢索 分區(qū) 檢索分區(qū)實(shí)際上 跟 檢索表 或索引 沒(méi)有 任何 分別 , 因?yàn)榉謪^(qū)對(duì)于應(yīng)用端 sql語(yǔ)句 來(lái)講是完全透明的, 應(yīng)用程序并不會(huì)因?yàn)楸砘蛩饕欠謪^(qū)的而采取不一樣的 sql 語(yǔ)法,相反對(duì)于分區(qū)表Oracle 還提供給我們一個(gè)額外的選項(xiàng)來(lái)檢索分區(qū)。下面通過(guò)例子來(lái)加以說(shuō)明: Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 17 頁(yè) 上述例子我們檢索 Hash 分區(qū)表 partition_hash,第一個(gè)查詢語(yǔ)句非常普通 ,第二第三個(gè)查詢語(yǔ)句用到了分區(qū)表的一個(gè)額外選項(xiàng)那就是可以限制查詢?cè)谔?定的分區(qū)上進(jìn)行 ,第四個(gè)查詢語(yǔ)句 沒(méi)有查詢到記錄是由于 這條記錄存放在表分區(qū) p_2 上,但限定的查詢分區(qū)是 p_1 上 。第五個(gè)語(yǔ)句更新分區(qū) p_4 上所有記錄。 分區(qū)特性 在第 2 章探討分區(qū)在性能方面的優(yōu)勢(shì)時(shí)提到過(guò) Partition Pruning 和 PartitionWise Join這兩個(gè)特性, 真是由于這兩個(gè)特性使得分區(qū) 在處理海量數(shù)據(jù)的大表時(shí)有很高的性能優(yōu)勢(shì)。 這里將詳細(xì)分析 其中的原理和機(jī)制。 分區(qū) Pruning Pruning 在中文的意思為 “剪除” ,首先通過(guò)字面意思去理解的話是分區(qū)剪除 。 當(dāng) 對(duì)表 或索引 進(jìn)行 讀寫(xiě) 時(shí), Oracle 能識(shí)別到要 讀寫(xiě) 那些分區(qū)和子分區(qū) , 而不會(huì)去不相關(guān)的分區(qū)和子分區(qū)中 進(jìn)行讀寫(xiě)。 對(duì)應(yīng)用發(fā)出的每個(gè) sql 語(yǔ)句, Oracle 首先根據(jù)用戶的查詢條件 靜態(tài)或動(dòng)態(tài)地避免訪問(wèn)不相關(guān)地分區(qū)和子分區(qū)。 前面的例子中我們檢索 Range分區(qū)表 partition_range 中 2020032 號(hào)的數(shù)據(jù)時(shí)就是通過(guò) Partition Pruning 來(lái) 避免訪問(wèn) 其他日期的數(shù)據(jù)。 可通過(guò) 該查詢語(yǔ)句的執(zhí)行計(jì)劃來(lái)看看具體 Oracle 是如何執(zhí)行該語(yǔ)句的: Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 18 頁(yè) 從上述查詢結(jié)果得知 執(zhí)行計(jì)劃中使用了 “ PARTITION RANGE SINGLE”來(lái)檢索單 個(gè) 分區(qū)的數(shù)據(jù)行,并且檢索分區(qū)的位置起始 Pstart 和結(jié)束 Pstop 都是 6,而位置為 6 的分區(qū)巧巧是2020032 號(hào)對(duì)應(yīng)的分區(qū)表數(shù)據(jù)。 這種情況下 Oracle 在 編譯 解析該查詢語(yǔ)句時(shí) 可 通過(guò) where條件中的 createdate 能 定位到具體要 Pruning 哪些分區(qū), 此時(shí)的 Pruning 是靜態(tài)的。 有時(shí) where 條件中 應(yīng)用 并不能靜態(tài)固定具體的值供去 Pruning,比如說(shuō) 可能考慮到綁定變量 的使用,這種情況下 Oracle 在編譯解析語(yǔ)句時(shí)是不能確定具體那些分區(qū)需 Pruning,需在運(yùn)行期間才能確定,此時(shí)的 Pruning 是 動(dòng)態(tài)的。 下面是一個(gè)使用綁定變量動(dòng)態(tài)傳入 where 條件中列值的例子 : v_day是變量 ,在執(zhí)行計(jì)劃中 Pstart和 Pstop的值顯示為 KEY, 表明走的是動(dòng)態(tài)的 Partition Pruning,需在執(zhí)行期間才能確定要訪問(wèn)那些表分區(qū) 。 當(dāng)然也有一些例外將導(dǎo)致不能使用上 Partition Pruning, 好比表上有 良好 的索引但 where Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 19 頁(yè) 條件就是不能使用上該索引一樣。同索引的使用注意事項(xiàng),對(duì)于 PartitionPruning要特別留意數(shù)據(jù)類型的轉(zhuǎn)化和函數(shù)的套用,比如 : where createdate=’2020032’ 、 where trunc(createdate)=sysdate 等等。 分區(qū) Wise Join Oracle通過(guò) PartitionWise Join技術(shù)將兩 分區(qū) 表的連接拆分成 許多 小的連接, 關(guān)聯(lián)操作被分解成多個(gè)子操作 后 Hash join,此時(shí)若再并行來(lái)執(zhí)行將數(shù)據(jù)處理均勻分布給多個(gè)子進(jìn)程,減少并行關(guān)聯(lián)過(guò)程中各個(gè)子進(jìn)程間的數(shù)據(jù)交換量,從而提高性能。 當(dāng)關(guān)聯(lián)的兩表均為基于關(guān)聯(lián)字段的分區(qū)時(shí),此時(shí)最有利 連接執(zhí)行 , Oracle將通過(guò) Full方式的 Partition Wise Join去執(zhí)行。 若只要一張表時(shí) 基于關(guān)聯(lián)字段的分區(qū),此時(shí)通過(guò) Partial方式的Partition Wise Join去執(zhí)行。 如下的例子是 在開(kāi)啟了并行處理 paralle機(jī)制后 Full方式 的執(zhí)行計(jì)劃和并行處理機(jī)制圖 。 執(zhí)行計(jì)劃如下: Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 20 頁(yè) 并行處理機(jī)制圖如下: 4 分區(qū)管理與維護(hù) 當(dāng)表或索引分區(qū)后 相對(duì)普通表或索引來(lái)講 結(jié)構(gòu) 顯得有些復(fù)雜 ,尤其當(dāng)表或索引有多個(gè)分區(qū)和子分區(qū)后 所帶來(lái)的管理與維護(hù)工作也相應(yīng) 突出起來(lái)。 由于分區(qū)表和分區(qū)索引往往存在海量數(shù)據(jù)量的大表上,并且這些大表往往支撐著應(yīng)用的核心 功能,所以 管理與維護(hù) 分區(qū)是系統(tǒng)維護(hù)人員(比如 DBA)的 日常工作之一,必須很慎重操作才行。 Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 21 頁(yè) DDL 操作 Add 分區(qū) 對(duì)于一些日期型的 Range 分區(qū),隨著時(shí)間的推移,往往需要在月末、季度末、年末等添加新日期區(qū)間的分區(qū) 才能讀寫(xiě)相應(yīng)的業(yè)務(wù)數(shù)據(jù) ,這時(shí) 就會(huì)發(fā)生添加 分區(qū)的操作。 下面的例子是 添加新的分區(qū) p_20200308 到 Range 分區(qū)表 partition_range 中 : 需要注意的是 對(duì)于 Range 型的分區(qū)表 新加的分區(qū)只能位于已有分區(qū)的最大分區(qū)后,所以上述例子中 先 drop掉 Range分區(qū)中 的默認(rèn)最大分區(qū) maxvalue后 才可以添加具體日期的分區(qū)。 其他類型的分區(qū)( List 分區(qū) 、 Hash 分區(qū)和組合分區(qū))同樣可以 添加新的分區(qū) , 這里就不一一闡述和舉例了。 Drop 分區(qū) 當(dāng) drop 一個(gè)分區(qū)時(shí) ,該分區(qū)的數(shù)據(jù)和對(duì)應(yīng)的數(shù)據(jù)字典定義都將 從數(shù)據(jù)庫(kù)中清除掉 ,如果有本地的分區(qū)索引的話, 對(duì)應(yīng)的分區(qū)索引也將清除掉。 如下的例子是 drop 掉 Range 型分區(qū)partition_range 中最小的分區(qū) P_20200226 的語(yǔ)句: Rename 分區(qū) 分區(qū)名跟表名一樣也是可以重新命名的。如下語(yǔ)句將 List 分區(qū)表的分區(qū) P_NOACTIVE 改名為P_INACTIVE: Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 22 頁(yè) Truncate 分區(qū) truncate 分區(qū)跟 truncate 普通表一樣 只把對(duì)應(yīng)的分區(qū)數(shù)據(jù)清理掉,回收分區(qū)數(shù)據(jù)空間和對(duì)應(yīng)的本地分區(qū)索引數(shù)據(jù)空間并且保留數(shù)據(jù)字典定義。如下例子是 truncate 分區(qū)表partition_range 中分區(qū) P_20200227 的執(zhí)行語(yǔ)句: Move 分區(qū) move 分區(qū)跟 move 普通表一樣只把對(duì)應(yīng)的分區(qū)表從一個(gè)表空間遷移到另外一個(gè)新的表空間上 ,這在重組分區(qū)數(shù)據(jù)時(shí)會(huì)經(jīng)常用到。如下例子是 move 分區(qū)表的分區(qū) P_ACTIVE 從表空間 shiyihai 到新的表空間 users 的執(zhí)行語(yǔ)句: Merge 分區(qū) 有時(shí)需要將 兩個(gè)分區(qū)合并成一個(gè)分區(qū) 來(lái)進(jìn)行管理,這時(shí)就要用到 merge 用法。 如下例子是 將 Range 分區(qū)表 partition_range中最小的兩個(gè)分區(qū) p_20200227和 p_20200228 合并成一個(gè)新的分區(qū) p_min 的執(zhí)行語(yǔ)句: Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 23 頁(yè) Split 分區(qū) 跟 merge 分區(qū) 逆向 操作的動(dòng)作是 split 分區(qū),將一個(gè) 已有 分區(qū)分離成兩個(gè)新的分區(qū) ,這對(duì)于拆分大數(shù)據(jù)量的分區(qū)為小分區(qū)來(lái)易于管理和備份等是很有好處的 。如下的例子是將 Range分區(qū)表 partition_range 中的最大分區(qū) p_max 分解成兩個(gè)分區(qū) p_20200310 和 p_max 的執(zhí)行語(yǔ)句: Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 24 頁(yè) Exchange 分區(qū) 分區(qū)表中的分區(qū)有別于非分區(qū)的普通表, 雖然在數(shù)據(jù)庫(kù)字典定義中都是表 。 我們可以將分區(qū)表中的分區(qū)轉(zhuǎn)換為普通表,同時(shí)也可將普通的非分區(qū)表加入分區(qū)表大家族成為其中的一個(gè)分區(qū) ,其中需要用到的操作是 exchange。 如下的例子 均體現(xiàn)在 Range 分區(qū)表 partition_range上, 例子中首先將分區(qū) P_20200229 轉(zhuǎn)換為普通表 T_P_20200229,然后再將該表 加入到分區(qū)表中成為一個(gè)分區(qū),見(jiàn)如下的執(zhí)行語(yǔ)句: 通過(guò)查詢結(jié)果可以看到, exchange表分區(qū)后分區(qū)依然存 在 表的數(shù)據(jù)字典定義中 ,但下面的查詢結(jié)果表明 對(duì)應(yīng)的表分區(qū)是空的,數(shù)據(jù)已經(jīng)轉(zhuǎn)換到表 T_P_20200229 中。 Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 25 頁(yè) 在將普通表 T_P_20200229 給 exchange 回 分區(qū)表中時(shí)拋了異常 ORA14130,這是由于exchange 回分區(qū)表時(shí)需保證普通表跟分區(qū)表的結(jié)構(gòu)和約束均一致才行。 同樣的普通表的數(shù)據(jù)將“滑入”分區(qū)表中的分區(qū) P_20200229 上。 分區(qū) 屬性 跟分區(qū)相關(guān)的數(shù)據(jù)字典有很多, 下面列出來(lái)常見(jiàn)的一些 ,這些分區(qū)的擁有者均可以訪問(wèn) ,通過(guò)查詢這些數(shù)據(jù)字典可以獲取分區(qū)的所有屬性 。 數(shù)據(jù)字典名 描述 user_tab_partitions 用戶下所有的分區(qū)表信息 user_tab_subpartitions 用戶下所有的子分區(qū)表信息 user_ind_partitions 用戶下所有的索引分區(qū)信息 user_ind_subpartitions 用戶下所有的索引子分區(qū)信息 user_part_indexes 用戶下所有的分區(qū)索引信息 user_tables/user_indexes 用戶下所有的表 /索引信息 當(dāng)我們?cè)趧?chuàng)建分區(qū)表或分區(qū)索引的時(shí)候, 表分區(qū)或索引分區(qū)的屬性 會(huì) 自動(dòng) 繼承對(duì)應(yīng)表或索引的屬性,這 些屬性包括物理 存儲(chǔ) 參數(shù)、 統(tǒng)計(jì)分析、 日志監(jiān)控、狀態(tài)等等。 當(dāng)然除非表分 Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 26 頁(yè) 區(qū)或索引分區(qū)有自己的屬性設(shè)置,并且這些屬性也是可以手工修改的。 如下的例子將 修改分區(qū)表 partition_list 的分區(qū)屬性,見(jiàn)下面的執(zhí)行語(yǔ)句: 當(dāng)然我們也可在創(chuàng)建分區(qū)表或分區(qū)索引的時(shí)候指定每個(gè)表分區(qū)或索引分區(qū)的各種索引,否則的話將默認(rèn)為相應(yīng)分區(qū)表或分區(qū)索引的屬性。 行遷移 分區(qū)表在作 update更新操作時(shí),若對(duì)應(yīng)分區(qū)鍵值也發(fā)生了更新,將有可能導(dǎo)致更新的數(shù)據(jù)行 不再匹配已有的分區(qū)規(guī)則, 這時(shí)若分區(qū)表不支持行遷移的話將發(fā)生異常 ORA14402, 導(dǎo)致更新不成功。如果 分區(qū)表 支持行遷移 則將使得更新的數(shù)據(jù)行依據(jù)分區(qū)規(guī)則轉(zhuǎn)入另外的分區(qū)中。見(jiàn)如下的例子: Oracle 數(shù)據(jù)庫(kù)中分區(qū)技術(shù)指導(dǎo)手冊(cè) 第 27 頁(yè) Id 為 7
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1