




已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Oracle 10g管理工具的使用DBA可以使用的管理工具OUI (Oracle Universal Installer)啟動(dòng)方式: 所有程序Oracle-OraDb10g_home1Oracle Installation ProductsUniversal Installer功能:OUI是基于Java技術(shù)的圖形界面安裝工具,可以利用它完成不同操作系統(tǒng)、不同類型的、不同版本的Oracle軟件安裝及查看已經(jīng)安裝的產(chǎn)品。DBCA啟動(dòng)方式: 所有程序Oracle-OraDb10g_home1Configuration and Migration ToolsDatabase Configuration Assisant 也可以在命令提示符下:輸入dbca功能: 創(chuàng)建數(shù)據(jù)庫 配置現(xiàn)有數(shù)據(jù)庫中的數(shù)據(jù)庫選項(xiàng) 刪除數(shù)據(jù)庫 管理數(shù)據(jù)庫模板OEM登陸方法OEM是基于java技術(shù),并且是以B/S模式運(yùn)作的一個(gè)很重要的Oracle數(shù)據(jù)庫的管理工具。OEM登陸方法: 在瀏覽器地址欄中輸入: http:/主機(jī)名:1158/em , 回車即可出現(xiàn)登陸界面.在$ORACLE_HOMEinstallportlist.ini中找到需要的端口號(hào) OEM登陸界面超級(jí)用戶登陸OEM的方法1 . 用sys 用戶登陸,必須是sysdba或sysoper身份。 2 . 用system用戶登錄,必須是normal身份。將OEM管理權(quán)限授予其他用戶如果想通過其他用戶來管理OEM, 設(shè)置方式: OEM 界面的右上角 “設(shè)置” , 點(diǎn)開在設(shè)置頁面上,可以看到OEM的管理員,如圖:OEM的使用利用OEM可以執(zhí)行一些管理任務(wù)。關(guān)閉和啟動(dòng)數(shù)據(jù)庫創(chuàng)建、刪除、修改各種對(duì)象查看數(shù)據(jù)庫例程(分配的內(nèi)存及后臺(tái)進(jìn)程)的性能及狀態(tài)信息。管理用戶備份和恢復(fù)數(shù)據(jù)庫導(dǎo)入和導(dǎo)出數(shù)據(jù)EMSQL*Plus何為SQL*Plus?SQL*Plus的啟動(dòng)和退出SQL*Plus的連接和斷開SQL*Plus的輸入、編輯、運(yùn)行命令自定義SQL*Plus的環(huán)境格式化查詢結(jié)果SQL*Plus是Oracle公司獨(dú)立的SQL語言工具產(chǎn)品,Plus表示Oracle公司在標(biāo)準(zhǔn)SQL基礎(chǔ)上進(jìn)行了擴(kuò)充。它是Oracle系列產(chǎn)品中的一個(gè)非常重要的、在服務(wù)器端和客戶端都可以使用的工具。它提供了一個(gè)圖形化的界面。iSQL*Plus是SQL*Plus的基于Web瀏覽器的接口。SQL*PLUS的啟動(dòng)啟動(dòng)方式1: 開始- 程序 - Oracle-Oradb10g_home1 Application DevelopmentSQL Plus啟動(dòng)方式2: 在命令提示符下 1. sqlplus /nolog - - nolog表示nologin 如:conn sys/o123 as sysdba; 2. sqlplusw /nolog - - w代表以窗口來啟動(dòng) 如:conn sys/o123 as sysdba;SQL*Plus的退出在SQL 提示符下,輸入命令:exit ,回車即可。 如: SQL exit ;File ExitSQL*Plus的連接和斷開如果在SQL*Plus的環(huán)境下,要更換用戶,可以不退出SQL*Plus的情況下,先斷開當(dāng)前用戶,然后再連接其他用戶。連接: 1. SQL conn sys/o123 as sysdba; 2. SQL conn Enter user-name: system Enter password: Connected.斷開: SQL discSQL*Plus的輸入、編輯、運(yùn)行命令輸入命令:告訴SQL*Plus干什么??梢暂斎氲拿钣腥N類型:SQL命令: 標(biāo)準(zhǔn)SQL命令,用于操作數(shù)據(jù)庫中的信息。PL*SQL塊: 用于操作數(shù)據(jù)庫中的信息。SQL*Plus命令: 編輯、保存、運(yùn)行、格式化查詢結(jié)果,及定義SQL*Plus的環(huán)境等。 如:conn ,disc ,exit , set ,save ,edit等。SQL*Plus 編輯命令及功能SQL*Plus 的文件操作命令及功能SQL*Plus的運(yùn)行命令在一個(gè)完整的SQL語句之后,輸入; 或 / ,然后回車即可。在緩沖區(qū)中的SQL語句,直接輸入Run 或 /, 運(yùn)行。運(yùn)行腳本: SQL start c:1.sql; 回車 SQL c:1.sql; 回車關(guān)于腳本文件創(chuàng)建保存: SQL save c:2.sql;獲?。?SQL get c:2.sql;運(yùn)行: SQL start c:1.sql; SQL c:1.sql; 編輯: 自定義SQL*Plus環(huán)境Show命令:顯示環(huán)境變量 Show all :顯示當(dāng)前環(huán)境中所有的環(huán)境設(shè)置參數(shù)。 Show 某一參數(shù):顯示當(dāng)前環(huán)境中該參數(shù)的設(shè)置值。Set命令:設(shè)置環(huán)境變量 如:SQL set linesize 200也可以在圖形化界面上進(jìn)行設(shè)置。 Options菜單Environment 在如下彈出窗口中設(shè)置:如果希望每次啟動(dòng)SQL*Plus時(shí)都會(huì)自動(dòng)使用特定的環(huán)境變量的設(shè)置,則可以修改DB_1sqlplusadmin目錄下的glogin.sql腳本文件。當(dāng)然 ,要先對(duì)glogin.sql進(jìn)行編輯。iSql*Plusisql*Plus是SQL*Plus的基于Web的接口,是SQL*Plus產(chǎn)品的一個(gè)組件。啟動(dòng)isql*Plus的方法: 1. 在OEM中啟動(dòng) 2. 在瀏覽器中啟動(dòng)在瀏覽器中啟動(dòng) 在用戶名中輸入數(shù)據(jù)用戶,口令中輸入密碼,連接字符串默認(rèn)okOFA (Optimal Flexible Architecture)又稱Oracle 10g最佳靈活體系結(jié)構(gòu)。是指一組較好的Oracle軟件和數(shù)據(jù)文件及目錄的命名約定和存儲(chǔ)位置規(guī)則,使用戶可以很容易地找到與Oracle數(shù)據(jù)庫相關(guān)的文件集合。使管理更直觀方便。Oracle的數(shù)據(jù)字典數(shù)據(jù)字典組成 數(shù)據(jù)字典表 數(shù)據(jù)字典視圖數(shù)據(jù)字典視圖 (靜態(tài))動(dòng)態(tài)性能視圖 在OEM中查詢數(shù)據(jù)字典數(shù)據(jù)字典數(shù)據(jù)字典表數(shù)據(jù)字典表主要保存以下信息:各種方案對(duì)象的定義信息,如表、視圖、索引、同義詞、序列、存儲(chǔ)過程、函數(shù)、包、觸發(fā)器和各種對(duì)象;存儲(chǔ)空間的分配信息;安全信息(帳戶、權(quán)限、角色等)例程運(yùn)行時(shí)的性能和統(tǒng)計(jì)信息其他數(shù)據(jù)庫本身的基本信息數(shù)據(jù)字典的用途Oracle通過查詢數(shù)據(jù)字典表或數(shù)據(jù)字典視圖來獲取有關(guān)用戶、方案對(duì)象、對(duì)象的定義信息;每次執(zhí)行DDL語句修改方案對(duì)象和對(duì)象后,Oracle都在數(shù)據(jù)字典中記錄下所做的修改;用戶可以從數(shù)據(jù)字典的只讀視圖中,獲取各種與對(duì)象方案和對(duì)象有關(guān)的信息;DBA可以從數(shù)據(jù)字典的動(dòng)態(tài)性能視圖中,監(jiān)視例程的運(yùn)行狀態(tài),為性能調(diào)整提供依據(jù).數(shù)據(jù)字典的組成數(shù)據(jù)字典中的信息存儲(chǔ)在表和視圖中。數(shù)據(jù)字典的組成: 數(shù)據(jù)字典表:保存了加密的服務(wù)器系統(tǒng)信息。 數(shù)據(jù)字典視圖:把數(shù)據(jù)字典表中的信息經(jīng)過解密和其他的加工處理后形成的。主要是將各種信息分權(quán)限、分類存放,便于用戶使用。只有Oracle才負(fù)責(zé)對(duì)數(shù)據(jù)字典表進(jìn)行管理和維護(hù),任何用戶不能修改它。數(shù)據(jù)字典表數(shù)據(jù)字典視圖數(shù)據(jù)字典表中的信息經(jīng)過解密和一些加工處理后,以視圖的方式呈現(xiàn)給用戶。主要是將各種信息分權(quán)限、分類存放,便于用戶使用。大多數(shù)用戶都可以通過數(shù)據(jù)字典視圖查詢所需要的與數(shù)據(jù)庫相關(guān)的系統(tǒng)信息。數(shù)據(jù)字典視圖數(shù)據(jù)字典的使用數(shù)據(jù)字典視圖根據(jù)名字前綴分為三類: USER_ 用戶視圖 自己擁有的對(duì)象 ALL_ 擴(kuò)展用戶視圖 自己擁有 + 被授權(quán)的 DBA_ 數(shù)據(jù)庫管理員視圖 全部對(duì)象在例程的運(yùn)行過程中,Oracle會(huì)在數(shù)據(jù)字典中維護(hù)一系列虛擬的表,在其中記錄與數(shù)據(jù)庫活動(dòng)相關(guān)的性能統(tǒng)計(jì)信息,這些表被稱為動(dòng)態(tài)性能表。這些虛擬的表不是固定的表,它們?cè)诶虇?dòng)時(shí)被創(chuàng)建,并向其中添加信息,而當(dāng)例程消亡時(shí),這些表也就刪除了。信息主要來源于SGA和控制文件。動(dòng)態(tài)性能視圖屬于SYS用戶。Oracle自動(dòng)在動(dòng)態(tài)性能表上創(chuàng)建了一些視圖,即動(dòng)態(tài)性能視圖。所有動(dòng)態(tài)性能視圖都以v_$開頭。Oracle為這些視圖創(chuàng)建了公用同義詞v$,因此動(dòng)態(tài)性能視圖也被稱為v$視圖。Oracle體系結(jié)構(gòu)Oracle服務(wù)器的工作原理處理過程可以簡(jiǎn)單的描述為:用戶在其機(jī)器上運(yùn)行基于Oracle的應(yīng)用程序(如:SQL*PLUS、PL/SQL Developer等),即啟動(dòng)用戶進(jìn)程.客戶機(jī)、服務(wù)器之間建立連接(Connect).服務(wù)器為用戶建立會(huì)話(Session),并為該會(huì)話建立一個(gè)PGA(Program Global Area,程序全局區(qū))以存儲(chǔ)與該會(huì)話相關(guān)的信息.在同一個(gè)連接中,不同的用戶有不同的會(huì)話.啟動(dòng)服務(wù)進(jìn)程,由該服務(wù)進(jìn)程負(fù)責(zé)執(zhí)行該會(huì)話的各項(xiàng)任務(wù).用戶進(jìn)程發(fā)送SQL語句(select、update、commit.)服務(wù)器進(jìn)程解析、編譯、執(zhí)行SQL語句,然后將結(jié)果寫入數(shù)據(jù)庫并返回結(jié)果給用戶進(jìn)程。用戶進(jìn)程接收返回的SQL執(zhí)行結(jié)果。在應(yīng)用程序中顯示SQL執(zhí)行結(jié)果.體系結(jié)構(gòu)及其組件綜述圖示內(nèi)容如下:Oracle的體系結(jié)構(gòu)可分客戶端、服務(wù)器兩大部分。客戶端:在客戶機(jī)上安裝管理工具后,運(yùn)行工具啟動(dòng)用戶進(jìn)程。服務(wù)器:包括例程和數(shù)據(jù)庫兩部分。 例程:包括SGA及后臺(tái)進(jìn)程。 數(shù)據(jù)庫:包括控制文件、數(shù)據(jù)文件、日志文件等操作系統(tǒng)文件.Oracle 服務(wù)器Oracle 數(shù)據(jù)庫服務(wù)器:主要由兩部分組成: 物理數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)。物理數(shù)據(jù)庫是保存數(shù)據(jù)的物理存儲(chǔ)設(shè)備。數(shù)據(jù)庫管理系統(tǒng)是用戶與物理數(shù)據(jù)庫之間的一個(gè)中間是軟件層,又稱例程。有一定的結(jié)構(gòu)?;蚍Q數(shù)據(jù)庫服務(wù)器由例程和數(shù)據(jù)庫組成 如果把Oracle數(shù)據(jù)庫比作一部汽車,instance相當(dāng)于汽車的發(fā)動(dòng)機(jī)一樣,啟動(dòng)oracle數(shù)據(jù)庫前提應(yīng)先啟動(dòng)instance.當(dāng)用戶連接到數(shù)據(jù)庫并使用數(shù)據(jù)庫時(shí),實(shí)際上是連接到該數(shù)據(jù)庫的例程,通過例程來連接、使用數(shù)據(jù)庫。所以例程是用戶和數(shù)據(jù)庫之間的中間層。例程與數(shù)據(jù)庫的區(qū)別:數(shù)據(jù)庫指的是存儲(chǔ)數(shù)據(jù)的物理結(jié)構(gòu),總是實(shí)際存在的;例程則是由內(nèi)存結(jié)構(gòu)和一系列進(jìn)程組成,可以啟動(dòng)和關(guān)閉。SID(系統(tǒng)標(biāo)識(shí)符)一臺(tái)計(jì)算機(jī)上可以創(chuàng)建多個(gè)Oracle數(shù)據(jù)庫,一個(gè)數(shù)據(jù)庫上可以有多個(gè)例程。為了使例程間不混淆,每個(gè)例程都稱為:SID(SystemIDentify)加以區(qū)分。例 程的組成連接到例程建立連接和會(huì)話 :建立用戶連接建立會(huì)話數(shù)據(jù)庫Oracle數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu) 物理存儲(chǔ)結(jié)構(gòu)是現(xiàn)實(shí)的數(shù)據(jù)存儲(chǔ)單元,對(duì)應(yīng)于操作系統(tǒng)文件。Oracle數(shù)據(jù)庫就是由駐留在服務(wù)器的磁盤上的這些操作系統(tǒng)文件所組成的。這些文件有數(shù)據(jù)文件、日志文件、控制文件。物理存儲(chǔ)結(jié)構(gòu)物理結(jié)構(gòu)主要包括以下三種文件:控制文件數(shù)據(jù)文件重做日志數(shù)據(jù)文件(Data File)數(shù)據(jù)文件(Data File)是物理存儲(chǔ)Oracle數(shù)據(jù)庫數(shù)據(jù)的文件。其特點(diǎn)如下: 每一個(gè)數(shù)據(jù)文件只與一個(gè)數(shù)據(jù)庫相聯(lián)系。 一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文件。 一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間。重做日志文件(Redo File) 重做日志文件(Redo Log File)記錄所有對(duì)數(shù)據(jù)庫數(shù)據(jù)的修改,以備恢復(fù)數(shù)據(jù)時(shí)使用。其特點(diǎn)如下: 每一個(gè)數(shù)據(jù)庫至少包含兩個(gè)日志文件組。 日志文件組以循環(huán)方式進(jìn)行寫操作。 每一個(gè)日志文件成員對(duì)應(yīng)一個(gè)物理文件。控制文件 控制文件(Control File)是一個(gè)較小的二進(jìn)制文件,用于描述數(shù)據(jù)庫結(jié)構(gòu)。參數(shù)文件 參數(shù)文件(Parameter File)也被稱為初始化參數(shù)文件,用于存儲(chǔ)SGA、可選的Oracle特性和后臺(tái)進(jìn)程的配置參數(shù)。 當(dāng)數(shù)據(jù)庫啟動(dòng),并在創(chuàng)建例程或讀取控制文件之前,會(huì)先按其中的參數(shù)進(jìn)行例程的配置。 位置:$Oracle_home dbs邏輯存儲(chǔ)結(jié)構(gòu)主要描述Oracle數(shù)據(jù)庫的內(nèi)部存儲(chǔ)結(jié)構(gòu),從技術(shù)概念上描述Oracle數(shù)據(jù)庫中如何組織、管理數(shù)據(jù)。可以分為4部分:表空間、段、區(qū)、塊。表空間 表空間是數(shù)據(jù)庫的邏輯劃分的最大單元,一個(gè)Oracle數(shù)據(jù)庫至少有一個(gè)表空間,即system表空間。安裝完Oracle 10g后,自動(dòng)創(chuàng)建的表空間為:Example 示例表空間,存放例子數(shù)據(jù)庫的方案對(duì)象。SYSTEM 系統(tǒng)表空間,存放關(guān)于表空間名稱、控制文件、數(shù)據(jù)文件等管理信息,它屬于sys、system方案。不能刪除或重命名。SYSAUX 輔助系統(tǒng)表空間 ,用于減少系統(tǒng)表空間的負(fù)荷,提高效率。是Oracle 10g新增加的表空間。TEMP 臨時(shí)表空間,存放臨時(shí)表和臨時(shí)數(shù)據(jù),用于排序。USERS 用戶表空間,存放永久性用戶對(duì)象及私有信息,也稱數(shù)據(jù)表空間。注意:每一個(gè)數(shù)據(jù)庫都應(yīng)該有一個(gè)用戶表空間,以便在創(chuàng)建用戶時(shí)分配給用戶,否則用戶的數(shù)據(jù)將會(huì)使用SYSTEM表空間。UNDOTBS1 重做表,段 (Segment)段是表空間的下一個(gè)邏輯單位,是表空間中一個(gè)指定類型的邏輯存儲(chǔ)結(jié)構(gòu),它由一個(gè)或多個(gè)區(qū)組成,段將占用并增長存儲(chǔ)空間。分類如下 :區(qū)(extent) 區(qū)(Extent)是由物理上連續(xù)存放的塊構(gòu)成,區(qū)是Oracle存儲(chǔ)分配的最小單位,由一個(gè)或多個(gè)塊 組成。 當(dāng)在數(shù)據(jù)庫中創(chuàng)建帶有實(shí)際存儲(chǔ)結(jié)構(gòu)的方案對(duì)象(如表、索引)時(shí),Oracle將為該方案對(duì)象分配若干個(gè)區(qū),以便組成一個(gè)對(duì)應(yīng)的段來為該方案對(duì)象提供初始的存儲(chǔ)空間。當(dāng)段中已分配的區(qū)都寫滿后,Oracle就為該段分配一個(gè)新的區(qū),以便容納更多的數(shù)據(jù)。 分配的第一個(gè)區(qū)稱初始區(qū),以后分配的區(qū)稱增量區(qū)。數(shù)據(jù)庫塊(Block)數(shù)據(jù)庫塊(Database Block)是數(shù)據(jù)庫使用的I/O最小單元,又稱邏輯塊或ORACLE塊。 一個(gè)數(shù)據(jù)庫塊對(duì)應(yīng)一個(gè)或多個(gè)物理操作系統(tǒng)塊,塊的大小由參數(shù)DB_BLOCK_SIZE確定。數(shù)據(jù)塊的大小是操作系統(tǒng)塊大小的整數(shù)倍. 以Win2K為例,操作系統(tǒng)塊(OS block)的大小為4kb,所以O(shè)racle Block的大小可以是4kb,8kb,16kb等等。存儲(chǔ)結(jié)構(gòu)總結(jié)內(nèi)存結(jié)構(gòu)Oracle內(nèi)存結(jié)構(gòu)由兩個(gè)部分組成:系統(tǒng)全局區(qū)(SGA): 在啟動(dòng)例程時(shí)分配, 是Oracle例程的基礎(chǔ)組件。程序全局區(qū)(PGA): 當(dāng)啟動(dòng)服務(wù)器進(jìn)程時(shí)分配。系統(tǒng)全局區(qū)(SGA)SGA是ORACLE系統(tǒng)為實(shí)例分配的一組共享緩沖存儲(chǔ)區(qū),用于存放數(shù)據(jù)庫數(shù)據(jù)和控制信息,以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的管理和操作。 每個(gè)例程都只有一個(gè)SGA. 它是不同用戶進(jìn)程與服務(wù)進(jìn)程進(jìn)行通信的中心,數(shù)據(jù)庫的各種操作主要在SGA中進(jìn)行,所以稱其為系統(tǒng)全局區(qū). 創(chuàng)建例程時(shí),Oracle為SGA分配內(nèi)存; 終止例程時(shí),釋放SGA所占用的內(nèi)存.系統(tǒng)全局區(qū)SGA由以下內(nèi)存結(jié)構(gòu)組成:共享池?cái)?shù)據(jù)高速緩存重做日志緩沖區(qū)在SGA內(nèi)可以配置以下內(nèi)存結(jié)構(gòu):大緩沖池Java池共享池用于存儲(chǔ):最近執(zhí)行的SQL語句最近使用的數(shù)據(jù)定義由兩個(gè)關(guān)鍵的內(nèi)存結(jié)構(gòu)組成:庫高速緩存數(shù)據(jù)字典高速緩存尺寸由參數(shù)SHARED_POOL_SIZE控制庫高速緩存存儲(chǔ)最近解析使用的SQL和PL/SQL語句信息 Oracle 在執(zhí)行用戶進(jìn)程提交的各種SQL語句、PL/SQL前要對(duì)其進(jìn)行解析(包括語法解析、對(duì)象確認(rèn)、權(quán)限判斷、操作優(yōu)化等)并生成執(zhí)行計(jì)劃,占用一定的系統(tǒng)資源。由兩個(gè)部分組成:共享SQL區(qū)共享PL/SQL區(qū)數(shù)據(jù)字典高速緩存最近使用的對(duì)象定義集合包括數(shù)據(jù)庫文件、表、索引、列、用戶、權(quán)限和其它數(shù)據(jù)庫對(duì)象的信息在解析階段, 服務(wù)器進(jìn)程查看數(shù)據(jù)字典信息以解析對(duì)象名數(shù)據(jù)字典緩存信息到內(nèi)存,以提高查詢和DML響應(yīng)時(shí)間尺寸由共享池尺寸確定數(shù)據(jù)高速緩存存儲(chǔ)從數(shù)據(jù)文件檢索的數(shù)據(jù)塊副本通過LRU算法管理DB_BLOCK_SIZE確定了緩沖區(qū)數(shù)據(jù)塊大小 初次訪問數(shù)據(jù)時(shí),Oracle將讀取磁盤上的數(shù)據(jù)文件,將數(shù)據(jù)放入數(shù)據(jù)高速緩存,再處理數(shù)據(jù); 如果數(shù)據(jù)已經(jīng)位于數(shù)據(jù)高速緩存中時(shí),Oracle直接操作數(shù)據(jù)。數(shù)據(jù)高速緩存的緩存塊分為三類:臟緩存塊: 存放已經(jīng)被修改過的緩存塊. 當(dāng)SQL修改某個(gè)緩存塊中的數(shù)據(jù),則這個(gè)緩存塊被標(biāo)記為臟緩存塊空閑緩存塊: 等待寫入數(shù)據(jù)的空閑緩存塊.命中緩存塊: 最近正在被訪問的緩存塊.管理緩存塊的列表Oracle通過2個(gè)列表來管理上述緩存塊: 臟列表(DIRTY) 包括被修改過但尚未寫到數(shù)據(jù)文件的緩沖塊。 LRU(Least Recently Used)列表 包括空閑緩沖塊、命中緩存塊,以及還沒有移到臟列表的緩沖塊。數(shù)據(jù)高速緩存工作原理重做日志緩沖區(qū)記錄所有數(shù)據(jù)塊變化。當(dāng)執(zhí)行DML, 如:update、delete、insert或者create、alter、drop 等語句時(shí),Oracle都會(huì)為這些操作生成重做記錄.主要目的是恢復(fù)Oracle總是先記錄日志、后記錄數(shù)據(jù)由LOG_BUFFER初始化參數(shù)定義重做日志高速緩存工作原理為提高效率,重做記錄并不直接寫入磁盤的重做日志文件,而是先寫入重做日志緩存;當(dāng)重做日志緩存中的重做記錄達(dá)到一定數(shù)量時(shí),由LGWR進(jìn)程寫入重做日志.(先內(nèi)存后磁盤)當(dāng)2個(gè)(至少2個(gè))重做日志切換時(shí),由ARCH將重做日志中的數(shù)據(jù)寫入歸檔日志文件,以做備份.大池 大池用于需要大內(nèi)存操作提供相對(duì)獨(dú)立的內(nèi)存空間,以便提高性能。 大池是可選的內(nèi)存結(jié)構(gòu)。 DBA可以決定是否需要在SGA中創(chuàng)建大池。 需要大池的操作: 數(shù)據(jù)庫備份和恢復(fù) 大量排序的SQL語句 并行化的數(shù)據(jù)庫操作Java池8i以后提供的對(duì)Java的支持,用于存放Java代碼、Java程序等.一般不小于20M,以便虛擬機(jī)運(yùn)行.尺寸由JAVA_POOL_SIZE控制程序全局區(qū)(PGA)為每個(gè)連接到數(shù)據(jù)庫的用戶進(jìn)程預(yù)留內(nèi)存當(dāng)建立服務(wù)器進(jìn)程時(shí)分配當(dāng)終止服務(wù)器進(jìn)程時(shí)釋放只能由一個(gè)進(jìn)程使用進(jìn)程結(jié)構(gòu)Oracle使用各種類型進(jìn)程:用戶進(jìn)程: 當(dāng)用戶請(qǐng)求連接到Oracle server時(shí)啟動(dòng)服務(wù)進(jìn)程: 連接到例程,并且當(dāng)用戶建立會(huì)話時(shí)啟動(dòng)后臺(tái)進(jìn)程: 當(dāng)啟動(dòng)例程時(shí)啟動(dòng)用戶進(jìn)程請(qǐng)求與Oracle server交互的程序必須首先建立連接不會(huì)與Oracle server直接交互服務(wù)器進(jìn)程直接與Oracle server交互的程序完成調(diào)用并返回結(jié)果可以是專用的或者共享的后臺(tái)進(jìn)程作用:維護(hù)并加強(qiáng)物理結(jié)構(gòu)和內(nèi)存結(jié)構(gòu)的關(guān)系。必需后臺(tái)進(jìn)程:DBWnPMONCKPTLGWRSMON可選后臺(tái)進(jìn)程:ARCnLMDn QMNnCJQ0LMON RECODnnnLMS SnnnLCKnPnnnDBWnLGWRSMONPMONCKPTARCnOracle數(shù)據(jù)庫包括DB和DBMS兩部分兩部分。這兩部分分別對(duì)應(yīng)著database和例程。Oracle數(shù)據(jù)庫的database的存儲(chǔ)結(jié)構(gòu): 物理存儲(chǔ)結(jié)構(gòu)、邏輯存儲(chǔ)結(jié)構(gòu)。Oracle數(shù)據(jù)庫的例程部分: 內(nèi)存結(jié)構(gòu)、進(jìn)程結(jié)構(gòu)方案對(duì)象管理 管理索引16.1 索引的概念索引的作用索引的作用:為了加快查詢的速度。如果一個(gè)表中包含有很多條記錄,當(dāng)對(duì)表執(zhí)行查詢時(shí),必須將所有的記錄一一取出,以便將每一條記錄與查詢條件進(jìn)行比較,然后再返回滿足條件的記錄。這叫做全表掃描。這樣進(jìn)行操作的時(shí)間開銷和I/O開銷都是很巨大的,這時(shí)可以考慮通過索引來減小開銷。如果在表中查詢指定的記錄,在沒有索引的情況下,必須遍歷整個(gè)表,而有了索引之后,只需要在索引中找到符合查詢條件的索引字段值,就可以通過保存在索引中的ROWID(相當(dāng)于書的頁碼)快速找到表中對(duì)應(yīng)的記錄。因此,為表建立索引,既能夠減少查詢操作的時(shí)間開銷,又能夠減少I/O操作的開銷。 索引提高查詢速度舉例 Conn sys/o123 as sysdba;Grant dba to scott;Conn scott/tiger;Create table mytabAs select * from dba_objects where owner in (PUBLIC, SCOTT,SYS,SYSTEM);Select count(*) from mytab; - - - 43363行Set autotrace trace explain;Select owner,object_name from mytab where object_name=DBA_INDEXES;Create index idx on mytab(object_name);Select owner,object_name from mytab where object_name=DBA_INDEXES;索引存儲(chǔ)方式索引與表一樣,不僅需要在數(shù)據(jù)字典中保存索引的定義,還需要在表空間中為它分配實(shí)際的存儲(chǔ)空間存儲(chǔ)索引數(shù)據(jù)。當(dāng)創(chuàng)建索引時(shí),Oracle會(huì)自動(dòng)在用戶的默認(rèn)表空間中或指定的表空間中創(chuàng)建一個(gè)索引段,為索引數(shù)據(jù)提供存儲(chǔ)空間。與創(chuàng)建表的情況類似,在創(chuàng)建索引時(shí),也可以為它設(shè)置存儲(chǔ)參數(shù)。為某個(gè)表創(chuàng)建的索引不必和這個(gè)表保存在同一個(gè)表空間中。索引原理在創(chuàng)建索引時(shí),Oracle首先對(duì)將要建立索引的字段進(jìn)行排序,然后將排序后的字段值和該值對(duì)應(yīng)記錄的物理地址ROWID存儲(chǔ)在索引段中。比如,假設(shè)使用下面的語句為emp表中的ename字段建立索引: CREATE INDEX EMP_ENAME ON EMP(ENAME); Oracle 首先在emp表中按照ename字段進(jìn)行排序(默認(rèn)為升序),然后按照排序后的順序?qū)name字段值和對(duì)應(yīng)的ROWID 逐個(gè)保存在索引中。 (P564 圖16.2)在索引創(chuàng)建之后,如果執(zhí)行的一條WHERE子句中引用了ENAME字段的查詢,比如: SELECT * FROM EMP WHERE ENAME=SMITHOracle將首先對(duì)索引中ENANME字段進(jìn)行一次快速搜索(因?yàn)樗饕械腅NMAE字段已經(jīng)排序,所以這個(gè)搜索是很快的),找到符合條件的ENAME字段值所對(duì)應(yīng)的ROWID,然后再利用ROWID到EMP表中提取相應(yīng)的記錄。這個(gè)操作比逐條讀取EMP表中未排序的記錄要快得多。 (P563 圖16.1)可以看出,在索引中只保存索引字段的值與相應(yīng)的ROWID,這種組合稱為索引條目。索引的分類單列索引與復(fù)合索引唯一索引與非唯一索引標(biāo)準(zhǔn)索引(B樹索引或二叉樹索引)位圖索引 函數(shù)索引單列索引與復(fù)合索引基于單個(gè)列所創(chuàng)建的索引,單列索引。基于兩列或多列所創(chuàng)建的索引,即復(fù)合索引。唯一索引與非唯一索引索引列值不能重復(fù)、即唯一索引。索引列值可以重復(fù)、即非唯一索引。標(biāo)準(zhǔn)索引(B樹索引)用B-樹結(jié)構(gòu)來組織索引的。根:包含指向分支節(jié)點(diǎn)的信息。分支節(jié)點(diǎn):包含指向下一級(jí)分支部分和指向葉子節(jié)點(diǎn)的信息。葉子節(jié)點(diǎn):包含索引列和指向表中每個(gè)匹配行的ROWID信息。 P566 圖16.3位圖索引對(duì)于取值范圍只限于幾個(gè)固定值的列,比如性別列(只能是男和女),婚姻狀況列(只能是未婚、已婚和離異)。如果在其上建立B樹標(biāo)準(zhǔn)索引,會(huì)返回大量記錄,并不能明顯提高查詢速度??梢越⑽粓D索引,是一種全新的索引機(jī)制。 基數(shù):指某個(gè)列可能擁有的不重復(fù)數(shù)值的個(gè)數(shù)。對(duì)于基數(shù)很小的列,只是有限的幾個(gè)固定值,如果要建立索引,就應(yīng)該建立位圖索引,而不是默認(rèn)的建立B樹索引。Oracle建議,當(dāng)一個(gè)列的基數(shù)與表的總行數(shù)的比例小于1%,就應(yīng)當(dāng)建立位圖索引。函數(shù)的索引如下查詢:Set autotrace on explainselect empno,ename,job,sal from scott.emp where (sal+comm+sal*0.2)2000;Create Index funidx_salcomm on emp(sal+comm+sal*0.2) -創(chuàng)建索引select empno,ename,job,sal from scott.emp where (sal+comm+sal*0.2)2000;16.2 管理索引的策略雖然使用索引能有提高查詢速度,但是如果為某個(gè)表創(chuàng)建了過多的索引,反而有可能會(huì)降低更新、插入、刪除等操作的速度。因?yàn)镺racle在更新表中數(shù)據(jù)的同時(shí),還需要更新索引中的數(shù)據(jù)。因此,用戶在進(jìn)行應(yīng)用設(shè)計(jì)時(shí),一定要認(rèn)真考慮,決定:什么表上創(chuàng)建索引、創(chuàng)建什么索引、創(chuàng)建幾個(gè)索引,以及如何創(chuàng)建索引等問題。一、選擇合適的索引類型(是B樹索引還是位圖索引)列的基數(shù)特性:通常如果列的基數(shù)只達(dá)到表中記錄數(shù)的1%或者列中的大部分值都重復(fù)出現(xiàn)100次以上,則對(duì)該列應(yīng)當(dāng)建立位圖索引。而B樹索引則適用于那些具有高基數(shù)的列。列的NULL值特性:位圖索引中可以記錄具有NULL值的列,而在 B 樹索引中將忽略所有的NULL值列。因此如果某個(gè)列需要進(jìn)行與NULL值相關(guān)的查詢,則應(yīng)當(dāng)為它建立位圖索引。是否需要節(jié)省存儲(chǔ)空間:B樹索引會(huì)占用大量的存儲(chǔ)空間;而位圖索引通常只占用很少的存儲(chǔ)空間。查詢條件的邏輯運(yùn)算符特性:對(duì)于一些特殊類型的查詢語句,位圖索引能夠比B樹索引更有效地提高查詢速度。比如,如果在查詢的WHERE子句中包含AND、OR等邏輯運(yùn)算符,使用位圖索引可以極大地提高查詢速度,因?yàn)檫壿嬤\(yùn)算直接可以在位圖索引內(nèi)部完成。查詢條件的比較運(yùn)算符特性:對(duì)于另外一些查詢語句,B樹索引能夠比位圖索引更有效地提高查詢速度。比如那些經(jīng)常會(huì)使用等比較運(yùn)算符進(jìn)行查詢的列,應(yīng)當(dāng)使用B樹索引而不是位圖索引,這是由B樹索引的搜索特性決定的。二、在適當(dāng)?shù)谋怼⑦m當(dāng)?shù)牧猩蟿?chuàng)建適當(dāng)數(shù)量的索引在選擇應(yīng)該為哪些表創(chuàng)建索引,可以參考以下建議:一般不需要為很小的表創(chuàng)建索引對(duì)于比較大的表來說,如果經(jīng)常查詢的記錄數(shù)目少于表中所有記錄數(shù)目的15%,可以考慮為該表建立索引。在選擇應(yīng)該為表中的哪些列建立索引,參考以下建議:應(yīng)當(dāng)為大部分字段值都不重復(fù)的字段建立索引。對(duì)于取值范圍很大的字段應(yīng)當(dāng)創(chuàng)建普通索引(樹索引;對(duì)于取值范圍很小的字段應(yīng)當(dāng)創(chuàng)建位圖索引。對(duì)于包含很多NULL值,經(jīng)常需要查詢所有NULL值記錄的字段,應(yīng)當(dāng)建立索引。否則沒必要建立索引。不能在LONG或BLOB等大對(duì)象數(shù)據(jù)類型的列上創(chuàng)建索引。oracle會(huì)自動(dòng)為具有primary key和unique約束的字段創(chuàng)建索引,不會(huì)自動(dòng)為foreign key字段創(chuàng)建索引。三、合理設(shè)置復(fù)合索引中的列順序 復(fù)合索引中列的順序會(huì)影響查詢的速度,應(yīng)該根據(jù)查詢的頻率,查詢次數(shù)越多的字段放在越前面。四、設(shè)置合適的PCTREE參數(shù) 如果經(jīng)常要對(duì)某個(gè)表執(zhí)行插入操作,就應(yīng)該為這個(gè)表的索引設(shè)設(shè)一個(gè)較高的PCTREE參數(shù),以便預(yù)留更多的空閑空間。五、設(shè)置合適的表空間 把索引跟表放在相同的表空間,便于數(shù)據(jù)庫的管理比如說備份的時(shí)候;放在不同的表空間(不同的硬盤)可以減少I/O的訪問競(jìng)爭(zhēng),提高數(shù)據(jù)庫的訪問性能。因此,應(yīng)該根據(jù)具體情況為每個(gè)索引指定表空間。六、NOLOGGING項(xiàng)的使用創(chuàng)建索引時(shí)指定該選項(xiàng),oracle將不會(huì)產(chǎn)生重做日志記錄。因此,在對(duì)大表創(chuàng)建索引的時(shí)候最好設(shè)置該項(xiàng),這樣可以節(jié)省重做日志文件的存儲(chǔ)空間,并縮短創(chuàng)建索引的時(shí)間。七、裝載數(shù)據(jù)后再創(chuàng)建索引 在裝載數(shù)據(jù)之前最好不要?jiǎng)?chuàng)建索引,因?yàn)槿绻冉⒘怂饕?,那么每?dāng)向表中插入一條記錄時(shí),Oracle 都要對(duì)索引段的索引內(nèi)容進(jìn)行更新,這樣會(huì)大大降低裝載數(shù)據(jù)的速度。16.3 創(chuàng)建索引Create UNIQE|BITMAP Index schema.index_name on table_name(colum1 asc|desc, colum2 asc|desc, |express Tablespace tablespace_name pctfree n1 storagy(initial n2) Compress n3|nocompress Logging|Nologging Online Compute statistics ReverseNosort創(chuàng)建標(biāo)準(zhǔn)(B樹)索引創(chuàng)建位圖索引創(chuàng)建函數(shù)索引16.4 修改索引索引的重命名 ALTER INDEX idx_emp_name rename to new idx_emp_name;合并索引 (用來清理碎片) ALTER INDEX idx_emp_name coalesce;重建索引(用來清理碎片) ALTER INDEX idx_emp_name rebuild; 可以在重建索引時(shí)使用TABLESPACE選項(xiàng),將索引轉(zhuǎn)移到另一個(gè)表空間。 ALTER INDEX idx_emp_name REBUID TABLESPACE example; 管理視圖主要內(nèi)容 17.1 視圖的概念使用視圖的目的提供各種數(shù)據(jù)表現(xiàn)形式;提供某些安全性保證隱藏?cái)?shù)據(jù)的邏輯復(fù)雜性并簡(jiǎn)化查詢語句執(zhí)行某些必須使用視圖的查詢簡(jiǎn)化用戶權(quán)限的管理17.2 創(chuàng)建視圖語法: Create or replace force|noforce VIEW schema.view_name( column1,column2,) As select from where With check option CONSTRAINT contraint_name with read only創(chuàng)建簡(jiǎn)單視圖創(chuàng)建視圖emp_view,從emp表中查詢出empno,ename,job字段。 Create view EMP_VIEW As select empno,ename,job from scott.emp;創(chuàng)建視圖-給列定義別名創(chuàng)建視圖 -帶with read only選項(xiàng)WITH CHECK OPTION 選項(xiàng)創(chuàng)建連接視圖基于多表或視圖所創(chuàng)建的視圖,即定義視圖的select子查詢是一個(gè)連接查詢。使用連接視圖的主要目的是簡(jiǎn)化查詢。查詢scott方案下的dept、emp表創(chuàng)建出視圖v_emp_dept,包含ename、dname。能查詢出dname為Sales的相關(guān)人員信息。創(chuàng)建外聯(lián)接視圖創(chuàng)建復(fù)雜視圖 復(fù)雜視圖是指包含函數(shù)、表達(dá)式或分組數(shù)據(jù)的視圖。使用復(fù)雜視圖的主要目的是為了簡(jiǎn)化查詢操作。復(fù)雜視圖主要用于執(zhí)行查詢操作,并不用于執(zhí)行DML操作。強(qiáng)制創(chuàng)建視圖正常情況下,如果基本表不存在,創(chuàng)建視圖就會(huì)失敗。但是,如果創(chuàng)建視圖的語句沒有語法錯(cuò)誤,只要使用FORCE選項(xiàng)(默認(rèn)值為NO FORCE)就可以創(chuàng)建該視圖。該視圖被稱為帶錯(cuò)誤的視圖(view with errors)。此時(shí)視圖處于失效(INVALID)狀態(tài),不能執(zhí)行該視圖定義的查詢。但以后可以修復(fù)出現(xiàn)的錯(cuò)誤,如創(chuàng)建其基礎(chǔ)表。Oracle會(huì)在相關(guān)的視圖受到訪問時(shí)自動(dòng)重新編譯失效的視圖。這樣做的目的主要是為了使基礎(chǔ)表的創(chuàng)建和修改與視圖的創(chuàng)建和修改之間沒有依賴性,便于同步工作,提高效率。查看視圖信息查詢當(dāng)前方案中所有視圖的信息查詢當(dāng)前方案中某一視圖的列名信息更改視圖創(chuàng)建視圖之后,可能要改視圖的定義,如修改列名或修改所對(duì)應(yīng)的子查詢。更改視圖之后,依賴于該視圖的所有視圖和PL/SQL 程序都將變?yōu)镮NVALID狀態(tài)。更改視圖的方法是使用CREATE OR REPLACE VIEW 語句。這種方法代替了先刪除后創(chuàng)建的方法,會(huì)保留在該視圖上授予的各種權(quán)限,但與該視圖相關(guān)的存儲(chǔ)過程和視圖會(huì)失效。視圖的重新編譯當(dāng)基礎(chǔ)表改變后,視圖會(huì)失效。盡管Oracle會(huì)在這些視圖受到訪問時(shí)會(huì)自動(dòng)重新編譯這些視圖,但也可以使用ALTER VIEW語句明確地重新編譯視圖。當(dāng)視圖被重新編譯后,依賴該視圖的對(duì)象就會(huì)失效。刪除視圖使用DROP VIEW語句刪除視圖。視圖被刪除后,該視圖的定義會(huì)從詞典中被刪除,并且在該視圖上授予的權(quán)限也將被刪除。其他引用該視圖的視圖及存儲(chǔ)過程等都會(huì)失效。DROP VIEW v_test-tab;注意:刪除視圖只是刪除視圖的定義,并不會(huì)刪除基表的數(shù)據(jù)。17.5 在連接視圖上執(zhí)行DML操作在視圖上進(jìn)行的所有DML操作,最終都會(huì)在基礎(chǔ)表的數(shù)據(jù)上完成??筛逻B接視圖和鍵值保存表在插入數(shù)據(jù)時(shí),除了需要滿足上面提到的條件之外,還需要保證那些沒有包含在視圖定義中的基表的列必須允許空值。如果在視圖定義中包含了with check option子句,那么對(duì)視圖的修改除了前面的那些原則之外,還必須滿足指定的約束條件。鍵值保存表如果在連接視圖中的一個(gè)基礎(chǔ)表的主鍵(主鍵、惟一鍵)在它的視圖中仍然存在,則稱這個(gè)基礎(chǔ)表為鍵值保存表。尤其是,鍵值保存表中的主鍵在它的連接視圖中仍然是主鍵。連接視圖的更新準(zhǔn)則和DML操作一般準(zhǔn)則INSERT準(zhǔn)則1)插入列必須在鍵值保存表中2)滿足這些列已有的約束條件3)一次只能插入一個(gè)表。4)使用with check option選項(xiàng),不可以INSERTUPDATE準(zhǔn)則DELETE準(zhǔn)則查詢視圖的可更新列OEM中管理視圖在OEM中查看、編輯、刪除視圖方案對(duì)象管理 - 管理表什么是Oracle數(shù)據(jù)庫方案?方案是用戶使用的一系列數(shù)據(jù)庫對(duì)象的集合。而用戶是用來連接數(shù)據(jù)庫并完成存取數(shù)據(jù)庫對(duì)象的數(shù)據(jù)。一個(gè)用戶一般對(duì)應(yīng)一個(gè)方案,該用戶的方案名等于用戶名,并作為該用戶的缺省方案。這也就是在企業(yè)管理器的方案下看到方案名都為數(shù)據(jù)庫用戶名的原因。如果SCOTT用戶創(chuàng)建了表EMP,那么SCOTT就是表EMP的所有者,SCOTT訪問SCOTT用戶下的EMP表時(shí)不用在表名前面加上表的所有者:SELECT * FROM EMP;如果其他用戶要訪問表EMP,要在表名前面加上表的所有者:SELECT * FROM scott.emp; 否則會(huì)顯示沒有此表。Oracle中的方案對(duì)象類型Table :表Index :索引View: 視圖Synonym:同義詞(方案對(duì)象的一個(gè)別名,簡(jiǎn)化訪問,提高安全)Sequence:序列 (命名的順序編號(hào)生成器)Procedure、function、trigger等 存儲(chǔ)過程、函數(shù)、觸發(fā)器 (是用戶利用PL/SQL編寫的命名的程序塊)管理表本章內(nèi)容 15.1 表概述表是Oracle數(shù)據(jù)庫最基本的對(duì)象,其他許多數(shù)據(jù)庫對(duì)象(如索引、視圖)都以表為基礎(chǔ)。表被用于實(shí)際存儲(chǔ)數(shù)據(jù)。表中有列,列中存儲(chǔ)多行數(shù)據(jù)。在關(guān)系數(shù)據(jù)庫中,不同表中的數(shù)據(jù)彼此之間可能存在一定的關(guān)系。從用戶角度看,表是一張二維表,即:表由行和列兩部分組成,表通過行和列來組織數(shù)據(jù)。通常稱表中的一行為一條記錄,稱表中的一列為一個(gè)字段。表和列的命名規(guī)則長度30個(gè)字節(jié)之內(nèi)。必須以字母開頭。由字母、數(shù)字、_、#、$組成。不能使用保留字。非法的命名,可以用“”引著。一個(gè)表內(nèi)列名要唯一。表名在名稱空間內(nèi)必須唯一。Oracle中的數(shù)據(jù)類型字符型 char 、nchar varchar2、nvarchar2大對(duì)象數(shù)據(jù)類型 clob 、nclob blob、bfile (二進(jìn)制)二進(jìn)制數(shù)據(jù)類型 Row、Long Row數(shù)字型 number(p,s)時(shí)間和日期 Date,. 行數(shù)據(jù)類型RowID、URowID15.2 數(shù)據(jù)完整性與約束條件數(shù)據(jù)完整性是關(guān)系數(shù)據(jù)庫模型的基本原則,是用戶在表上定義的一系列規(guī)則或約束條件,以及在表之間定義的一系列相互關(guān)系。數(shù)據(jù)完整性的作用,簡(jiǎn)單地說,就是強(qiáng)制要求數(shù)據(jù)庫中只能接受正確的、合理的數(shù)據(jù),防止錯(cuò)誤的或無效的數(shù)據(jù)被插入到表中。分三種類型:15.2 數(shù)據(jù)完整性與約束條件數(shù)據(jù)完整性實(shí)體完整性參照完整性用戶自定義完整性15.3 管理表的策略設(shè)計(jì)表的結(jié)構(gòu)表的類型標(biāo)準(zhǔn)表(按堆組織)索引表(以 B樹索引段)外部表(操作系統(tǒng)文件中)分區(qū)表簇表表的位置及大小使用建表的相關(guān)選項(xiàng) (nologging)創(chuàng)建表如果要在自己的方案中創(chuàng)建表,要求用戶必須具有CREATE TABLE系統(tǒng)權(quán)限。如果要在其他方案中建表,則要求用戶必須具有CREATE ANY TABLE系統(tǒng)權(quán)限。創(chuàng)建表時(shí),Oracle會(huì)為該表分配相應(yīng)的表段。表段的名稱與表名完全相同,并且所有的數(shù)據(jù)都會(huì)被存放在該表段中。要求表的創(chuàng)建者必須指定表空間上具有空間配額或具有UNLIMITED TABLESPACE系統(tǒng)權(quán)限。Create table 語句Create table schema. table_name (column1 datatype1 default exp1 column1_constraint, column2 datatype2 default exp2 column2_constraint, table_constraint) on commit delete|preserve rows organizition heap.|index|external partition by() tablespace tablespace_name Logging|nologging compress|nocompress as query創(chuàng)建標(biāo)準(zhǔn)表 create table department ( deptid number(9) not null, deptno char(2) default 01 not null, name varchar2(20), address varchar2(30), constraint pk_deptid primary key(deptid) validate, constraint uniq_name unique(name) novalidate, constraint chk_address check (address in (1號(hào)樓,2號(hào)樓,3號(hào)樓,4號(hào)樓) validate)臨時(shí)表Oracle 的臨時(shí)表分為事務(wù)型和會(huì)話型。事務(wù)型臨時(shí)表 就是指在事務(wù)處理過程中插入的記錄只在事務(wù)提交或回滾之前有效,一旦事務(wù)完成,表中的記錄便被自動(dòng)清除。會(huì)話型臨時(shí)表 指臨時(shí)表中的數(shù)據(jù)在本次會(huì)話期間一直有效,直到會(huì)話結(jié)束。會(huì)話結(jié)束后表中針對(duì)此次會(huì)話的數(shù)據(jù)會(huì)自動(dòng)清空。 當(dāng)在臨時(shí)表上執(zhí)行DML操作時(shí),既不會(huì)加鎖也不會(huì)將數(shù)據(jù)變化寫到重做日志中。因此不能用臨時(shí)表保存永久數(shù)據(jù)。創(chuàng)建臨時(shí)表Create global temporary table table_name ( ) on commit delete rows | on commit preserve rows其中:global temporary table指定表的類型為臨時(shí)表。on commit delete rows指定表為事務(wù)臨時(shí)表。on commit preserve rows指定表為會(huì)話臨時(shí)表。事務(wù)臨時(shí)表例子:會(huì)話臨時(shí)表的例子:索引表對(duì)于普通表而言,其數(shù)據(jù)以無序方式存儲(chǔ);而對(duì)于索引表來說,其數(shù)據(jù)以B-樹結(jié)構(gòu)來組織,并且其葉子數(shù)據(jù)塊既包含鍵列數(shù)據(jù),也包含非鍵列數(shù)據(jù)。一般情況下,表及其索引數(shù)據(jù)分別存放在表段和索引段中,當(dāng)在where子句中引
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動(dòng)駕駛技術(shù)對(duì)城市交通網(wǎng)絡(luò)的影響-洞察闡釋
- 智能家居解決方案試用協(xié)議
- 2025建筑項(xiàng)目招標(biāo)投標(biāo)合同(資格預(yù)審邀請(qǐng)書)
- 2025年房屋租賃合同范本中介版
- 2025合同模板企業(yè)并購合同范本
- 2025農(nóng)業(yè)設(shè)施維護(hù)合同
- 電大photoshop圖像處理試題及答案
- ccf csp認(rèn)證試題及答案
- 商業(yè)情商測(cè)試題及答案
- 心衰主治醫(yī)生考試題及答案
- 智能化立體停車樓項(xiàng)目分析報(bào)告
- 廣西創(chuàng)業(yè)擔(dān)保貸款培訓(xùn)課件
- 2024屆江蘇省南京市聯(lián)合體數(shù)學(xué)七年級(jí)第二學(xué)期期末監(jiān)測(cè)試題含解析
- 玻璃隔斷墻施工方案
- 2024屆新高考數(shù)學(xué)熱點(diǎn)沖刺復(fù)習(xí)“三新”背景下如何提高成績+以《數(shù)列》為例淺談教材使用
- 年國家開放大學(xué)電大遠(yuǎn)程教育考試題題庫及答案
- 2020智慧電廠產(chǎn)業(yè)洞察白皮書
- 虛擬機(jī)快速恢復(fù)與遷移技術(shù)方案
- 項(xiàng)目重難點(diǎn)分析
- 某附屬醫(yī)院圍手術(shù)期血糖規(guī)范管理成果申報(bào)
- 2023年上海市普通高中學(xué)業(yè)合格考試歷史試題
評(píng)論
0/150
提交評(píng)論