為散列分區(qū)表增加分區(qū)課件_第1頁
為散列分區(qū)表增加分區(qū)課件_第2頁
為散列分區(qū)表增加分區(qū)課件_第3頁
為散列分區(qū)表增加分區(qū)課件_第4頁
為散列分區(qū)表增加分區(qū)課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1第10章

其他的模式對象在Oracle中,除表、索引和索引組織表外,視圖、序列,簇和簇表等也是重要的模式對象。在本章中,首先將介紹如何創(chuàng)建分區(qū)表,以及基于分區(qū)表的索引,然后介紹Oracle利用外部數(shù)據(jù)的一種方法——外部表,最后對其他一些模式對象,包括簇、臨時表、視圖、序列和同義詞等常用模式對象進(jìn)行簡單介紹。。1第10章其他的模式對象在Oracle中,2本章知識要點(diǎn):分區(qū)表各類型的分區(qū)分區(qū)索引使用外部表查詢數(shù)據(jù)臨時表的使用理解什么是簇和簇表創(chuàng)建索引簇創(chuàng)建散列簇使有視圖使用序列使用同義詞2本章知識要點(diǎn):分區(qū)表310.1管理表分區(qū)與索引分區(qū) 在當(dāng)前的企業(yè)應(yīng)用中,需要處理的數(shù)據(jù)量可以達(dá)到幾十到幾百GB,甚至TB級。為了提高對這些巨型數(shù)據(jù)庫和巨型表的讀寫速度,Oracle提供一種分區(qū)技術(shù)。用戶可以在創(chuàng)建表時應(yīng)用分區(qū)技術(shù),將數(shù)據(jù)分區(qū)保存。310.1管理表分區(qū)與索引分區(qū) 在當(dāng)前的企10.1.1分區(qū)的概念分區(qū)是指將巨型的表或索引分割成相對較小的、可獨(dú)立管理的部分,這些獨(dú)立的部分稱為原來表或索引的分區(qū)。分區(qū)后的表與未分區(qū)的表在執(zhí)行查詢語句或其他DML語句時沒有任何區(qū)別,一旦進(jìn)行分區(qū)之后,還可以使用DDL語句對每個單獨(dú)的分區(qū)進(jìn)行操作。因此,對巨型表或者索引進(jìn)行分區(qū)后,能夠簡化對它們的管理和維護(hù)操作,而且分區(qū)對于最終用戶和應(yīng)用程序是完全透明的。410.1.1分區(qū)的概念分區(qū)是指將巨型的表或10.1.2建立分區(qū)表 在Oracle11g數(shù)據(jù)庫中,根據(jù)對表或索引的分區(qū)方法可以創(chuàng)建五種類型的分區(qū)表:范圍分區(qū)、散列分區(qū)、列表分區(qū)、組合范圍散列分區(qū)和組合范圍列表分區(qū)。每種分區(qū)表都有自己的特點(diǎn),在創(chuàng)建分區(qū)表時,應(yīng)當(dāng)根據(jù)表應(yīng)用情況選擇合理的分區(qū)類型。510.1.2建立分區(qū)表 在Oracl610.1.3修改分區(qū)表對分區(qū)表而言,可以像普通表一樣使用ALTERTABLE語句進(jìn)行修改。因此,本節(jié)主要介紹分區(qū)表所特有修改。1.為范圍分區(qū)表添加分區(qū)2.為散列分區(qū)表增加分區(qū)3.為列表分區(qū)表增加分區(qū)4.為范圍散列組合分區(qū)表增加主分區(qū)和子分區(qū)5.為范圍列表分區(qū)表增加主分區(qū)和子分區(qū)6.刪除分區(qū)7.交換分區(qū)數(shù)據(jù)8.修改分區(qū)表名稱9.合并分區(qū)10.重組分區(qū)610.1.3修改分區(qū)表對分區(qū)表而言,可710.1.4分區(qū)索引和全局索引對于分區(qū)表而言,每個表分區(qū)對應(yīng)一個分區(qū)段。當(dāng)在分區(qū)表上建立索引時,即可以建立全局索引,也可以建立分區(qū)索引。對于合局索引,其索引數(shù)據(jù)會存放在一個索引段中;而對于分區(qū)索引,則索引數(shù)據(jù)都會被存放到幾個索引分區(qū)段中。對索引進(jìn)行分區(qū)的目的與對表進(jìn)行分區(qū)是一樣的,都是為了更加易于管理和維護(hù)巨型對象。710.1.4分區(qū)索引和全局索引對于分區(qū)表10.2外部表 外部表是表結(jié)構(gòu)被存儲在數(shù)據(jù)字典中,而表數(shù)據(jù)被存放在OS文件中的表。通過使用外部表,不僅可以在數(shù)據(jù)庫中查詢OS文件的數(shù)據(jù),還可以使用INSERT方式將OS文件數(shù)據(jù)裝載到數(shù)據(jù)庫中,從而實(shí)現(xiàn)SQL*Loader所提供的功能。810.2外部表 外部表是表結(jié)構(gòu)被存儲在數(shù)據(jù)10.2.1建立外部表 建立外部表也是使用CREATETABLE語句來完成的,但建立外部表是必須指定ORGANIZATIONEXTERNAL子句。與建立普通表不同,建立外部表包括兩部分:一部分描述列的數(shù)據(jù)類型,另一部分描述OS文件數(shù)據(jù)與表列的對應(yīng)關(guān)系。910.2.1建立外部表 建立外部表也是使用C1010.2.2處理外部表錯誤在將數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為表中列數(shù)據(jù)時,不可避免會現(xiàn)一些錯誤。當(dāng)出現(xiàn)錯誤時,用戶就需要收集錯誤信息,從中找到導(dǎo)致出現(xiàn)錯誤的原因并加以糾正。在創(chuàng)建外部表時,關(guān)于錯誤處理的子句包括:REJECTLIMIT、BADFILE和LOGFILE子句。1010.2.2處理外部表錯誤在將數(shù)據(jù)文1110.2.3修改外部表當(dāng)在操作系統(tǒng)環(huán)境中修改了數(shù)據(jù)文件所對應(yīng)的OS路徑后,為了使用Oracle能夠正確標(biāo)識OS文件所在的目錄,則必須改變DIRECTORY對象。例如,下面的語句修改外部表EXT_EMP的默認(rèn)DIRECTORY對象為EXT_NEW:SQL>altertableext_empdefaultdirectext_new;1110.2.3修改外部表當(dāng)在操作系統(tǒng)環(huán)境10.3臨時表Oracle的臨時表與其他關(guān)系數(shù)據(jù)庫中的不同,Oracle中的監(jiān)時表是“靜態(tài)”的,也就是說,用戶不需要在每次使用臨時表時重新建立,它與普通的數(shù)據(jù)表一樣被數(shù)據(jù)庫保存,其結(jié)構(gòu)從創(chuàng)建開始直到被刪除期間一直是有效的,并且被作為模式對象存在數(shù)據(jù)字典中。通過這種方法,可以避免每當(dāng)用戶應(yīng)用中需要使用臨時表存儲數(shù)據(jù)時必須重新創(chuàng)建臨時表。1210.3臨時表Oracle的臨時表與其他關(guān)10.4簇與簇表 簇是一種用于存儲數(shù)據(jù)表中數(shù)據(jù)的方法。簇實(shí)際上是一組表,由一組共享相同數(shù)據(jù)塊的多個表組成。因?yàn)檫@些表有公共的列并且經(jīng)常一起被使用,所以將這些表組合在一起,不僅降低了簇鍵列所占用的磁盤空間,而且可以大大降低特定SQL操作的I/O次數(shù),從而提高數(shù)據(jù)訪問性能。1310.4簇與簇表 簇是一種用于存儲數(shù)據(jù)表中10.4.1索引簇 索引簇是指使用索引定義簇鍵列數(shù)據(jù)的方法。如果用戶需要執(zhí)行連接查詢顯示主從表的數(shù)據(jù),則應(yīng)該將主從表組織到索引簇。1410.4.1索引簇 索引簇是指使用索引定義1510.4.2散列簇散列簇是指使用散列(HASH)函數(shù)定位行的位置。通過散列簇,可以將靜態(tài)表的數(shù)據(jù)均勻地分布到數(shù)據(jù)塊中。將表組織到散列簇后,如果使用WHERE子句中引用簇鍵列,Oracle會根據(jù)散列函數(shù)結(jié)果定位表行數(shù)據(jù)。合理地使用散列簇,可以大大降低磁盤I/O,從而提高數(shù)據(jù)訪問性能。1510.4.2散列簇散列簇是指使用散列(1610.4.3顯示簇信息建立索引簇或散列簇時,Oracle會將簇的相關(guān)信息存放到數(shù)據(jù)字典中,通過查詢數(shù)據(jù)字典視圖USER_CLUSTERS,可以顯示當(dāng)前用戶所有簇的信息。例如,下面的語句將顯示SCOTT用戶所包含的所有簇:SQL>selectcluster_name,tablespace_name,key_size2fromuser_clusters;CLUSTER_NAMETABLESPACE_NAMEKEY_SIZE----------------------------------------------------------------------EMPLOYEE_CLUSPACE01500DEPT_EMP_CLUSPACE0110241610.4.3顯示簇信息建立索引簇或散列10.5管理視圖視圖是一個虛擬表,它由存儲的查詢構(gòu)成,可以將它的輸出看作是一個表。視圖同真實(shí)的表一樣,也包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中存儲的數(shù)據(jù)值,其數(shù)據(jù)值是來自定義視圖的查詢語句所引用的表,數(shù)據(jù)庫只在數(shù)據(jù)字典中存儲了視圖的定義信息。1710.5管理視圖視圖是一個虛擬表,它由存儲10.5.1創(chuàng)建視圖 創(chuàng)建視圖是使用CREATEVIEW語句完成的。為了在當(dāng)前用戶模式中創(chuàng)建視圖,要求數(shù)據(jù)庫用戶必須具有CREATEVIEW系統(tǒng)權(quán)限;如果要在其他用戶模工中創(chuàng)建視圖,則用戶必須具有CREATEANYVIEW系統(tǒng)權(quán)限。1810.5.1創(chuàng)建視圖 創(chuàng)建視圖是使用CREA10.6管理序列 序列是Oracle提供的用于生成一系列惟一數(shù)字的數(shù)據(jù)庫對象。序列會自動成生順序遞增的序列號,以實(shí)現(xiàn)自動提供惟一的主鍵值。序列可以在多用戶并發(fā)環(huán)境中使用,并且可以為所有用戶生成不重復(fù)的順序數(shù)字,而不需要任何額外的I/O開銷。1910.6管理序列 序列是Oracle提供的用10.6.1創(chuàng)建序列序列與視圖一樣,并不占用實(shí)際的存儲空間,只是在數(shù)據(jù)字典中保存它的定義信息。用戶在自己的模式中創(chuàng)建序列時,必須具有CREATESEQUENCE系統(tǒng)權(quán)限。如果要在其他模式中創(chuàng)建序列,必須具有CREATEANYSEQUENCE系統(tǒng)權(quán)限。2010.6.1創(chuàng)建序列序列與視圖一樣,并不占10.5.1創(chuàng)建視圖 創(chuàng)建視圖是使用CREATEVIEW語句完成的。為了在當(dāng)前用戶模式中創(chuàng)建視圖,要求數(shù)據(jù)庫用戶必須具有CREATEVIEW系統(tǒng)權(quán)限;如果要在其他用戶模工中創(chuàng)建視圖,則用戶必須具有CREATEANYVIEW系統(tǒng)權(quán)限。2110.5.1創(chuàng)建視圖 創(chuàng)建視圖是使用CREA10.6.2修改序列 使用ALTERSEQUENCE語句可以對序列進(jìn)行修改。需要注意,除了序列的起始值STARTWITH不能被修改,其他可以設(shè)置序列的任何子句和參數(shù)都可以修改。如果要修改序列的起始值,則必須先刪除序列,然后再重建該序列。2210.6.2修改序列 使用ALTERSEQ10.5.2管理視圖 同義詞是表、索引、視圖等模式對象的一個別名。通過模式對象創(chuàng)建同義詞,可以隱藏對象的實(shí)際名稱和所有者信息,或者隱藏分布式數(shù)據(jù)庫中遠(yuǎn)程對象的們置信息,由此為對象提供一定的安全性保證。與視圖、序列一樣,同義詞只在Oracle數(shù)據(jù)庫的數(shù)據(jù)字典中保存其定義描述,因此同義詞并不占用任何實(shí)際的存儲空間。2310.5.2管理視圖 同義詞是表、索引、視24第10章

其他的模式對象在Oracle中,除表、索引和索引組織表外,視圖、序列,簇和簇表等也是重要的模式對象。在本章中,首先將介紹如何創(chuàng)建分區(qū)表,以及基于分區(qū)表的索引,然后介紹Oracle利用外部數(shù)據(jù)的一種方法——外部表,最后對其他一些模式對象,包括簇、臨時表、視圖、序列和同義詞等常用模式對象進(jìn)行簡單介紹。。1第10章其他的模式對象在Oracle中,25本章知識要點(diǎn):分區(qū)表各類型的分區(qū)分區(qū)索引使用外部表查詢數(shù)據(jù)臨時表的使用理解什么是簇和簇表創(chuàng)建索引簇創(chuàng)建散列簇使有視圖使用序列使用同義詞2本章知識要點(diǎn):分區(qū)表2610.1管理表分區(qū)與索引分區(qū) 在當(dāng)前的企業(yè)應(yīng)用中,需要處理的數(shù)據(jù)量可以達(dá)到幾十到幾百GB,甚至TB級。為了提高對這些巨型數(shù)據(jù)庫和巨型表的讀寫速度,Oracle提供一種分區(qū)技術(shù)。用戶可以在創(chuàng)建表時應(yīng)用分區(qū)技術(shù),將數(shù)據(jù)分區(qū)保存。310.1管理表分區(qū)與索引分區(qū) 在當(dāng)前的企10.1.1分區(qū)的概念分區(qū)是指將巨型的表或索引分割成相對較小的、可獨(dú)立管理的部分,這些獨(dú)立的部分稱為原來表或索引的分區(qū)。分區(qū)后的表與未分區(qū)的表在執(zhí)行查詢語句或其他DML語句時沒有任何區(qū)別,一旦進(jìn)行分區(qū)之后,還可以使用DDL語句對每個單獨(dú)的分區(qū)進(jìn)行操作。因此,對巨型表或者索引進(jìn)行分區(qū)后,能夠簡化對它們的管理和維護(hù)操作,而且分區(qū)對于最終用戶和應(yīng)用程序是完全透明的。2710.1.1分區(qū)的概念分區(qū)是指將巨型的表或10.1.2建立分區(qū)表 在Oracle11g數(shù)據(jù)庫中,根據(jù)對表或索引的分區(qū)方法可以創(chuàng)建五種類型的分區(qū)表:范圍分區(qū)、散列分區(qū)、列表分區(qū)、組合范圍散列分區(qū)和組合范圍列表分區(qū)。每種分區(qū)表都有自己的特點(diǎn),在創(chuàng)建分區(qū)表時,應(yīng)當(dāng)根據(jù)表應(yīng)用情況選擇合理的分區(qū)類型。2810.1.2建立分區(qū)表 在Oracl2910.1.3修改分區(qū)表對分區(qū)表而言,可以像普通表一樣使用ALTERTABLE語句進(jìn)行修改。因此,本節(jié)主要介紹分區(qū)表所特有修改。1.為范圍分區(qū)表添加分區(qū)2.為散列分區(qū)表增加分區(qū)3.為列表分區(qū)表增加分區(qū)4.為范圍散列組合分區(qū)表增加主分區(qū)和子分區(qū)5.為范圍列表分區(qū)表增加主分區(qū)和子分區(qū)6.刪除分區(qū)7.交換分區(qū)數(shù)據(jù)8.修改分區(qū)表名稱9.合并分區(qū)10.重組分區(qū)610.1.3修改分區(qū)表對分區(qū)表而言,可3010.1.4分區(qū)索引和全局索引對于分區(qū)表而言,每個表分區(qū)對應(yīng)一個分區(qū)段。當(dāng)在分區(qū)表上建立索引時,即可以建立全局索引,也可以建立分區(qū)索引。對于合局索引,其索引數(shù)據(jù)會存放在一個索引段中;而對于分區(qū)索引,則索引數(shù)據(jù)都會被存放到幾個索引分區(qū)段中。對索引進(jìn)行分區(qū)的目的與對表進(jìn)行分區(qū)是一樣的,都是為了更加易于管理和維護(hù)巨型對象。710.1.4分區(qū)索引和全局索引對于分區(qū)表10.2外部表 外部表是表結(jié)構(gòu)被存儲在數(shù)據(jù)字典中,而表數(shù)據(jù)被存放在OS文件中的表。通過使用外部表,不僅可以在數(shù)據(jù)庫中查詢OS文件的數(shù)據(jù),還可以使用INSERT方式將OS文件數(shù)據(jù)裝載到數(shù)據(jù)庫中,從而實(shí)現(xiàn)SQL*Loader所提供的功能。3110.2外部表 外部表是表結(jié)構(gòu)被存儲在數(shù)據(jù)10.2.1建立外部表 建立外部表也是使用CREATETABLE語句來完成的,但建立外部表是必須指定ORGANIZATIONEXTERNAL子句。與建立普通表不同,建立外部表包括兩部分:一部分描述列的數(shù)據(jù)類型,另一部分描述OS文件數(shù)據(jù)與表列的對應(yīng)關(guān)系。3210.2.1建立外部表 建立外部表也是使用C3310.2.2處理外部表錯誤在將數(shù)據(jù)文件中的數(shù)據(jù)轉(zhuǎn)換為表中列數(shù)據(jù)時,不可避免會現(xiàn)一些錯誤。當(dāng)出現(xiàn)錯誤時,用戶就需要收集錯誤信息,從中找到導(dǎo)致出現(xiàn)錯誤的原因并加以糾正。在創(chuàng)建外部表時,關(guān)于錯誤處理的子句包括:REJECTLIMIT、BADFILE和LOGFILE子句。1010.2.2處理外部表錯誤在將數(shù)據(jù)文3410.2.3修改外部表當(dāng)在操作系統(tǒng)環(huán)境中修改了數(shù)據(jù)文件所對應(yīng)的OS路徑后,為了使用Oracle能夠正確標(biāo)識OS文件所在的目錄,則必須改變DIRECTORY對象。例如,下面的語句修改外部表EXT_EMP的默認(rèn)DIRECTORY對象為EXT_NEW:SQL>altertableext_empdefaultdirectext_new;1110.2.3修改外部表當(dāng)在操作系統(tǒng)環(huán)境10.3臨時表Oracle的臨時表與其他關(guān)系數(shù)據(jù)庫中的不同,Oracle中的監(jiān)時表是“靜態(tài)”的,也就是說,用戶不需要在每次使用臨時表時重新建立,它與普通的數(shù)據(jù)表一樣被數(shù)據(jù)庫保存,其結(jié)構(gòu)從創(chuàng)建開始直到被刪除期間一直是有效的,并且被作為模式對象存在數(shù)據(jù)字典中。通過這種方法,可以避免每當(dāng)用戶應(yīng)用中需要使用臨時表存儲數(shù)據(jù)時必須重新創(chuàng)建臨時表。3510.3臨時表Oracle的臨時表與其他關(guān)10.4簇與簇表 簇是一種用于存儲數(shù)據(jù)表中數(shù)據(jù)的方法。簇實(shí)際上是一組表,由一組共享相同數(shù)據(jù)塊的多個表組成。因?yàn)檫@些表有公共的列并且經(jīng)常一起被使用,所以將這些表組合在一起,不僅降低了簇鍵列所占用的磁盤空間,而且可以大大降低特定SQL操作的I/O次數(shù),從而提高數(shù)據(jù)訪問性能。3610.4簇與簇表 簇是一種用于存儲數(shù)據(jù)表中10.4.1索引簇 索引簇是指使用索引定義簇鍵列數(shù)據(jù)的方法。如果用戶需要執(zhí)行連接查詢顯示主從表的數(shù)據(jù),則應(yīng)該將主從表組織到索引簇。3710.4.1索引簇 索引簇是指使用索引定義3810.4.2散列簇散列簇是指使用散列(HASH)函數(shù)定位行的位置。通過散列簇,可以將靜態(tài)表的數(shù)據(jù)均勻地分布到數(shù)據(jù)塊中。將表組織到散列簇后,如果使用WHERE子句中引用簇鍵列,Oracle會根據(jù)散列函數(shù)結(jié)果定位表行數(shù)據(jù)。合理地使用散列簇,可以大大降低磁盤I/O,從而提高數(shù)據(jù)訪問性能。1510.4.2散列簇散列簇是指使用散列(3910.4.3顯示簇信息建立索引簇或散列簇時,Oracle會將簇的相關(guān)信息存放到數(shù)據(jù)字典中,通過查詢數(shù)據(jù)字典視圖USER_CLUSTERS,可以顯示當(dāng)前用戶所有簇的信息。例如,下面的語句將顯示SCOTT用戶所包含的所有簇:SQL>selectcluster_name,tablespace_name,key_size2fromuser_clusters;CLUSTER_NAMETABLESPACE_NAMEKEY_SIZE----------------------------------------------------------------------EMPLOYEE_CLUSPACE01500DEPT_EMP_CLUSPACE0110241610.4.3顯示簇信息建立索引簇或散列10.5管理視圖視圖是一個虛擬表,它由存儲的查詢構(gòu)成,可以將它的輸出看作是一個表。視圖同真實(shí)的表一樣,也包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中存儲的數(shù)據(jù)值,其數(shù)據(jù)值是來自定義視圖的查詢語句所引用的表,數(shù)據(jù)庫只在數(shù)據(jù)字典中存儲了視圖的定義信息。4010.5管理視圖視圖是一個虛擬表,它由存儲10.5.1創(chuàng)建視圖 創(chuàng)建視圖是使用CREATEVIEW語句完成的。為了在當(dāng)前用戶模式中創(chuàng)建視圖,要求數(shù)據(jù)庫用戶必須具有CREATEVIEW系統(tǒng)權(quán)限;如果要在其他用戶模工中創(chuàng)建視圖,則用戶必須具有CREATEANYVIEW系統(tǒng)權(quán)限。4110.5.1創(chuàng)建視圖

溫馨提示

  • 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

提交評論