亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜索
oracle知識(shí) ORACLE的數(shù)據(jù)類型 Oracle技術(shù)網(wǎng)—DBMS_Job包的用法 Oracle技術(shù)網(wǎng)—Oracle for NT系統(tǒng)實(shí)用工具介紹 Oracle技術(shù)網(wǎng)—Oracle常見錯(cuò)誤代碼 Oracle技術(shù)網(wǎng)—Oracle常用Script Oracle技術(shù)網(wǎng)—Oracle常用數(shù)據(jù)字典 Oracle技術(shù)網(wǎng)—ORACLE數(shù)據(jù)庫(kù)簡(jiǎn)介 Oracle技術(shù)網(wǎng)—Oracle特殊包 Oracle技術(shù)網(wǎng)—Oracle相關(guān)站點(diǎn) Oracle技術(shù)網(wǎng)—哪些初始化參數(shù)最影響Oracle系統(tǒng)性能 PL/SQL DBA Oracle7 7.3.2.2 Oracle技術(shù)網(wǎng)—listener.log的內(nèi)容增長(zhǎng)很快,是否可以刪除重建 Oracle技術(shù)網(wǎng)—ORACLE表空間恢復(fù)方案 Oracle技術(shù)網(wǎng)—Oracle常用系統(tǒng)文件有哪些 Oracle技術(shù)網(wǎng)—ORACLE回滾段管理(上) Oracle技術(shù)網(wǎng)—ORACLE回滾段管理(下) Oracle技術(shù)網(wǎng)—Oracle如何決定使用哪個(gè)回退段 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫(kù)的空間管理技巧 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫(kù)碎片整理 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫(kù)有哪幾種關(guān)閉方式 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫(kù)有哪幾種啟動(dòng)方式 Oracle技術(shù)網(wǎng)—Oracle預(yù)定義角色有哪些 Oracle技術(shù)網(wǎng)—ROLLBACK不能回滾的命令 Oracle技術(shù)網(wǎng)—查看哪些session正在使用哪些回滾段 Oracle技術(shù)網(wǎng)—存儲(chǔ)參數(shù)(storage子句)含義及設(shè)置技巧 Oracle技術(shù)網(wǎng)—和權(quán)限有關(guān)的表有哪些 Oracle技術(shù)網(wǎng)—漫談數(shù)據(jù)庫(kù)的啟動(dòng)和關(guān)閉 Oracle技術(shù)網(wǎng)—哪些初始化參數(shù)最影響Oracle系統(tǒng)性能 Oracle技術(shù)網(wǎng)—如何備份控制文件 Oracle技術(shù)網(wǎng)—如何查出前臺(tái)正在發(fā)出的sql語(yǔ)句 Oracle技術(shù)網(wǎng)—如何查看Oracle版本及安裝了哪些選項(xiàng) Oracle技術(shù)網(wǎng)—如何查看Oracle數(shù)據(jù)表的建表語(yǔ)句 Oracle技術(shù)網(wǎng)—如何查看SGA區(qū)剩余可用內(nèi)存 Oracle技術(shù)網(wǎng)—如何查看各個(gè)表空間占用磁盤情況 Oracle技術(shù)網(wǎng)—如何查看后臺(tái)進(jìn)程 Oracle技術(shù)網(wǎng)—如何查看什么時(shí)間有哪些數(shù)據(jù)庫(kù)對(duì)象結(jié)構(gòu)被修改過(guò) Oracle技術(shù)網(wǎng)—如何查看數(shù)據(jù)庫(kù)的各種數(shù)據(jù)文件 Oracle技術(shù)網(wǎng)—如何查看數(shù)據(jù)庫(kù)的字符集 Oracle技術(shù)網(wǎng)—如何查看數(shù)據(jù)文件是否自動(dòng)擴(kuò)展 Oracle技術(shù)網(wǎng)—如何查看數(shù)據(jù)文件所在的路徑 Oracle技術(shù)網(wǎng)—如何查看用戶表上的約束內(nèi)容 Oracle技術(shù)網(wǎng)—如何查看用戶表所占空間的大小 Oracle技術(shù)網(wǎng)—如何查詢出primary key和forgen key的關(guān)系表 Oracle技術(shù)網(wǎng)—如何改變當(dāng)前聯(lián)機(jī)日志文件的大小 Oracle技術(shù)網(wǎng)—如何利用DBMS_SQL包和游標(biāo)計(jì)算當(dāng)前用戶下所有表的行數(shù) Oracle技術(shù)網(wǎng)—如何啟動(dòng)ARCHIVELOG模式 Oracle技術(shù)網(wǎng)—如何取出某一用戶的密碼,再原封不動(dòng)的改回去 Oracle技術(shù)網(wǎng)—如何設(shè)置BLOCK_SIZE大于2K,如:4K、16K Oracle技術(shù)網(wǎng)—如何手工指定使用哪個(gè)回退段 Oracle技術(shù)網(wǎng)—如何修改internal的口令 Oracle技術(shù)網(wǎng)—如何移動(dòng)控制文件到新的目錄中 Oracle技術(shù)網(wǎng)—如何移數(shù)據(jù)庫(kù)文件 Oracle技術(shù)網(wǎng)—如何增加表空間的大小 Oracle技術(shù)網(wǎng)—怎樣查看init.ora文件 Oracle技術(shù)網(wǎng)—怎樣查看SGA值 Oracle技術(shù)網(wǎng)—怎樣查看哪些用戶擁有SYSDBA、SYSOPER權(quán)限? Oracle技術(shù)網(wǎng)—怎樣快速查出Oracle 數(shù)據(jù)庫(kù)中的鎖等待 Oracle技術(shù)網(wǎng)—怎樣識(shí)別IO競(jìng)爭(zhēng)和負(fù)載平衡 Exp vs Imp Oracle技術(shù)網(wǎng)—EXP、IMP 命令詳解 Oracle技術(shù)網(wǎng)—Exp/Imp大量數(shù)據(jù) Oracle技術(shù)網(wǎng)—Export/Import 使用技巧與常見錯(cuò)誤 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫(kù)的備份與恢復(fù) Oracle技術(shù)網(wǎng)—如何把數(shù)據(jù)exp到Sql loader里 Oracle技術(shù)網(wǎng)—如何單獨(dú)備份一個(gè)或多個(gè)表 Oracle技術(shù)網(wǎng)—如何單獨(dú)備份一個(gè)或多個(gè)用戶 Oracle技術(shù)網(wǎng)—如何導(dǎo)入指定表 Oracle技術(shù)網(wǎng)—如何建立一個(gè)與現(xiàn)存數(shù)據(jù)庫(kù)相同,但不包含數(shù)據(jù)的空庫(kù) Oracle技術(shù)網(wǎng)—如何在oracle7和oracle8之間exp/imp數(shù)據(jù) Oracle技術(shù)網(wǎng)—提高ORACLE數(shù)據(jù)庫(kù)系統(tǒng)import性能 Oracle技術(shù)網(wǎng)—為何我的導(dǎo)出文件只有500K Oracle技術(shù)網(wǎng)—自動(dòng)備份Oracle數(shù)據(jù)庫(kù) Oracle技術(shù)網(wǎng)—作Export或Import時(shí),如何記錄LOG信息? SQL技巧 Oracle技術(shù)網(wǎng)—LONG數(shù)據(jù)類型使用上的一些說(shuō)明 Oracle技術(shù)網(wǎng)—Oracle8 PL/SQL編程風(fēng)格與系統(tǒng)性能的提高 Oracle技術(shù)網(wǎng)—Oracle8中用戶名、表名、列名、索引名...可以用中文命名嗎 Oracle技術(shù)網(wǎng)—Oracle中如何實(shí)現(xiàn)某一字段自動(dòng)增加1 Oracle技術(shù)網(wǎng)—SQL(Structured Query Language)語(yǔ)句分哪幾類 Oracle技術(shù)網(wǎng)—SQL*PLUS常用命令列表 Oracle技術(shù)網(wǎng)—SQL*Plus系統(tǒng)環(huán)境變量有哪些?如何修改? Oracle技術(shù)網(wǎng)—SQL*Plus中緩沖區(qū)命令列表 Oracle技術(shù)網(wǎng)—SQL*Plus中能運(yùn)行哪幾種命令 Oracle技術(shù)網(wǎng)—SQLPlus中的復(fù)制和粘貼技巧 Oracle技術(shù)網(wǎng)—查看本用戶下的各種對(duì)象的SQL腳本 Oracle技術(shù)網(wǎng)—查找a表中有,而在b表中沒(méi)有的記錄 Oracle技術(shù)網(wǎng)—利用PL/SQL打印ASCII表 Oracle技術(shù)網(wǎng)—如何查找、刪除表中重復(fù)的記錄 Oracle技術(shù)網(wǎng)—如何對(duì)CLOB行字段執(zhí)行全文檢索 Oracle技術(shù)網(wǎng)—如何對(duì)CLOB字段進(jìn)行全文檢索? Oracle技術(shù)網(wǎng)—如何改變表中列的名字 Oracle技術(shù)網(wǎng)—如何改變一個(gè)字段初始定義的Check范圍 Oracle技術(shù)網(wǎng)—如何給表、列加注釋 Oracle技術(shù)網(wǎng)—如何將 primary key 建在其它的表空間上 Oracle技術(shù)網(wǎng)—如何刪除表中的列 Oracle技術(shù)網(wǎng)—如何使‘CREATE TABLE AS SELECT’能支持ORDER BY ? Oracle技術(shù)網(wǎng)—如何通過(guò) SQL*PLUS 將符號(hào) & 、'號(hào)(單引號(hào)) 插入Oracle數(shù)據(jù)庫(kù)的表中 Oracle技術(shù)網(wǎng)—如何用SQL生成SQL批處理文件 Oracle技術(shù)網(wǎng)—如何在PL_SQL中讀寫文件 Oracle技術(shù)網(wǎng)—如何自動(dòng)生成一個(gè)含有20000101至20500101共50年日期的表 Oracle技術(shù)網(wǎng)—如何自動(dòng)生成一個(gè)含有2000年01月至2050年01月共50年月份的表 Oracle技術(shù)網(wǎng)—?jiǎng)h除a表中和b表相同的數(shù)據(jù) Oracle技術(shù)網(wǎng)—在Oracle快速進(jìn)行數(shù)據(jù)行存在性檢查 Oracle技術(shù)網(wǎng)—怎樣查看表的結(jié)構(gòu) Oracle技術(shù)網(wǎng)—怎樣改變SQL*Plus啟動(dòng)時(shí)默認(rèn)路徑 Oracle技術(shù)網(wǎng)—怎樣計(jì)算表中的記錄數(shù) Oracle技術(shù)網(wǎng)—怎樣在SQL*Plus中使用 '&' 來(lái)實(shí)現(xiàn)自定義參數(shù)變量? Oracle技術(shù)網(wǎng)—怎樣在查詢記錄時(shí)給記錄加鎖 Oracle錯(cuò)誤 Oracle7 7.3.2.2 Oracle技術(shù)網(wǎng)—Oracle 816中如何啟動(dòng)Enterprise Manager Oracle技術(shù)網(wǎng)—Oracle Enterprise Manager(OEM)工具中如何以SYSOPER、SYSDBA方式登錄 Oracle技術(shù)網(wǎng)—ORACLE數(shù)據(jù)庫(kù)應(yīng)用開發(fā)常見問(wèn)題及排除 Oracle技術(shù)網(wǎng)—監(jiān)聽器錯(cuò)誤 Oracle技術(shù)網(wǎng)—聯(lián)機(jī)熱備份失敗后,如何打開數(shù)據(jù)庫(kù) Oracle技術(shù)網(wǎng)—沒(méi)有備份、只有歸檔日志,如何恢復(fù)數(shù)據(jù)文件 Oracle技術(shù)網(wǎng)—某個(gè)數(shù)據(jù)文件損壞,如何打開數(shù)據(jù)庫(kù) Oracle技術(shù)網(wǎng)—如何使用歸檔日志進(jìn)行完全恢復(fù) Oracle技術(shù)網(wǎng)—如何正確建立TYPE、partition(分區(qū)) Oracle技術(shù)網(wǎng)—一個(gè)控制文件被損壞,如何啟動(dòng) Oracle技術(shù)網(wǎng)—在SQL*Plus中insert進(jìn)的都是中文的,為什么一存入服務(wù)器后,再select出的就是???了 Oracle技術(shù)網(wǎng)—重裝Oracle服務(wù)器后,以前的數(shù)據(jù)可以恢復(fù)嗎 Oracle初學(xué)者入門 Oracle技術(shù)網(wǎng)—Oracle 8.1.6 for Win2000 系統(tǒng)文件解釋 Oracle技術(shù)網(wǎng)—Oracle 基本知識(shí) Oracle技術(shù)網(wǎng)—Oracle8 數(shù)據(jù)類型 Oracle技術(shù)網(wǎng)—what is sql? Oracle技術(shù)網(wǎng)—安裝、配置后,SQL*Plus操作初步 Oracle技術(shù)網(wǎng)—安裝Oracle后,經(jīng)常使用的修改表空間的SQL代碼 Oracle安裝、刪除 Oracle技術(shù)網(wǎng)—Oradim工具的用法 Oracle技術(shù)網(wǎng)—WINDOWS NT上,如何刪除ORACLE SERVICE Oracle技術(shù)網(wǎng)—如何連接兩臺(tái)Oracle服務(wù)器 Oracle技術(shù)網(wǎng)—如何在Windows 2000下將Oracle完全卸載 Oracle技術(shù)網(wǎng)—如何在WINDOWS NT上刪除所有的Oracle安裝? Oracle技術(shù)網(wǎng)—手工安裝數(shù)據(jù)庫(kù)時(shí)需要安裝那些系統(tǒng)包 Oracle技術(shù)網(wǎng)—手工創(chuàng)建數(shù)據(jù)庫(kù)的全部腳本及說(shuō)明 Oracle安全性問(wèn)題 Oracle技術(shù)網(wǎng)—Linux ORACLE 8.1.5漏洞 Oracle技術(shù)網(wǎng)—Oracle 8.1.6的oidldapd中的漏洞 Oracle技術(shù)網(wǎng)—Oracle8的不安全因素及幾點(diǎn)說(shuō)明 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫(kù)的安全策略 Oracle技術(shù)網(wǎng)—Oracle數(shù)據(jù)庫(kù)密碼文件的使用和維護(hù) Oracle技術(shù)網(wǎng)—提高Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)安全的舉例與分析 數(shù)據(jù)庫(kù)安全性策略 Oracle系統(tǒng)設(shè)置、優(yōu)化、連接 《Oracle8 優(yōu)化技術(shù)》摘錄 (第一章 安裝) 《Oracle8 優(yōu)化技術(shù)》摘錄 (第二章 內(nèi)存/CPU) 《Oracle8 優(yōu)化技術(shù)》摘錄 (第三章 輸入/輸出) Oracle技術(shù)網(wǎng)—ASP 中通過(guò)OLEDB訪問(wèn) Oracle 的代碼 Oracle技術(shù)網(wǎng)—Delphi5 企業(yè)版使用BDE訪問(wèn) Oracle方法 Oracle技術(shù)網(wǎng)—oracle database access object Oracle技術(shù)網(wǎng)—Oracle基于Client/Server的性能調(diào)整 Oracle技術(shù)網(wǎng)—PB7 連接 Oracle 的配置方法 Oracle技術(shù)網(wǎng)—PB內(nèi)置Oracle數(shù)據(jù)庫(kù)接口的使用方法 Oracle技術(shù)網(wǎng)—PHP+Oracle(OCI) 初步 Oracle技術(shù)網(wǎng)—PHP4連接Oracle 8i的方法(轉(zhuǎn)譯) Oracle技術(shù)網(wǎng)—多個(gè)數(shù)據(jù)庫(kù)時(shí),如何設(shè)置默認(rèn)數(shù)據(jù)庫(kù) Oracle技術(shù)網(wǎng)—如何備份Oracle設(shè)置 Oracle技術(shù)網(wǎng)—如何讓你的SQL運(yùn)行得更快 Oracle技術(shù)網(wǎng)—如何修改 SQL*Plus 的啟動(dòng)參數(shù) Oracle技術(shù)網(wǎng)—如何在Windosws 2000中安裝JSP并訪問(wèn)Oracle Oracle技術(shù)網(wǎng)—如何在Windosws 2000中安裝perl并訪問(wèn)Oracle Oracle技術(shù)網(wǎng)—如何在Windosws 2000中安裝PHP4并訪問(wèn)Oracle Oracle技術(shù)網(wǎng)—如何在Windosws NT中使用批處理命令自動(dòng)啟動(dòng)或關(guān)閉Oracle Services Oracle技術(shù)網(wǎng)—如何在客戶端省略輸入數(shù)據(jù)庫(kù)串,而只輸入用戶名、密碼即可 Oracle技術(shù)網(wǎng)—使用Database Configuration Assistant安裝第二個(gè)數(shù)據(jù)庫(kù) Oracle技術(shù)網(wǎng)—修改Oracle7數(shù)據(jù)庫(kù)maxdatafiles參數(shù)的方法 索引、序列、快照、數(shù)據(jù)庫(kù)鏈路、觸發(fā)器 Oracle技術(shù)網(wǎng)—觸發(fā)器的幾種應(yīng)用 Oracle技術(shù)網(wǎng)—建立觸發(fā)器時(shí)最容易忽略的兩個(gè)地方 Oracle技術(shù)網(wǎng)—快照和觸發(fā)子結(jié)合使用的例子 Oracle技術(shù)網(wǎng)—能否通過(guò)視圖更新表中的數(shù)據(jù) Oracle技術(shù)網(wǎng)—如何創(chuàng)建一個(gè)簡(jiǎn)單的JAVA存儲(chǔ)過(guò)程? Oracle技術(shù)網(wǎng)—如何創(chuàng)建隱藏IP地址的最后一項(xiàng)的函數(shù)? Oracle技術(shù)網(wǎng)—如何加密Oracle中的存儲(chǔ)過(guò)程 Oracle技術(shù)網(wǎng)—為什么有時(shí)ORACLE數(shù)據(jù)庫(kù)不用索引來(lái)查找數(shù)據(jù) Oracle技術(shù)網(wǎng)—我的數(shù)據(jù)庫(kù)鏈路為什么不工作 Oracle技術(shù)網(wǎng)—一個(gè)建立快照的簡(jiǎn)單例子 Oracle技術(shù)網(wǎng)—怎樣創(chuàng)建一個(gè)簡(jiǎn)單的自定義過(guò)程并引用 Oracle技術(shù)網(wǎng)—怎樣手工刷新快照 oracle與其他數(shù)據(jù)庫(kù)的比較 MySQL 測(cè)試 Oracle技術(shù)網(wǎng)—Oracle 和 mysql 的一些簡(jiǎn)單命令對(duì)比參照 Oracle技術(shù)網(wǎng)—Oracle8i和Microsoft SQL Server7.0比較 Oracle技術(shù)網(wǎng)—比較SQL Server與Oracle、DB2 Oracle技術(shù)網(wǎng)—各種數(shù)據(jù)類型的比較 Oracle技術(shù)網(wǎng)—戲說(shuō)SQL—幾種SQL 服務(wù)器的比較 關(guān)鍵任務(wù)      在Internet上運(yùn)作公司是一項(xiàng)艱苦的任務(wù) 其它知識(shí) OEM常見問(wèn)題及其解決辦法 Oracle 8 資料庫(kù)函式庫(kù) Oracle 資料庫(kù)函式庫(kù) Oracle技術(shù)網(wǎng)—Decode()函數(shù)使用技巧(NT+IIS+ASP+ORACLE) Oracle技術(shù)網(wǎng)—Dual偽列 Oracle技術(shù)網(wǎng)—NULL 使用詳解 Oracle技術(shù)網(wǎng)—OLAP及其多維數(shù)據(jù)分析 Oracle技術(shù)網(wǎng)—Oracle for NT系統(tǒng)實(shí)用工具介紹 Oracle技術(shù)網(wǎng)—ORACLE 用戶的規(guī)范化管理 Oracle技術(shù)網(wǎng)—user、uid偽列 Oracle技術(shù)網(wǎng)—大型數(shù)據(jù)庫(kù)設(shè)計(jì)原則 Oracle技術(shù)網(wǎng)—留言簿(帶Oracle數(shù)據(jù)庫(kù)分頁(yè)的顯示功能) Oracle技術(shù)網(wǎng)—漫談oracle中的空值 Oracle技術(shù)網(wǎng)—如何正確利用Rownum來(lái)限制查詢所返回的行數(shù) Oracle技術(shù)網(wǎng)—什么是ROWID,為什么需要它 Oracle技術(shù)網(wǎng)—數(shù)據(jù)庫(kù)技術(shù)考試大綱(中級(jí)) Oracle技術(shù)網(wǎng)—數(shù)據(jù)庫(kù)行業(yè)的現(xiàn)狀和展望 Oracle技術(shù)網(wǎng)—在客戶端處理Oracle的數(shù)據(jù)行加鎖問(wèn)題 如何對(duì)CLOB行字段執(zhí)行全文檢索 Developer 2000 Oracle技術(shù)網(wǎng)—Developer/2000中各鍵盤觸發(fā)子所對(duì)應(yīng)的“按鍵” Oracle技術(shù)網(wǎng)—FORM調(diào)用REPORT時(shí),如何去掉report server Oracle技術(shù)網(wǎng)—FORM中,Exception(例外)都有哪些,如何書寫 Oracle技術(shù)網(wǎng)—FORM中,F(xiàn)ORM中,如何引入圖像 Oracle技術(shù)網(wǎng)—FORM中,WINDOW標(biāo)題的設(shè)置 Oracle技術(shù)網(wǎng)—FORM中,常用快捷鍵有哪些 Oracle技術(shù)網(wǎng)—FORM中,觸發(fā)子exit_form的兩種功能是什么 Oracle技術(shù)網(wǎng)—FORM中,當(dāng)光標(biāo)走到塊的最后一項(xiàng)時(shí),如何讓按“enter回車”鍵時(shí),光標(biāo)自動(dòng)走到下一條記錄的第一項(xiàng)? Oracle技術(shù)網(wǎng)—FORM中,當(dāng)用鼠標(biāo)點(diǎn)擊標(biāo)簽畫布的某一“標(biāo)簽頁(yè)”時(shí),如何判斷點(diǎn)擊的是哪一頁(yè) Oracle技術(shù)網(wǎng)—FORM中,如何屏蔽默認(rèn)的功能鍵 Oracle技術(shù)網(wǎng)—FORM中,如何實(shí)現(xiàn)屏幕同步刷新? Oracle技術(shù)網(wǎng)—FORM中,如何使用警告 Oracle技術(shù)網(wǎng)—FORM中,如何通過(guò) ODBC 訪問(wèn) Acress 數(shù)據(jù)? Oracle技術(shù)網(wǎng)—FORM中 Oracle技術(shù)網(wǎng)—FORM中,設(shè)置應(yīng)用特性(光標(biāo)類型) Oracle技術(shù)網(wǎng)—FORM中,怎樣創(chuàng)建動(dòng)態(tài)下拉列表List Oracle技術(shù)網(wǎng)—FORM中如何存取聲音 Oracle技術(shù)網(wǎng)—FORM中如何存取圖象?如何把圖象從一個(gè)表中導(dǎo)到另一個(gè)表中? Oracle技術(shù)網(wǎng)—MIS中的圖像應(yīng)用技術(shù) Oracle技術(shù)網(wǎng)—MIS中的圖像應(yīng)用技術(shù) Oracle技術(shù)網(wǎng)—從FORM中調(diào)用REPORT時(shí),如何使打印結(jié)果直接輸出到打印機(jī)上 Oracle技術(shù)網(wǎng)—如何從FORM中調(diào)用REPORT程序 Oracle技術(shù)網(wǎng)—如何改變FORM(FMX模塊)運(yùn)行時(shí)的title? Oracle技術(shù)網(wǎng)—如何在FORM運(yùn)行中,使定制菜單中的“窗口(W)”菜單項(xiàng)不顯示 Oracle技術(shù)網(wǎng)—如何在啟動(dòng)FORM程序時(shí)直接登錄到Oracle數(shù)據(jù)庫(kù)上? Oracle技術(shù)網(wǎng)—運(yùn)行FORM時(shí),如何使按鈕變灰(即無(wú)效) Oracle技術(shù)網(wǎng)—運(yùn)行FORM時(shí),如何使窗口(runtime窗口、畫布窗口)自動(dòng)變成最大化、最小化? Oracle技術(shù)網(wǎng)—在Developer/2000中如何讀寫文本型操作系統(tǒng)文件 Oracle技術(shù)網(wǎng)—在Oracle中實(shí)現(xiàn)報(bào)表的定長(zhǎng)輸出 linux vs Unix How To Install Oracle 8.0.5 onto RedHat Linux 6 HOWTO: OAS for Linux on FreeBSD HOWTO: Oracle for Linux on FreeBSD Oracle 7.3.4 Enterprise Edition for SCO UNIX 安裝步驟 Oracle技術(shù)網(wǎng)—Oracle .com 套件在TurboLinux上的安裝 Oracle技術(shù)網(wǎng)—ORACLE 7.3 Enterprise在SCO OPEN SERVER 5.02 及 5.04 的安裝過(guò)程 Oracle技術(shù)網(wǎng)—ORACLE 7.3.4.2 for SCO Unix 安裝說(shuō)明 Oracle技術(shù)網(wǎng)—Oracle 8 for solaris 2.6 安裝步驟 Oracle技術(shù)網(wǎng)—Oracle 8(8.0.5)標(biāo)準(zhǔn)版安裝指南 Oracle技術(shù)網(wǎng)—Oracle 8i(8.1.5)企業(yè)版安裝指南 Oracle技術(shù)網(wǎng)—ORACLE FOR SUN SOLARIS 安裝手冊(cè) Oracle技術(shù)網(wǎng)—ORACLE FOR SUN SOLARIS 維護(hù)手冊(cè) Oracle技術(shù)網(wǎng)—ORACLE V.7.3.4.3 FOR AIX 安裝說(shuō)明 Oracle技術(shù)網(wǎng)—ORACLE8I FOR SUN SOLARIS2.7 安裝說(shuō)明 Oracle技術(shù)網(wǎng)—RedHat 6.1 Step-by-step Install notes for Oracle 8i Oracle技術(shù)網(wǎng)—RedHat Linux 6.0 上 Oracle 8(8.0.5)標(biāo)準(zhǔn)版 安裝實(shí)例 Oracle技術(shù)網(wǎng)—RedHat Linux 6.0 上 Oracle 8i R2 (8.1.6) 企業(yè)版安裝實(shí)例 Oracle技術(shù)網(wǎng)—如何集成Linux/Apache/PHP4/FastCGI/Oracle/MySQL環(huán)境 Oracle技術(shù)網(wǎng)—如何在你的Linux機(jī)器上安裝運(yùn)行Oracle Oracle技術(shù)網(wǎng)—為L(zhǎng)inux配備Oracle 8 Oracle技術(shù)網(wǎng)—在RedHat 6.0上安裝Oracle 8i(全攻略)
文字

Oracle基于Client/Server的性能調(diào)整

 

摘要:通過(guò)探討和研究Oracle服務(wù)器和Client/Server的特點(diǎn)和原理,闡述了提高、調(diào)整Oracle應(yīng)用系統(tǒng)性能的一些原則和方法。
關(guān)鍵詞:Oracle;客戶/服務(wù)器;系統(tǒng)全程區(qū);網(wǎng)絡(luò)I/O;回滾段

Oracle Performance Tunign Based on Client/Server

Zhang Dong Wang Hong Yao Yaowen
(1.Dep.of Computer Sciences and Engineering.South China University of Technology,Guangzhou 510641;2.Dept.of Informatics,Guangzhou School of Finauce,Guangzhou 510521)

AbstractIn this paper discuses and studies the characteristic of Oracle service and theory about Oracle service based on Client/Server.It also gives the way to improve and ture the performance of Oracle based on Client/Server
Key wordsOracle;Cclient/Server;SGA;Network I/O;Rollback Segment

  Oracle 數(shù)據(jù)庫(kù)廣泛應(yīng)用在社會(huì)的各個(gè)領(lǐng)域,特別是在Client/Server模式的應(yīng)用,但是應(yīng)用開發(fā)者往往碰到整個(gè)系統(tǒng)的性能隨著數(shù)據(jù)量的增大顯著下降的問(wèn)題,為了解決這個(gè)問(wèn)題,從以下幾個(gè)方面:數(shù)據(jù)庫(kù)服務(wù)器、網(wǎng)絡(luò)I/O、應(yīng)用程序等對(duì)整個(gè)系統(tǒng)加以調(diào)整,充分發(fā)揮Oracle的效能,提高整個(gè)系統(tǒng)的性能。

1? 調(diào)整數(shù)據(jù)庫(kù)服務(wù)器的性能
  
Oracle數(shù)據(jù)庫(kù)服務(wù)器是整個(gè)系統(tǒng)的核心,它的性能高低直接影響整個(gè)系統(tǒng)的性能,為了調(diào)整Oracle數(shù)據(jù)庫(kù)服務(wù)器的性能,主要從以下幾個(gè)方面考慮:
1.1?
調(diào)整操作系統(tǒng)以適合Oracle數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行
  
Oracle數(shù)據(jù)庫(kù)服務(wù)器很大程度上依賴于運(yùn)行服務(wù)器的操作系統(tǒng),如果操作系統(tǒng)不能提供最好性能,那么無(wú)論如何調(diào)整,Oracle數(shù)據(jù)庫(kù)服務(wù)器也無(wú)法發(fā)揮其應(yīng)有的性能。
1.1.1?
為Oracle數(shù)據(jù)庫(kù)服務(wù)器規(guī)劃系統(tǒng)資源
  據(jù)已有計(jì)算機(jī)可用資源,?
規(guī)劃分配給Oracle服務(wù)器資源原則是:盡可能使Oracle服務(wù)器使用資源最大化,特別在Client/Server中盡量讓服務(wù)器上所有資源都來(lái)運(yùn)行Oracle服務(wù)。
1.1.2??
調(diào)整計(jì)算機(jī)系統(tǒng)中的內(nèi)存配置
  多數(shù)操作系統(tǒng)都用虛存來(lái)模擬計(jì)算機(jī)上更大的內(nèi)存,它實(shí)際上是硬盤上的一定的磁盤空間。當(dāng)實(shí)際的內(nèi)存空間不能滿足應(yīng)用軟件的要求時(shí),操作系統(tǒng)就將用這部分的磁盤空間對(duì)內(nèi)存中的信息進(jìn)行頁(yè)面替換,這將引起大量的磁盤I/O操作,使整個(gè)服務(wù)器的性能下降。為了避免過(guò)多地使用虛存,應(yīng)加大計(jì)算機(jī)的內(nèi)存。
1.1.3?
為Oracle數(shù)據(jù)庫(kù)服務(wù)器設(shè)置操作系統(tǒng)進(jìn)程優(yōu)先級(jí)
  不要在操作系統(tǒng)中調(diào)整Oracle進(jìn)程的優(yōu)先級(jí),因?yàn)樵贠racle數(shù)據(jù)庫(kù)系統(tǒng)中,所有的后臺(tái)和前臺(tái)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)程執(zhí)行的是同等重要的工作,需要同等的優(yōu)先級(jí)。所以在安裝時(shí),讓所有的數(shù)據(jù)庫(kù)服務(wù)器進(jìn)程都使用缺省的優(yōu)先級(jí)運(yùn)行。
1.2?
調(diào)整內(nèi)存分配
  
Oracle數(shù)據(jù)庫(kù)服務(wù)器保留3個(gè)基本的內(nèi)存高速緩存,分別對(duì)應(yīng)3種不同類型的數(shù)據(jù):庫(kù)高速緩存,字典高速緩存和緩沖區(qū)高速緩存。庫(kù)高速緩存和字典高速緩存一起構(gòu)成共享池,共享池再加上緩沖區(qū)高速緩存便構(gòu)成了系統(tǒng)全程區(qū)(SGA)。SGA是對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行快速訪問(wèn)的一個(gè)系統(tǒng)全程區(qū),若SGA本身需要頻繁地進(jìn)行釋放、分配,則不能達(dá)到快速訪問(wèn)數(shù)據(jù)的目的,因此應(yīng)把SGA放在主存中,不要放在虛擬內(nèi)存中。內(nèi)存的調(diào)整主要是指調(diào)整組成SGA的內(nèi)存結(jié)構(gòu)的大小來(lái)提高系統(tǒng)性能,由于Oracle數(shù)據(jù)庫(kù)服務(wù)器的內(nèi)存結(jié)構(gòu)需求與應(yīng)用密切相關(guān),所以內(nèi)存結(jié)構(gòu)的調(diào)整應(yīng)在磁盤I/O調(diào)整之前進(jìn)行。
1.2.1
庫(kù)緩沖區(qū)的調(diào)整
  庫(kù)緩沖區(qū)中包含私用和共享SQL和PL/SQL區(qū),通過(guò)比較庫(kù)緩沖區(qū)的命中率決定它的大小。要調(diào)整庫(kù)緩沖區(qū),必須首先了解該庫(kù)緩沖區(qū)的活動(dòng)情況,庫(kù)緩沖區(qū)的活動(dòng)統(tǒng)計(jì)信息保留在動(dòng)態(tài)性能表v$librarycache數(shù)據(jù)字典中,可通過(guò)查詢?cè)摫韥?lái)了解其活動(dòng)情況,以決定如何調(diào)整。
  
Select sum(pins),sum(reloads) from v$librarycache;
  Pins列給出SQL語(yǔ)句,PL/SQL塊及被訪問(wèn)對(duì)象定義的總次數(shù);Reloads列給出SQL
和PL/SQL塊的隱式分析或?qū)ο蠖x重裝載時(shí)在庫(kù)程序緩沖區(qū)中發(fā)生的錯(cuò)誤。如果sum(pins)/sum(reloads) ≈0,則庫(kù)緩沖區(qū)的命中率合適;若sum(pins)/sum(reloads)>1, 則需調(diào)整初始化參數(shù) shared_pool_size來(lái)重新調(diào)整分配給共享池的內(nèi)存量。
1.2.2
數(shù)據(jù)字典緩沖區(qū)的調(diào)整
  數(shù)據(jù)字典緩沖區(qū)包含了有關(guān)數(shù)據(jù)庫(kù)的結(jié)構(gòu)、用戶、實(shí)體信息。數(shù)據(jù)字典的命中率,對(duì)系統(tǒng)性能影響極大。數(shù)據(jù)字典緩沖區(qū)的使用情況記錄在動(dòng)態(tài)性能表v$librarycache中,可通過(guò)查詢?cè)摫韥?lái)了解其活動(dòng)情況,以決定如何調(diào)整。
  
Select sum(gets),sum(getmisses) from v$rowcache;
  Gets列是對(duì)相應(yīng)項(xiàng)請(qǐng)求次數(shù)的統(tǒng)計(jì);Getmisses
列是引起緩沖區(qū)出錯(cuò)的數(shù)據(jù)的請(qǐng)求次數(shù)。對(duì)于頻繁訪問(wèn)的數(shù)據(jù)字典緩沖區(qū),sum(getmisses)/sum(gets)<10%~15%。若大于此百分?jǐn)?shù),則應(yīng)考慮增加數(shù)據(jù)字典緩沖區(qū)的容量,即需調(diào)整初始化參數(shù)shared_pool_size來(lái)重新調(diào)整分配給共享池的內(nèi)存量。
1.2.3
緩沖區(qū)高速緩存的調(diào)整
  用戶進(jìn)程所存取的所有數(shù)據(jù)都是經(jīng)過(guò)緩沖區(qū)高速緩存來(lái)存取,所以該部分的命中率,對(duì)性能至關(guān)重要。緩沖區(qū)高速緩存的使用情況記錄在動(dòng)態(tài)性能表v$sysstat中,可通過(guò)查詢?cè)摫韥?lái)了解其活動(dòng)情況,以決定如何調(diào)整。
  
Select name,value from v$sysstat where name in ('dbblock gets','consistent?gets','physical reads');
  dbblock gets和consistent gets的值是請(qǐng)求數(shù)據(jù)緩沖區(qū)中讀的總次數(shù)。physical reads的值是請(qǐng)求數(shù)據(jù)時(shí)引起從盤中讀文件的次數(shù)。從緩沖區(qū)高速緩存中讀的可能性的高低稱為緩沖區(qū)的命中率,計(jì)算公式:
  Hit Ratio=1-(physical reds/(dbblock gets+consistent gets))
  如果Hit Ratio<60%~70%,則應(yīng)增大db_block_buffers的參數(shù)值。db_block_buffers可以調(diào)整分配給緩沖區(qū)高速緩存的內(nèi)存量,即db_block_buffers可設(shè)置分配緩沖區(qū)高速緩存的數(shù)據(jù)塊的個(gè)數(shù)。緩沖區(qū)高速緩存的總字節(jié)數(shù)=db_block_buffers的值*db_block_size的值。
db_block_size 的值表示數(shù)據(jù)塊大小的字節(jié)數(shù),可查詢 v$parameter 表:
  select name,value from v$parameter where name='db_block_size';
  在修改了上述數(shù)據(jù)庫(kù)的初始化參數(shù)以后,必須先關(guān)閉數(shù)據(jù)庫(kù),在重新啟動(dòng)數(shù)據(jù)庫(kù)后才能使新的設(shè)置起作用。
1.3?
調(diào)整磁盤 I/O
  磁盤的I/O速度對(duì)整個(gè)系統(tǒng)性能有重要影響。解決好磁盤
I/O問(wèn)題,可顯著提高性能。影響磁盤I/O的性能的主要原因有磁盤競(jìng)爭(zhēng)、I/O次數(shù)過(guò)多和數(shù)據(jù)塊空間的分配管理。
  為Oracle數(shù)據(jù)庫(kù)服務(wù)器創(chuàng)建新文件時(shí),不論是表空間所用的數(shù)據(jù)文件還是數(shù)據(jù)事務(wù)登錄所用的日志文件,都應(yīng)仔細(xì)考慮數(shù)據(jù)庫(kù)服務(wù)器上的可用磁盤資源。如果服務(wù)器上有多個(gè)磁盤,則可將文件分散存儲(chǔ)到各個(gè)可用磁盤上,減少對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件及事務(wù)日志文件的競(jìng)爭(zhēng),從而有效地改善服務(wù)器的性能。對(duì)于不同的應(yīng)用系統(tǒng)都有各自的數(shù)據(jù)集,應(yīng)當(dāng)創(chuàng)見不同的表空間分別存儲(chǔ)各自應(yīng)用系統(tǒng)的數(shù)據(jù),并且盡可能的把表空間對(duì)應(yīng)的數(shù)據(jù)文件存放在不同的磁盤上,這種從物理上把每個(gè)應(yīng)用系統(tǒng)的表空間分散存放的方法,可以排除兩個(gè)應(yīng)用系統(tǒng)競(jìng)爭(zhēng)磁盤的可能性。數(shù)據(jù)文件、事務(wù)日志文件分別存放在不同的磁盤上,這樣事務(wù)處理執(zhí)行的磁盤訪問(wèn)不妨礙對(duì)相應(yīng)的事物日志登記的磁盤訪問(wèn)。如果有多個(gè)磁盤可用,將兩個(gè)事物日志成員放在不同的磁盤驅(qū)動(dòng)器上,就可以消除日志文件可能產(chǎn)生的磁盤競(jìng)爭(zhēng)。應(yīng)把一個(gè)應(yīng)用的表數(shù)據(jù)和索引數(shù)據(jù)分散存放不同表空間上,并且盡量把不同類型的表空間存放在不同磁盤上,這樣就消除了表數(shù)據(jù)和索引數(shù)據(jù)的磁盤競(jìng)爭(zhēng)。
1.4?
調(diào)整數(shù)據(jù)庫(kù)服務(wù)器的回滾段
  
回滾段是一個(gè)存儲(chǔ)區(qū)域,數(shù)據(jù)庫(kù)使用該存儲(chǔ)區(qū)域存放曾經(jīng)由一個(gè)事務(wù)更新或刪除的行的原始數(shù)據(jù)值。如果用戶要回滾一個(gè)事務(wù)所做的改變,那么數(shù)據(jù)庫(kù)就從回滾段中讀回改變前的數(shù)據(jù)并使該事務(wù)影響的行改變?yōu)樗鼈兊脑瓲顟B(tài)?;貪L段控制著數(shù)據(jù)庫(kù)處理事務(wù)的能力,因而在數(shù)據(jù)庫(kù)成功中起著關(guān)鍵性的作用,不管數(shù)據(jù)庫(kù)的其它部分設(shè)計(jì)得多好,如果它設(shè)計(jì)得不合理,將會(huì)嚴(yán)重影響系統(tǒng)的性能。建立和調(diào)整回滾段的原則如下。
1.4.1
分離回滾段
  分離回滾段是指單獨(dú)為回滾段創(chuàng)建一個(gè)以上的表空間,使回滾段與數(shù)據(jù)字典、用戶數(shù)據(jù)、索引等分離開來(lái)。由于回滾段的寫入與數(shù)據(jù)和索引的寫入是并行進(jìn)行的,因此將它分離出來(lái)可以減少I/O爭(zhēng)用。如果回滾段與數(shù)據(jù)不分離,倘若要某個(gè)表空間脫機(jī)或撤消,那么在該表空間中的各個(gè)回滾段沒(méi)有全部脫機(jī)之前,不能將這個(gè)表空間脫機(jī)或撤消。而一旦該表空間不可用,則該表空間中的所有回滾段也不能使用,這將浪費(fèi)所有分配的磁盤空間。所以,獨(dú)立回滾段可使數(shù)據(jù)庫(kù)管理變得容易。回滾段的經(jīng)常性收縮,使得表空間的自由塊更容易形成碎片。分離回滾段可以減少數(shù)據(jù)庫(kù)表空間的碎片產(chǎn)生。
1.4.2
創(chuàng)建不同大小的回滾段群
  對(duì)于一些聯(lián)機(jī)事物處理,他們一般是頻繁地對(duì)少量數(shù)據(jù)進(jìn)行修改,創(chuàng)建許多小的回滾段對(duì)之有利。每一個(gè)事物的入口項(xiàng)只能限于一個(gè)回滾段,回滾段應(yīng)該充分大以容納一個(gè)完整的事物處理,因此對(duì)一些較大型事物,需要較大型的回滾段。極個(gè)別脫機(jī)處理事物會(huì)產(chǎn)生大量的回滾信息,這時(shí)需要一個(gè)特大號(hào)的回滾段來(lái)處理。根據(jù)這些理論,在Oracle數(shù)據(jù)庫(kù)服務(wù)器中針對(duì)上述3種事物處理創(chuàng)建三組:小事物組、較大事物組、特大事物組等大小不同的回滾段群,并且將之分散到3個(gè)不同的表空間上,群內(nèi)大小相同,應(yīng)能滿足該組事物處理的最大要求。
1.4.3
創(chuàng)建數(shù)量適當(dāng)?shù)幕貪L段
  一般回滾段數(shù)量與并發(fā)事物個(gè)數(shù)有關(guān),以下給出由于并發(fā)事物個(gè)數(shù)而應(yīng)建立回滾段的參考數(shù):

并發(fā)事物(n)   回滾段數(shù)
n<16        4
16
n<32     8
n≥
32      n/4

2? 調(diào)整 Client/Server 模式下的網(wǎng)絡(luò) I/O
  Client/Server環(huán)境中的應(yīng)用處理是分布在客戶應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)程序之間的。在
Client/Server環(huán)境中Client與Server之間的網(wǎng)絡(luò)I/O是整個(gè)系統(tǒng)性能提高的瓶頸,一個(gè)客戶應(yīng)用程序引起的網(wǎng)絡(luò)I/O越少,應(yīng)用及整個(gè)系統(tǒng)的性能越好。減少網(wǎng)絡(luò)I/O的最重要的一條原則:將應(yīng)用邏輯集中在數(shù)據(jù)庫(kù)服務(wù)器中。
2.1?
使用Oracle數(shù)據(jù)庫(kù)的完整約束性
  
當(dāng)為應(yīng)用建表時(shí),應(yīng)當(dāng)為一些有特殊要求的數(shù)據(jù)加上適當(dāng)?shù)耐暾约s束,這樣就能實(shí)現(xiàn)由數(shù)據(jù)庫(kù)本身而不是應(yīng)用程序來(lái)約束數(shù)據(jù)符合一定的條件。數(shù)據(jù)庫(kù)服務(wù)器端的完整約束的執(zhí)行操作是在比SQL語(yǔ)句級(jí)別更低的系統(tǒng)機(jī)制上優(yōu)化,它與客戶端無(wú)關(guān),只在服務(wù)器中運(yùn)行,不需在Client
端和Server端之間傳遞SQL語(yǔ)句,有效地減輕網(wǎng)絡(luò)I/O負(fù)擔(dān)。
2.2?
使用數(shù)據(jù)庫(kù)觸發(fā)器
  
完整約束性只能實(shí)現(xiàn)一些較簡(jiǎn)單的數(shù)據(jù)約束條件,對(duì)一些較復(fù)雜的事物處理規(guī)則就無(wú)能為力,這時(shí)最好不要在應(yīng)用程序中實(shí)施復(fù)雜的程序控制,而是應(yīng)當(dāng)采用數(shù)據(jù)庫(kù)觸發(fā)器來(lái)實(shí)施復(fù)雜的事物規(guī)則。數(shù)據(jù)庫(kù)觸發(fā)器能實(shí)現(xiàn)由數(shù)據(jù)庫(kù)本身,而不是應(yīng)用程序,來(lái)約束數(shù)據(jù)符合復(fù)雜的事物處理規(guī)則,并且容易創(chuàng)建,便于管理,避免大量的網(wǎng)絡(luò)I/O。
  例如:將當(dāng)前表A中成為歷史的記錄從A表中轉(zhuǎn)儲(chǔ)到歷史表B中,表示為L(zhǎng)sbs。
在應(yīng)用程序中實(shí)現(xiàn):       用數(shù)據(jù)庫(kù)觸發(fā)器實(shí)現(xiàn):

Beign              Create trigger delete1
 Update A set lsbs='T';       After update of lsbs on A
 Insert into B           For each row
 Select * from A where lsbs='T';    ? Insert into B
 Delete A where lsbs='T';      select * from A where :new.lsbs='T';
End;
               Delete A where :new.lsbs='T';
                End delete1;?

  在應(yīng)用程序中實(shí)現(xiàn)時(shí),所有的SQL命令請(qǐng)求傳送的數(shù)據(jù)都要通過(guò)網(wǎng)絡(luò)在Client端和Server端進(jìn)行交換,而不像數(shù)據(jù)庫(kù)觸發(fā)器一樣,SQL本身在Server端,不需要通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)。當(dāng)進(jìn)行操作的數(shù)據(jù)量相當(dāng)大時(shí),并且多個(gè)用戶同時(shí)操作時(shí),通過(guò)在應(yīng)用程序中實(shí)現(xiàn)復(fù)雜的控制,必將增大網(wǎng)絡(luò)I/O的負(fù)荷,使整個(gè)系統(tǒng)的性能降低,而用數(shù)據(jù)庫(kù)觸發(fā)器能完全避免這種情況發(fā)生。
2.3?
使用存儲(chǔ)過(guò)程、存儲(chǔ)函數(shù)和包
  
Oracle的存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)是命名的能完成一定功能并且存儲(chǔ)在Server端的PL/SQL的集合。包是一種把有關(guān)的過(guò)程和函數(shù)組織封裝成一個(gè)數(shù)據(jù)庫(kù)程序單元的方法。它們相對(duì)于應(yīng)用程序的過(guò)程、函數(shù)而言,把SQL命令存儲(chǔ)在Server端。使用存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù),應(yīng)用程序不必再包含多個(gè)網(wǎng)絡(luò)操作的SQL語(yǔ)句去執(zhí)行數(shù)據(jù)庫(kù)服務(wù)器操作,而是簡(jiǎn)單調(diào)用存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù),在網(wǎng)絡(luò)上傳輸?shù)闹皇钦{(diào)用過(guò)程的名字和輸出結(jié)果,這樣就可減少大量的網(wǎng)絡(luò)I/O。
  例如:基表A、B的定義:name char(20);detail char(10);A表100萬(wàn)記錄,應(yīng)用程序?qū)幕鞟中檢索detail列符合給出條件的記錄,并將之插入基表B。
  
Declare
  Cursor cursor1 is select*from A;poin cursor1%type;
     
con1 number(2);res1 char(4)='abcd';
  Begin Insert into B values(poin.name,poin.detail);end if;
   For poin in cursor1 loop   End loop;End loop;
  ? For con1 in 1..7 loop    Commit;
   If substr(poin.detail?,con1,4)=res1 then End;
  如果在Developer/2000?From中按鈕觸發(fā)器直接用PL/SQL實(shí)現(xiàn)和把它改寫為一個(gè)Oracle存儲(chǔ)過(guò)程,然后在From中調(diào)用此過(guò)程實(shí)現(xiàn)比較,后者性能顯著提高。
  在考慮使用上述3種方法時(shí):首先考慮使用完整約束性。對(duì)于數(shù)據(jù)庫(kù)觸發(fā)器和存儲(chǔ)過(guò)程,如果需要所有訪問(wèn)數(shù)據(jù)庫(kù)的程序自動(dòng)實(shí)施一定規(guī)則或檢查,那么使用數(shù)據(jù)庫(kù)觸發(fā)器;如果只需對(duì)少數(shù)的程序?qū)嵤┮欢ǖ囊?guī)則或檢查,則可創(chuàng)建一個(gè)過(guò)程,讓有關(guān)程序調(diào)用這個(gè)過(guò)程。

3? 應(yīng)用程序的調(diào)整
3.1
SQL語(yǔ)句的優(yōu)化
  SQL語(yǔ)句的執(zhí)行速度,可以受很多因素的影響而變化。但主要的影響因素是:驅(qū)動(dòng)表、執(zhí)行操作的先后順序和索引的運(yùn)用??梢杂珊芏嗖煌姆椒ㄩg接地改變這些因素,以達(dá)到最優(yōu)的執(zhí)行速度。這里主要探討當(dāng)對(duì)多個(gè)表進(jìn)行連接查詢時(shí)應(yīng)遵循的優(yōu)化原則:
  (1)?
用于連接的子句的列應(yīng)被索引、在Where子句中應(yīng)盡量利用索引,而不是避開索引。
  (2)?
連接操作應(yīng)從返回較少行上驅(qū)動(dòng)。
  (3)?
如果所連接的表A和B,A表長(zhǎng)度遠(yuǎn)遠(yuǎn)大于B表,建議從較大的A表上驅(qū)動(dòng)。
  (4)?
如果Where子句中含有選擇性條件,Where No=20,將最具有選擇性部分放在表達(dá)式最后。
  (5)? 如果只有一個(gè)表有索引,另一表無(wú)索引,無(wú)索引的表通常作為驅(qū)動(dòng)表。如A表的No列以被索引,而B表的No 列沒(méi)被索引,則應(yīng)當(dāng)B表作為驅(qū)動(dòng)表,A表作為被驅(qū)動(dòng)表。
  (6)?
若用于連接的列和Where子句中其他選擇條件列均有索引,則按各個(gè)索引對(duì)查詢的有效性和選擇性分別定出級(jí)別,結(jié)合表中具體數(shù)據(jù)構(gòu)成情況,從中選出優(yōu)化路徑,一般需要考慮:子句中哪些列可以使用索引、哪些索引具有唯一性及被查詢表行數(shù)目等。
3.2?
建立和使用視圖、索引
  
利用視圖可以將基表中的列或行進(jìn)行裁減、隱藏一部分?jǐn)?shù)據(jù),并且能夠?qū)⑸婕暗蕉鄠€(gè)表的復(fù)雜查詢以視圖的方式給出,使應(yīng)用程序開發(fā)簡(jiǎn)潔快速。利用索引可以提高查詢性能,減少磁盤
I/O,優(yōu)化對(duì)數(shù)據(jù)表的查詢,加速SQL語(yǔ)句的執(zhí)行。但任何時(shí)候建立索引都能提高性能,何時(shí)建立索引應(yīng)當(dāng)遵循以下原則:該表常用來(lái)在索引列上查詢,該表不常更新、插入、刪除等操作,查詢出來(lái)的結(jié)果記錄數(shù)應(yīng)控制在原表的2%~4% 。
3.3?
使用 Oracle 的數(shù)組接口
  
當(dāng)一個(gè)客戶應(yīng)用程序插入一行或用一個(gè)查詢來(lái)向服務(wù)器請(qǐng)求某行時(shí),不是發(fā)送具有單個(gè)行的網(wǎng)絡(luò)包,而是采用數(shù)組處理,即把要插入的多個(gè)行或檢索出的多個(gè)行緩沖在數(shù)組中,然后通過(guò)很少的幾個(gè)包就可在網(wǎng)上傳送這些數(shù)組。例如,一個(gè)給定的Select語(yǔ)句返回2000行數(shù)據(jù),每行平均大小為40個(gè)字節(jié),數(shù)據(jù)包的大小為4kB,而數(shù)組大小參數(shù)(arraysize)設(shè)置為20
,則需從服務(wù)器發(fā)送100個(gè)數(shù)據(jù)包到客戶機(jī)。如果簡(jiǎn)單地把(arraysize)設(shè)置為2000,那么同樣的操作只需要傳送 20個(gè)數(shù)據(jù)包。這樣就減少了網(wǎng)絡(luò)的傳輸量,提高了所有應(yīng)用的性能。

4? 總結(jié)
  我們?cè)陂_發(fā)應(yīng)用程序時(shí),遵循上述的方法和原則,對(duì)系統(tǒng)進(jìn)行調(diào)整,收到了令人滿意的效果。但是應(yīng)當(dāng)指出,由于客戶機(jī)、網(wǎng)絡(luò)、服務(wù)器這3個(gè)相互依存的組成部分都必須調(diào)整和同步才能產(chǎn)生最佳的性能,因此還應(yīng)根據(jù)系統(tǒng)的具體情況,具體分析和調(diào)整。

上一篇: 下一篇: