Oracle 查詢優(yōu)化的基本準(zhǔn)則詳解SEO優(yōu)化
導(dǎo)讀:2SEO優(yōu)化本篇文章是對(duì)Oracle查詢優(yōu)化的基本準(zhǔn)則進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下網(wǎng)站seo優(yōu)化診斷工具seo網(wǎng)站優(yōu)化軟件。
1:在進(jìn)行多表關(guān)聯(lián)時(shí),多用 Where 語(yǔ)句把單個(gè)表的結(jié)果集最小化,多用聚合函數(shù)匯總結(jié)果集后再與其它表做關(guān)聯(lián),以使結(jié)果集數(shù)據(jù)量最小化2:在兩張表進(jìn)行關(guān)聯(lián)時(shí),應(yīng)考慮可否使用右連接。以提高查詢速度3:使用 where 而不是 having ,where是用于過濾行的,而having是用來過濾組的,因?yàn)樾斜环纸M后,having 才能過濾組,所以盡量用戶 WHERE 過濾4:使用 exists 而不用 IN 因?yàn)?Exists 只檢查行的存在,而 in 檢查實(shí)際值。5:IN操作符用 IN 寫出來的 SQL 的優(yōu)點(diǎn)是比較容易寫及清晰易懂,這比較適合現(xiàn)代軟件開發(fā)的風(fēng)格。但是用 IN 的 SQL 性能總是比較低,原因是:對(duì)于用 IN 的 SQL 語(yǔ)句 ORACLE 總是試圖將其轉(zhuǎn)換成多個(gè)表的連接,如果轉(zhuǎn)換不成功則先執(zhí)行 IN里面的子高端網(wǎng)站建設(shè)查詢,再查詢外層的表記錄如果轉(zhuǎn)換成功就轉(zhuǎn)換成多個(gè)表的連接。因此 不管理怎么,用 IN 的 SQL 語(yǔ)句總是多了 一個(gè)轉(zhuǎn)換的過程。一般的 SQL 都可以轉(zhuǎn)換成功。但對(duì)于含有分組統(tǒng)計(jì)等方面的 SQL 就不能轉(zhuǎn)換了。因此在業(yè)務(wù)密集的SQL當(dāng)中盡量不采用IN操作符。6:NOT IN 操作符此操作強(qiáng)烈推薦不使用,因?yàn)槠洳荒軕?yīng)用表的索引。如遇這種情況,應(yīng)該用 EXISTS ,NOT EXISTS 或者(外連接+判斷為空)方案代替。7:<網(wǎng)站優(yōu)化seo培訓(xùn);> 操作符不等于操作符是永遠(yuǎn)不會(huì)用到索引的,因此對(duì)它的處理只會(huì)產(chǎn)生全表掃描。對(duì)于這種情況,可以用其它方式代替,如:A<>0 -> A>0 OR A<0A<>'' -> A>''8:like 操作符遇到 網(wǎng)站seo優(yōu)化診斷工具需要用到 LIKE 過濾的SQL語(yǔ)句,完全可以用 instr 代替。處理速度將顯著提高。9:union操作符union在進(jìn)行表鏈接后會(huì)篩選掉重復(fù)的記錄,所以在表鏈接后會(huì)對(duì)所產(chǎn)生的結(jié)果集進(jìn)行排序運(yùn)算,刪除重復(fù)的記錄再返回結(jié)果。實(shí)際大部分應(yīng)用中是不會(huì)產(chǎn)生重復(fù)的記錄,最常見的是過程表與歷史表union。如:
復(fù)制代碼 代碼如下:
select * from gc_dfysunionselect * from ls_jg_dfys
這個(gè)SQL在運(yùn)行時(shí)先取出兩個(gè)表的結(jié)果,再用排序空間進(jìn)行排序刪除重復(fù)的記錄,最后返回結(jié)果集,如果表數(shù)據(jù)量大的話可能會(huì)導(dǎo)致用磁盤進(jìn)行排序。推薦方案:采用union ALL操作符替代union,因?yàn)閡nion ALL操作只是簡(jiǎn)單的將兩個(gè)結(jié)果合并后就返回。復(fù)制代碼 代碼如下:
select * from gc_dfysunion allselect * from ls_jg_dfys
10 SQL書寫的影響同一功能同一性能不同寫法SQL的影響如一個(gè)SQL在A程序員寫的為select * from zl_yhjbqkB程序員寫的為select * from dlyx.zl_yhjbqk(帶表所有者的前綴)C程序員寫的為select * from DLYX.ZLYHJBQK(大寫表名)D程序員寫的為select * from DLYX.ZLYHJBQK(中間多了空格)以上四個(gè)SQL在ORACLE分析整理之后產(chǎn)生的結(jié)果及執(zhí)行的時(shí)間是一樣的,但是從ORACLE共享內(nèi)存SGA的原理,可以得出ORACLE對(duì)每個(gè)SQL都會(huì)對(duì)其進(jìn)行一次分析,并且占用共享內(nèi)存,如果將SQL的字符串及格式寫得完全相同則ORACLE只會(huì)分析一次,共享內(nèi)存也只會(huì)留下一次的分析結(jié)果,這不僅可以減少分析SQL的時(shí)間,而且可以減少共享內(nèi)存重復(fù)的信息,ORACLE也可以準(zhǔn)確統(tǒng)計(jì)SQL的執(zhí)行頻率。11:where后面的條件順序影響where子句后面的條件順序?qū)Υ髷?shù)據(jù)量表的查詢會(huì)產(chǎn)生直接的影響,如關(guān)鍵詞標(biāo)簽: 詳解 基本準(zhǔn)則
聲明: 本文由我的SEOUC技術(shù)文章主頁(yè)發(fā)布于:2023-05-24 ,文章Oracle 查詢優(yōu)化的基本準(zhǔn)則詳解SEO優(yōu)化主要講述詳解,基本準(zhǔn)則,Oracle 查詢優(yōu)化的基本準(zhǔn)則詳解S網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/seo_6512.html
為你推薦與Oracle 查詢優(yōu)化的基本準(zhǔn)則詳解SEO優(yōu)化相關(guān)的文章
-
織夢(mèng)DedeCms網(wǎng)站模板必做SEO優(yōu)化
(151)人喜歡 2024-01-05 -
如何判斷一個(gè)抖音代運(yùn)營(yíng)團(tuán)隊(duì)靠譜seo動(dòng)態(tài)
(126)人喜歡 2023-06-23 -
百度上線CreateLab應(yīng)用,可智能將將文字生
(99)人喜歡 2023-06-23 -
工信部備案系統(tǒng)啟用新域名seo文章
(126)人喜歡 2023-06-23 -
抖音seo排名怎么收費(fèi)?收費(fèi)的標(biāo)準(zhǔn)是什么
(134)人喜歡 2023-06-23 -
百度升級(jí)烽火算法2.0,提升打擊網(wǎng)站劫持
(143)人喜歡 2023-06-23