同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁 優(yōu)化推廣 關(guān)系型數(shù)據(jù)庫性能優(yōu)化總結(jié)

關(guān)系型數(shù)據(jù)庫性能優(yōu)化總結(jié)

來源: | 時間:2011/4/15 15:53:38 |

    今天我們要討論的是關(guān)系型數(shù)據(jù)庫性能優(yōu)化的問題,平時我們也最好要遵守一定的規(guī)則。    

    對于web應(yīng)用開發(fā),多數(shù)性能瓶頸均出現(xiàn)在數(shù)據(jù)庫上,除了采用分布式架構(gòu)或云處理(大公司基本上都是),更重要的是平時程序設(shè)計時要遵照一些規(guī)則,從根本上提高系統(tǒng)的性能,以下總結(jié)了一些常用的規(guī)則方法,僅供參考。

1、 把數(shù)據(jù)、日志、索引放到不同的I/O設(shè)備上,增加讀取速度。數(shù)據(jù)量(尺寸)越大,提高I/O越重要。

2、 縱向、橫向分割表,減少表的尺寸,如:可以把大數(shù)據(jù)量的字段拆分表。

3、 根據(jù)查詢條件,建立索引,優(yōu)化索引、優(yōu)化訪問方式,限制結(jié)果集的數(shù)據(jù)量。注意填充因子要適當(dāng)(最好是使用默認(rèn)值0)。索引應(yīng)該盡量小,盡量使用字節(jié)數(shù)小的列建索引,不要對有限的幾個值的列建單一索引。

4、 OR的字句可以分解成多個查詢,并且通過UNION鏈接多個查詢。它們的速度只與是否使用索引有關(guān),如果查詢需要用到聯(lián)合索引,用UNION all執(zhí)行的效率更高。

5、 在查詢SELECT語句中用WHERE子句限制返回的行數(shù),避免表掃描。如果返回不必要的數(shù)據(jù),則浪費了服務(wù)器的I/O資源,加重了網(wǎng)絡(luò)的負(fù)擔(dān),降低了性能。如果表很大,在表掃描期間將表鎖住,禁止其他的聯(lián)結(jié)訪問表,后果很嚴(yán)重。

6、 注意使用DISTINCT,在沒有必要時不要用,它同UNION一樣會使查詢變慢。

7、 IN后面值的列表中,將出現(xiàn)最頻繁的值放在最前面,出現(xiàn)最少的放在最后面,減少判斷的次數(shù)。

8、 一般在GROUP BYHAVING子句之前就能剔除多余的行,所以盡量不要用它們來做剔除行的工作,也就是說盡可能在WHERE中過濾數(shù)據(jù)。

9、 盡量將數(shù)據(jù)的處理工作放在服務(wù)器上,減少網(wǎng)絡(luò)的開銷,如使用存儲過程。存儲過程是編譯、優(yōu)化過,并且被組織到一個執(zhí)行規(guī)劃里,且存儲在數(shù)據(jù)庫中的SQL語句(存儲過程是數(shù)據(jù)庫服務(wù)器端的一段程序),是控制流語言的集合,速度當(dāng)然快。

10、 不要在一句話里再三地使用相同的函數(shù),浪費資源,將結(jié)果放在變量里再調(diào)用更快。

11、 針對大量只讀查詢操作進(jìn)行優(yōu)化的方法:

1)         數(shù)據(jù)量小的數(shù)據(jù),可以考慮不存儲在數(shù)據(jù)庫中,而是通過程序常量的方式解決。

2)         需要存儲在數(shù)據(jù)庫中的數(shù)據(jù),可以考慮采用物化視圖(索引視圖)。當(dāng)DBA在視圖上創(chuàng)建索引時,這個視圖就被物化(執(zhí)行)了,并且結(jié)果集被永久地保存在唯一索引中,保存方式與一個有聚簇索引的表的保存方式相同。物化視圖減除了為引用視圖的查詢動態(tài)建立結(jié)果集的開銷,優(yōu)化人員可以在查詢中使用視圖索引,而不需要在FROM子句中直接指定視圖。

3)         數(shù)據(jù)存儲時可以考慮適當(dāng)?shù)臄?shù)據(jù)冗余,以減少數(shù)據(jù)庫表之間的鏈接操作,提高查詢效率。

4)         針對數(shù)據(jù)的特點,采取特定的索引類型。例如,位圖索引等。

12、對于SQL語句書寫時的一些建議:

1)         寫語句時能夠確定數(shù)據(jù)庫對象所有者的,盡可能把所有者帶上,如:

 

SELECT * FROM dbo.Users

 

2)         存儲過程中,參數(shù)定義最好放在最前面,盡可能一次定義,如:

 

  • <nav id="sgkee"></nav>
  • TAG:高端網(wǎng)站建設(shè)高端網(wǎng)站設(shè)計網(wǎng)站制作網(wǎng)站建設(shè)

    服務(wù)熱線

    153 8323 9821

    功能和特性

    價格和優(yōu)惠

    網(wǎng)站和維護(hù)

    推廣和優(yōu)化

    微信服務(wù)號

      • <pre id="sgkee"><center id="sgkee"></center></pre>