国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

關于SQL優化的一些思想和原則

數據庫 Oracle
SQL語句是對數據庫(數據)進行操作的惟一途徑,消耗了70%~90%的數據庫資源。獨立于程序設計邏輯,相對于對程序源代碼的優化,對SQL語句的優化在時間成本和風險上的代價都很低。本節主要介紹一些SQL優化方面的知識,希望會對讀者有所幫助。

一、優化的目的

對應用程序的優化通常可分為兩個方面:源代碼優化和SQL語句優化。由于涉及到對程序邏輯的改變,源代碼的優化在時間成本和風險上代價很高(尤其是對正在使用中的系統進行優化) 。另一方面,源代碼的優化對數據庫系統性能的提升收效有限,因為應用程序對數據庫的操作最終要表現為SQL語句對數據庫的操作。

對SQL語句優化有以下一些直接原因:

1.SQL語句是對數據庫(數據) 進行操作的惟一途徑,應用程序的執行最終要歸結為SQL語句的執行,SQL語句的效率對數據庫系統的性能起到了決定性的作用。

2.SQL語句消耗了70%~90%的數據庫資源。

3.SQL語句獨立于程序設計邏輯,對SQL語句進行優化不會影響程序邏輯,相對于對程序源代碼的優化,對SQL語句優化在時間成本和風險上的代價都很低。

4.SQL語句可以有不同的寫法,不同的寫法在性能上的差異可能很大。

5.SQL語句易學,難精通。SQL語句的性能往往同實際運行系統的數據庫結構、記錄數量等有關,不存在普遍適用的規律來提升性能。

二、優化數據庫的思想

1、關鍵字段建立索引。

2、使用存儲過程,它使SQL變得更加靈活和高效。

3、備份數據庫和清除垃圾數據。

4、SQL語句語法的優化。

5、清理刪除日志。

三、SQL語句優化的原則

不要以為只有SELECT語句是查詢。實際上,帶有任何WHERE條件的DML(INSERT、UPDATE、DELETE)語句中都包含查詢要求,在后面的文章中,當說到查詢時,不一定只是指SELECT語句,也有可能指DML語句中的查詢部分。

我們知道,SQL語句同其它語言(如C語言)的語句不一樣,它是非過程化(non-procedural)的語句,即當你要取數據時,不需要告訴數據庫通 過何種途徑去取數據,如到底是通過索引取數據,還是應該將表中的每行數據都取出來,然后再通過一一比較的方式取數據(即全表掃描)。

為了實現一個查詢,內核必須為每個查詢定制一個查詢策略,或為取出符合條件的數據生成一個執行計劃(execution plan)。典型的,對于同一個查詢,可能有幾個執行計劃都符合要求,都能得到符合條件的數據。例如,參與連接的表可以有多種不同的連接方法,這取決于連接條件和優化器采用的連接方法。為了在多個執行計劃中選擇最優的執行計劃,優化器必須使用一些實際的指標來衡量每個執行計劃使用的資源(I/0次數、 CPU等),這些資源也就是我們所說的代價(cost)。如果一個執行計劃使用的資源多,我們就說使用執行計劃的代價大。以執行計劃的代價大小作為衡量標準,優化器選擇代價最小的執行計劃作為真正執行該查詢的執行計劃,并拋棄其它的執行計劃。

#p#

四、關于ORACLE優化器

在任何可能的時候都會對表達式進行評估,并且把特定的語法結構轉換成等價的結構,這么做的原因是 :要么結果表達式能夠比源表達式具有更快的速度;要么源表達式只是結果表達式的一個等價語義結構。不同的SQL結構有時具有同樣的操作(例如:= ANY (subquery) and IN (subquery)),ORACLE會把他們映射到一個單一的語義結構。下面我們介紹常量優化和一些常用的操作符優化的知識。

1、常量優化:

常量的計算是在語句被優化時一次性完成,而不是在每次執行時。下面是檢索月薪大于2000的的表達式:

 

  1. sal > 24000/12   
  2.  
  3. sal > 2000   
  4.  
  5. sal*12 > 24000  

 

如果SQL語句包括第一種情況,優化器會簡單地把它轉變成第二種。

優化器不會簡化跨越比較符的表達式,例如第三條語句,鑒于此,應盡量寫用常量跟字段比較檢索的表達式,而不要將字段置于表達式當中。否則沒有辦法優化,比如如果sal上有索引,第一和第二就可以使用,第三就難以使用。

2、操作符優化:

優化器把使用LIKE操作符和一個沒有通配符的表達式組成的檢索表達式轉換為一個“=”操作符表達式。例如:優化器會把表達式ename LIKE 'SMITH'轉換為ename = 'SMITH'。優化器只能轉換涉及到可變長數據類型的表達式,前一個例子中,如果ENAME字段的類型是CHAR(10), 那么優化器將不做任何轉換。一般來講LIKE比較難以優化。

IN 操作符優化:

優化器把使用IN比較符的檢索表達式替換為等價的使用“=”和“OR”操作符的檢索表達式。

例如,優化器會把表達式ename IN ('SMITH','KING','JONES')替換為:ename = 'SMITH' OR ename = 'KING' OR ename = 'JONES‘。

ANY和SOME 操作符優化:

優化器將跟隨值列表的ANY和SOME檢索條件用等價的同等操作符和“OR”組成的表達式替換。例如,優化器將如下所示的第一條語句用第二條語句替換:

 

  1. sal > ANY (:first_sal, :second_sal)   
  2.  
  3. sal > :first_sal OR  
  4.  
  5. sal > :second_sal  

 

優化器將跟隨子查詢的ANY和SOME檢索條件轉換成由“EXISTS”和一個相應的子查詢組成的檢索表達式。例如,優化器將如下所示的第一條語句用第二條語句替換:

 

  1. > ANY (SELECT sal FROM emp WHERE job = 'ANALYST')   
  2.  
  3. EXISTS (SELECT sal FROM emp WHERE job = 'ANALYST' AND x > sal) 

 

ALL操作符優化:

優化器將跟隨值列表的ALL操作符用等價的“=”和“AND”組成的表達式替換。例如:sal > ALL (:first_sal, :second_sal)表達式會被替換為:sal > :first_sal AND sal > :second_sal 。

對于跟隨子查詢的ALL表達式,優化器用ANY和另外一個合適的比較符組成的表達式替換。例如x > ALL (SELECT sal FROM emp WHERE deptno = 10) 替換為:NOT (x <= ANY (SELECT sal FROM emp WHERE deptno = 10)) 。接下來優化器會把第二個表達式適用ANY表達式的轉換規則轉換為下面的表達式:

 

  1. NOT EXISTS (SELECT sal FROM emp WHERE deptno = 10 AND x <= sal) 

 

BETWEEN 操作符優化:

優化器總是用“>=”和“<=”比較符來等價的代替BETWEEN操作符。

例如:優化器會把表達式sal BETWEEN 2000 AND 3000用sal >= 2000 AND sal <= 3000來代替。

NOT 操作符優化:

優化器總是試圖簡化檢索條件以消除“NOT”邏輯操作符的影響,這將涉及到“NOT”操作符的消除以及代以相應的比較運算符。例如,優化器將下面的第一條語句用第二條語句代替:

 

  1. NOT deptno = (SELECT deptno FROM emp WHERE ename = 'TAYLOR')   
  2.  
  3. deptno <> (SELECT deptno FROM emp WHERE ename = 'TAYLOR')  

 

通常情況下一個含有NOT操作符的語句有很多不同的寫法,優化器的轉換原則是使“NOT”操作符后邊的子句盡可能的簡單,即使可能會使結果表達式包含了更多的“NOT”操作符。例如,優化器將如下所示的第一條語句用第二條語句代替:

 

  1. NOT (sal < 1000 OR comm IS NULL)   
  2.  
  3. NOT sal < 1000 AND comm IS NOT NULL sal >= 1000 AND comm IS NOT NULL 

 

關于SQL優化的知識就介紹到這里,謝謝各位的支持!

【編輯推薦】

  1. 提高SQL執行效率的幾點建議
  2. SQL Server視圖管理中的四個限制條件
  3. SQL Server數據庫多種方式查找重復記錄
  4. 使用SQL Trace來實現SQL Server的跟蹤操作
  5. CTE和WITH AS短語結合使用提高SQL查詢性能
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2021-06-10 10:02:19

優化緩存性能

2017-09-20 15:07:32

數據庫SQL注入技巧分享

2018-07-30 08:41:48

VueReact區別

2012-06-07 10:17:55

軟件設計設計原則Java

2011-07-13 09:13:56

Android設計

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java繼承

2013-07-18 16:16:51

2013-08-21 13:47:29

PhoneUDIDUUID

2010-09-28 14:14:19

SQL語句

2009-07-01 16:20:34

Flex垃圾回收性能優化

2011-05-23 18:06:24

站內優化SEO

2012-09-25 10:03:56

JavaJava封面Java開發

2012-04-19 10:06:55

微軟Windows 8 E

2022-04-14 10:22:44

故事卡業務

2020-09-28 06:45:42

故障復盤修復

2017-12-21 07:54:07

2009-06-04 16:28:43

EJB常見問題

2015-12-04 10:04:53

2011-03-11 09:27:11

Java性能監控
點贊
收藏

51CTO技術棧公眾號

亚洲影视在线播放| 777777777亚洲妇女| 亚洲 欧美 日韩系列| 久久裸体视频| 91久久久久久久久久久| 老牛影视av一区二区在线观看| 91精品久久久久久久99蜜桃| 麻豆影视在线观看| 成人影院一区二区三区| 国产精一品亚洲二区在线视频| 久久免费视频1| 在线欧美不卡| 91在线精品视频| 久久最新网址| 热久久免费国产视频| 风间由美一区二区av101| www.日韩视频| 999精品视频在线观看| 在线看国产精品| 僵尸再翻生在线观看| 欧美性xxxx极品hd满灌| 五月综合激情在线| 九九久久电影| 中文字幕日韩专区| 在线xxxx| 欧美男男青年gay1069videost| 石原莉奈一区二区三区高清在线| 91小视频免费观看| 2021国产视频| 青青草97国产精品免费观看 | 欧美国产一二三区| 日韩大片在线播放| 91黄色8090| 三级欧美日韩| 啊v视频在线一区二区三区| 欧洲一区精品| 精品亚洲国产视频| 久草在线视频网站| 日韩欧美国产精品| 老司机午夜在线| 欧美日韩精品三区| av电影在线播放高清免费观看| 欧美性xxxx极品hd欧美风情| 四虎影视精品成人| 在线免费观看不卡av| 欧美男男激情freegay| 精品久久久久久中文字幕| 中文字幕在线观| 欧美日韩美女在线| av在线电影免费观看| 欧美精品aⅴ在线视频| 理论片午午伦夜理片在线播放| 欧美亚洲综合久久| 成年人网站在线| 亚洲二区在线播放视频| 成av人片在线观看www| 亚洲成人黄色在线| 中文字幕在线中文字幕在线中三区| 精品一区二区三区四区| 日韩在线电影| 欧美激情一区二区三区高清视频| 国产精品日本一区二区三区在线| 免费av在线一区| 丝袜连裤袜欧美激情日韩| 国产日韩欧美电影在线观看| 亚洲一级一区| 一本一道久久a久久精品综合| 国产成人精品三级麻豆| 亚洲 欧美 日韩系列| 午夜一区二区三区在线观看| 国产一二在线观看| 亚洲精品国产综合区久久久久久久| 欧美福利在线播放| 午夜精品久久久久久久99热| 欧美另类69xxxxx| 国产精品嫩草在线观看| 日本vs亚洲vs韩国一区三区 | 国产亚洲精品超碰| 国产三级电影在线| 色琪琪综合男人的天堂aⅴ视频| 色乱码一区二区三区网站| 精品视频在线观看一区二区| 国产精品萝li| 午夜免费播放观看在线视频| 亚洲欧美日韩一区二区三区在线| 91成人福利| 精品在线不卡| 久久天天做天天爱综合色| 欧美日本网站| 国产亚洲欧美日韩美女| 51社区在线成人免费视频| 国产精品视频专区| 另类欧美日韩国产在线| eeuss鲁片一区| 日韩视频免费观看高清完整版在线观看 | 亚洲桃色在线一区| 欧美另类极品| 日韩一区二区在线视频| 99精品美女| 免费国产成人看片在线| 亚洲少妇30p| 国产香蕉视频在线看| 中文欧美日本在线资源| 日韩情爱电影在线观看| 国产成年人在线观看| 色噜噜久久综合| 九九九九九九精品任你躁| 久久成人资源| 亚洲免费在线视频| 欧亚一区二区| 国产精品中出一区二区三区| 日本一区二区在线不卡| 国产ktv在线视频| 95av在线视频| 国产亚洲综合色| 国产第一页在线| 成人www视频在线观看| 成人的网站免费观看| jizz亚洲| 日本高清不卡的在线| 国产精品一级在线| 精品美女视频在线观看免费软件 | 日韩中文字幕视频| 国内精品伊人久久久久av影院| 成人短视频在线观看| 国产视频在线观看一区| 欧美日韩国产色视频| 91蜜臀精品国产自偷在线 | 男插女视频久久久| 欧美日韩在线观看一区| 91精品中文字幕一区二区三区| 午夜天堂精品久久久久| 亚洲大胆精品| av色综合网| 欧美理论电影在线| 视频一区二区不卡| 免费v片在线观看| 久久久久福利视频| 色哟哟网站入口亚洲精品| www.色精品| 99精品国产一区二区三区2021| 男女私大尺度视频| 亚洲欧美日韩一区二区在线| 免费永久网站黄欧美| 你懂的视频在线| 国产精品视频区1| 一区二区三区中文字幕电影| 成人知道污网站| 午夜肉伦伦影院| 久久久国产精品x99av| 国产成人小视频| 第84页国产精品| 高清无码一区二区在线观看吞精| 亚洲精品国偷自产在线99热| 久久国内精品视频| 伊人久久精品一区二区三区| 在线免费观看成人| 亚洲欧美另类人妖| 国产精品2024| 亚洲精品tv| 中文字幕在线观看第三页| 少妇av一区二区三区| 成人精品免费视频| 日韩一区二区三区精品视频第3页| 日韩手机在线观看视频| 久久不射热爱视频精品| 亚洲国产高清在线观看视频| 亚洲五码在线| 一级片在线播放| 国产一区二区高清不卡| 日韩免费看网站| 国产精品18久久久久久vr| 久久久成人av毛片免费观看| 国产日韩一区二区在线观看| 欧美一区二区三区免费观看| 亚洲一区二区三区四区的| 欧美va天堂| 成人影院在线观看| 国产激情片在线观看| 欧美男插女视频| 亚洲一区二区视频在线| 久久国产成人午夜av影院宅| 簧片在线观看| 亚洲欧美日本国产有色| 久久激情五月丁香伊人| 成人免费在线视频| 欧美日韩精品免费观看视频完整| 中文日本在线观看| 青青草综合视频| 91精品国产高清| 91国产免费看| 国产老肥熟一区二区三区| 国产精品x8x8一区二区| 一区二区三区性视频| 香蕉久久夜色| 欧美日本黄视频| 日本韩国欧美一区二区三区| aa级大片欧美| 精品av一区二区| aa级大片免费在线观看|