




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基本的Sql編與注意事項吞量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。4用NOT IN操作符,可以用NOT EXISTS或者外連接+替代。Qracle在執(zhí)行IN子查詢時,首先執(zhí)行子查詢,將查詢結(jié)果放入臨時表再執(zhí)行主查詢。而EXIST則是首先檢查主查詢,然后運行子查詢直到找到第一個匹配項。NOT EXISTS比NOT IN效率稍高。但具 體在選擇IN或EXIST操作時,要根據(jù)主子表數(shù)據(jù)量大小來具體考 慮。嚇用“ ”或者“ !=”操作符。對不等于操作符的處理會造成全表掃描,可以用“or “ ”代替。Where子句中出現(xiàn)IS NULL或者IS NOT NULL時,Oracle會
2、停止 使用索引而執(zhí)行全表掃描??梢钥紤]在設(shè)計表時,對索引列設(shè)置為 NOT NULL。這樣就可以用其他操作來取代判斷 NULL的操作。當(dāng)通配符“ %或者作為查詢字符串的第一個字符時,索引不 會被使用。對于有連接的列“ | ”最后一個連接列索引會無效。盡量避免連接, 可以分開連接或者使用不作用在列上的函數(shù)替代。如果索引不是基于函數(shù)的,那么當(dāng)在 Where子句中對索引列使用函數(shù)時,索引不再起作用Where子句中避免在索引列上使用計算,否則將導(dǎo)致索引失效而進 行全表掃描。對數(shù)據(jù)類型不同的列進行比較時,會使索引失效。用“ =替彳t ”。UNION操作符會對結(jié)果進行篩選,消除重復(fù),數(shù)據(jù)量大的情況下可 能會
3、引起磁盤排序。如果不需要刪除重復(fù)記錄,應(yīng)該使用UNIONALL。Qracle從下到上處理 Where子句中多個查詢條件,所以表連接語句 應(yīng)寫在其他 Where條件前,可以過濾掉最大數(shù)量記錄的條件必須 寫在 Where子句的末尾。Qracle從右到左處理From子句中的表名,所以在 From子句中包 含多個表的情況下,將記錄最少的表放在最后。(只在采用 RBO 優(yōu)化時有效,下文詳述)Qrder By語句中的非索引列會降低性能,可以通過添加索引的方式 處理。嚴格控制在Order By語句中使用表達式。吁同區(qū)域出現(xiàn)的相同的Sql語句,要保證查詢字符完全相同,以利用 SGA共享池,防止相同的Sql語句
4、被多次分析。多利用內(nèi)部函數(shù)提高Sql效率當(dāng)在Sql語句中連接多個表時,使用表的別名,并將之作為每列的前 綴。這樣可以減少解析時間。需要注意的是,隨著Oracle的升級,查詢優(yōu)化器會自動對 Sql語句 進行優(yōu)化,某些限制可能在新版本的 Oracle下不再是問題。尤其是 采用CBO (Cost-Based Optimization ,基于代價的優(yōu)化方式)時。我們可以總結(jié)一下可能引起全表掃描的操作:在索引列上使用NOT或者“ ;對索引列使用函數(shù)或者計算;NOT IN操作;通配符位于查詢字符串的第一個字符;JS NULL 或者 IS NOT NULL ;多列索引,但它的第一個列并沒有被 Where子句
5、引用;Oracle優(yōu)化器Oracle優(yōu)化器(Optimizer )是Oracle在執(zhí)行SQL之前分析語句的 工具。Oracle的優(yōu)化器有兩種優(yōu)化方式:基于規(guī)則的(RBO)和基于代價 的(CBO)。RBO:優(yōu)化器遵循Oracle內(nèi)部預(yù)定的規(guī)則CBO:依據(jù)語句執(zhí)行的代價,主要指對 CPU和內(nèi)存的占用。優(yōu)化器在判斷是否使用CBO時,要參照表和索引的統(tǒng)計信息。統(tǒng)計信息要在對表做analyze后才會有。Oracle8及以后版本,推薦用CBO 方式。Oracle優(yōu)化器的優(yōu)化模式主要有四種:Rule:基于規(guī)則;Choose :默認模式。根據(jù)表或索引的統(tǒng)計信息,如果有統(tǒng)計信息,則使用CBO方式;如果沒有統(tǒng)計信
6、息,相應(yīng)列有索引,則使用RBO 方式。First rows :與Choose類似。不同的是如果表有統(tǒng)計信息,它將以最快的方式返回查詢的前幾行,以獲得最佳響應(yīng)時間。All rows :即完全基于Cost的模式。當(dāng)一個表有統(tǒng)計信息時,以最快方式返回表所有行,以獲得最大吞吐量。沒有統(tǒng)計信息則使用RBO方式。設(shè)定優(yōu)化模式的方式Instance 級別:在 init.ora 文件中設(shè)定 OPTIMIZER_MODE ;Session 級另U:通過 SQL ALTER SESSION SETOPTIMIZER_MODE=;來設(shè)定語句級另U:通過 SQL SELECT /*+ALL+ ROWS*/;來設(shè)定??捎玫?HINT 包括/*+ALL_ROWS*/、/*+FIRST_ROWS*/、/*+CHOOSE*/、/*+RULE*/ 等。要注意的是,如果表有統(tǒng)計信息,則可能造成語句不走索引的結(jié)果。可以用 SQLANALYZE TABLE table_name DELETE STATISTICS;刪除索引。對列和索引更新統(tǒ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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)現(xiàn)代化發(fā)展模式研究報告
- 2025年策劃合作事業(yè)合同協(xié)議
- 2025年臨時電力項目合作合同樣本
- 2025年商標(biāo)使用合同權(quán)益轉(zhuǎn)讓協(xié)議
- 信息錄入合同協(xié)議書6篇
- 2025年醫(yī)院布草租賃及洗滌服務(wù)合作合同樣本
- 民間租房的合同8篇
- 2025-2030年中國叉燒數(shù)據(jù)監(jiān)測研究報告
- 2025-2030年中國中分變頻門機數(shù)據(jù)監(jiān)測研究報告
- 2025-2030年中國LED白色櫻花燈數(shù)據(jù)監(jiān)測研究報告
- 統(tǒng)編版語文七年級上冊第三單元整本書閱讀《朝花夕拾》公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 2024-2030年中國輻射探測器行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- HSE知識能力測驗試題大全附答案
- 國際經(jīng)濟與貿(mào)易《大學(xué)生專業(yè)勞動實踐》教學(xué)大綱
- 工作談心談話100篇簡短
- BOSCH共軌噴油器維修基本知識摘要
- 蜀道難全文注音版
- 月子中心護理部護理檔案模板
- 房地產(chǎn) -旭輝第五代住宅產(chǎn)品手冊 H系全產(chǎn)品結(jié)構(gòu)及標(biāo)準(zhǔn)化體系-(上)
- 養(yǎng)老機構(gòu)認知癥老人非藥物干預(yù)療法操作指南
- 一例結(jié)腸穿孔手術(shù)患者護理查房
評論
0/150
提交評論