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

對ODB2系統性能優化的探討

數據庫
以下的文章主要介紹的是ODB2系統性能優化的深入研究,假如你對是ODB2系統性能優化有興趣了解的話,你就可以瀏覽以下的文章了。

以下文章主要是介紹對ODB2系統性能優化的深入研究,我們大家都知道DB2數據庫是一種高性能的大型關系數據庫管理系統,其主要是應用于客戶/服務器體系結構中。評價DB2系統性能優化的標準有:吞吐量、響應時間、并行能力等。

 

設計數據庫

1. 熟悉業務系統

對業務系統的熟悉程度對整個數據庫系統的性能有很大影響,一個對業務不熟悉的設計人員,盡管有豐富的數據庫知識,也很難設計出性能最佳的數據庫應用系統。

2. 規范化與非規范化

數據庫被規范化后,減少了數據冗余,數據量變小,數據行變窄。這樣DB2的每一頁可以包括更多行,那么每一區里的數據量更多,從而加速表的掃描,改進了單個表的查詢性能。但是,當查詢涉及多個表的時候,需要用很多連接操作把信息從各個表中組合在一起,導致更高的CPU和I/O花銷。

那么,有很多時候需要在規范化和非規范化之間保持平衡,用適當的冗余信息來減少系統開銷,用空間代價來換取時間代價。有訂單信息表OrderDetail,它里面記錄了投遞員信息,收款員信息,物品信息,價格策略,客戶信息…..這些信息分別在投遞員信息表、收款員信息表、物品信息表、價格策略表、客戶信息表中存放。

如果按照規范化的要求,OrderDetail查詢時就必須要與這么多個表進行連接或者嵌套查詢。如果OrderDetail表中的數據量是在百萬級的,那么一次查詢所需要的時間可能會達到好幾個小時。事實上,只要在設計時保證數據的邏輯有效性,很多信息都可以直接冗余在OrderDetail表中,這些冗余的數據能夠極大的提高查詢的效率,從而減少CPU和I/O操作。

3. 數據條帶化

如果一個表的記錄條數超過一定的規模,那么最基本的查詢操作也會受到影響,需要將該表根據日期水平劃分,把最近、最經常用的數據和歷史的、不經常用的數據劃分開來,或是根據地理位置、部門等等進行劃分。還有一種劃分方式――垂直劃分,即把一個屬性列很多的表分割成好幾個小表,比如把經常用到的屬性放在一個表里,不經常用到的屬性放在另一個表里,這樣可以加快表的掃描,提高效率。

4. 選擇數據類型

對每一屬性選擇什么樣的數據類型很大程度上依據表的要求,但是在不違背表要求的前提下,選擇適當的數據類型可以提高系統性能。比如有text列存放一本書的信息,用BLOB而不是character(1024),BLOB存放的是指針或者文件參照變量,真正的文本信息可以放在數據庫之外,從而減少數據庫存儲空間,使得程序運行的速度提高。DB2提供了UDT(User Defined Datatypes)功能,用戶可以根據自己的需要定義自己的數據類型。

5. 選擇索引

索引是數據庫中重要的數據結構,它的根本目的就是為了提高查詢效率?,F在大多數的數據庫產品都采用IBM最先提出的ISAM索引結構。使用索引可以快速、直接、有序的存取數據。索引的建立雖然加快了查詢,另一方面卻將低了數據更新的速度,因為新數據不僅要增加到表中,也要增加到索引中。另外,索引還需要額外的磁盤空間和維護開銷。因此,要合理使用索引:

在經常進行連接,但是沒有指定為外鍵的屬性列上建立索引。

在頻繁進行排序或分組(即進行group by或order by操作)的列上建立索引。按索引來排序或分組,可以提高效率。

在條件表達式中經常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引。

如果待排序的列有多個,可以在這些列上建立復合索引(compound index),即索引由多個字段復合而成。

查詢優化

現在的數據庫產品在系統查詢DB2系統性能優化方面已經做得越來越好,但由于用戶提交的SQL語句是系統優化的基礎,很難設想一個原本糟糕的查詢計劃經過系統的優化之后會變得高效,因此用戶所寫語句的優劣至關重要。下面重點說明改善用戶查詢計劃的解決方案。

1.排序

在很多時候,應當簡化或避免對大型表進行重復的排序。當能夠利用索引自動以適當的次序產生輸出時,可以避免排序的步驟,當以下的情況發生時,排序就不能省略:

索引中不包括一個或幾個待排序的列;

group by或order by子句中列的次序與索引的次序不一樣;

排序的列來自不同的表。

為了避免不必要的排序,就要正確地增建索引,合理地合并數據庫表,盡管有時可能影響表的規范化,但相對于效率的提高是值得的。如果排序不可避免,那么應當試圖簡化它,如縮小排序列的范圍等。

2.主鍵

主鍵用整型會極大的提高查詢效率,而字符型的比較開銷要比整型的比較開銷大很多,用字符型數據作主鍵會使數據插入、更新與查詢的效率降低。數據量小的時候這點降低可能不會被注意,可是當數據量大的時候,小的改進也能夠提高系統的響應速度。

3.嵌套查詢

在SQL語言中,一個查詢塊可以作為另一個查詢塊中謂詞的一個操作數。因此,SQL查詢可以層層嵌套。例如在一個大型分布式數據庫系統中,有訂單表Order、訂單信息表OrderDetail,如果需要兩表關聯查詢:

 

  1. SELECT CreateUser  
  2. FROM Order  
  3. WHERE OrderNo IN  
  4. ( SELECT OrderNo  
  5. FROM OrderDetail  
  6. WHERE Price=0.5)  

 

在這個查詢中,找出報紙單價為0.5元的收訂員名單。下層查詢返回一組值給上層查詢,然后由上層查詢塊再根據下層塊提供的值繼續查詢。在這種嵌套查詢中,對上層查詢的每一個值OrderNo,下層查詢都要對表OrderDetail進行全部掃描,執行效率顯然不會高。在該查詢中,有2層嵌套,如果每層都查詢1000行,那么這個查詢就要查詢100萬行數據。在系統開銷中,對表Order的掃描占82%,對表OrderDetail的搜索占16%。如果我們用連接來代替,即:

 

  1. SELECT CreateUser  
  2. FROM Order,OrderDetail  
  3. WHERE Order.OrderNo=OrderDetail.OrderNo AND Praice=0.5  

 

那么對表Order的掃描占74%,對表OrderDetail的搜索占14%。

而且,一個列的標簽同時在主查詢和where子句中的查詢中出現,那么很可能當主查詢中的列值改變之后,子查詢必須重新查詢一次。查詢嵌套層次越多,效率越低,因此應當盡量避免子查詢。如果子查詢不可避免,那么要在子查詢中過濾掉盡可能多的行。

4.通配符

在SQL語句中,LIKE關鍵字支持通配符匹配,但這種匹配特別耗費時間。例如:SELECT * FROM Order WHERE CreateUser LIKE ‘M_ _ _’ 。即使在CreateUser字段上建立了索引,在這種情況下也還是采用順序掃描的方式,Order表中有1000條記錄,就需要比較1000次。如果把語句改為SELECT * FROM Order WHERE CreateUser >’M’ AND CreateUser <’N’,在執行查詢時就會利用索引來查詢,顯然會大大提高速度。

5.distinct

使用distinct是為了保證在結果集中不出現重復值,但是distinct會產生一張工作表,并進行排序來刪除重復記錄,這會大大增加查詢和I/O的操作次數。因此應當避免使用distinct關鍵字。

6.負邏輯

負邏輯如!=、<>、not in等,都會導致DB2用表掃描來完成查詢。當表較大時,會嚴重影響系統性能,可以用別的操作來代替。

7.臨時表

使用臨時表時數據庫會在磁盤中建立相應的數據結構,因為內存的訪問速度遠遠大于外部存儲器的訪問速度,在復雜查詢中使用臨時表時,中間結果會被導入到臨時表中,這種磁盤操作會大大降低查詢效率。另外,在分布式系統中,臨時表的使用還會帶來多個查詢進程之間的同步問題。所以,在進行復雜查詢時最好不要使用臨時表。

8.存儲過程

DB2中的Stored Procedure Builder可以產生存儲過程,運行并測試存儲過程。存儲過程可以包含巨大而復雜的查詢或SQL操作,經過編譯后存儲在DB2數據庫中。用戶在多次使用同樣的SQL操作時,可以先把這些SQL操作做成存儲過程,在需要用到的地方直接引用其名字進行調用。

存儲過程在第一次執行時建立DB2系統性能優化的查詢方案,DB2將查詢方案保存在高速緩存里,以后調用運行時可以直接從高速緩存執行,省去了DB2系統性能優化和編譯的階段,節省了執行時間,從而提高效率和系統利用率。

最優的查詢方案按照某些標準選擇往往不可行,要根據實際的要求和具體情況,通過比較進行選擇。DB2提供的Query Patroller可以對不同的查詢方案的查詢代價進行比較,通過追蹤查詢語句,返回查詢不同階段的系統開銷,從而作出最佳選擇。DB2提供的Performance Monitor也對整個數據庫系統的性能進行監控,包括I/O時間、查詢次數、排序時間、同步讀寫時間等等。

數據庫系統的并發控制也能影響系統性能。多個用戶的同時操作可能導致數據的不一致性,DB2為了防止同時修改造成數據丟失和訪問未被提交的數據,以及數據的保護讀,采用Lock機制來實現控制。

DB2中可以對表空間、表、表列和索引加鎖。鎖的粒度越大,鎖越簡單,開銷小,并發度低; 粒度小,鎖機制復雜,開銷大,并發度高。大型系統在并發處理中如果遇到所要分配的資源處于鎖定狀態,系統會把進程掛起等待。如果一個很耗時的查詢操作工作于一個經常使用的表上,此時使用表一級鎖,意味著整個系統都要等待你的查詢結束以后才能夠繼續運行。

所以在復雜查詢中,盡量避免使用表一級鎖。如果有這一類的需要該怎么辦呢?可以利用視圖來解決這一類問題。視圖避免了對表的直接操作,同時有能夠保證數據庫的高效運轉。

【編輯推薦】

  1. 使用重定向恢復DB2數據庫的操作技巧是什么?
  2. 使用DB2臨時表時哪些事項是值得關注?
  3. DB2提高IMPORT命令性能的2種操作方案
  4. 提高DB2數據庫的 IMPORT命令性能的方式有哪些?
  5. DB2存儲過程的創建刪除的實際操作步驟

 

責任編輯:佚名 來源: csdn
相關推薦

2010-08-09 13:22:40

DB2應用系統

2010-04-09 13:26:44

2021-08-10 08:44:13

系統性能優化

2024-08-30 14:37:00

2011-05-25 14:42:37

Oracle空間管理系統性能

2011-03-10 14:40:50

2025-11-06 02:55:00

磁盤抖動系統性能磁盤

2010-08-03 17:36:55

DB2數據庫

2019-01-04 13:30:58

系統 優化 數據

2019-12-02 09:45:45

Linux IO系統

2023-06-12 00:22:50

操作系統應用程序內核鎖

2017-09-01 12:26:18

Linux調度器系統

2010-04-23 11:44:34

Aix系統

2009-09-29 10:39:04

Linuxlinux系統性能檢測

2023-10-23 08:23:16

系統性能數據庫

2012-06-20 13:54:44

架構性能優化

2010-04-25 23:39:42

2013-06-13 16:35:41

2010-04-30 15:53:45

Oracle系統性能

2024-06-13 08:24:43

SpringGateway線程池
點贊
收藏

51CTO技術棧公眾號

高清国产在线一区| 3d动漫精品啪啪一区二区三区免费| 久草免费在线播放| 久久国产精品99精品国产| 国产成人精品优优av| 欧美黄视频在线观看| 亚洲精品美女久久久| 欧美成人hd| 色就色 综合激情| 99热在线网站| 亚洲一区二区综合| 黄色漫画在线免费观看| 久久久精品欧美丰满| 乱妇乱女熟妇熟女网站| 国产.精品.日韩.另类.中文.在线.播放| 精品免费国产| 亚洲国产高清一区二区三区| 国产美女精彩久久| 成人羞羞动漫| 91精品在线看| 欧美ab在线视频| www.久久久| 亚洲精品日本| 欧美日韩免费精品| 人人精品人人爱| 中国一区二区三区| 精品一二三四区| 日本aa在线观看| 白白色 亚洲乱淫| 国产又大又硬又粗| 国产欧美精品日韩区二区麻豆天美| 日韩av资源在线| 亚洲国产高清在线观看视频| 欧美日韩怡红院| 成人欧美一区二区三区白人 | 国产视频网站在线| 91黄色在线观看| caoporn免费在线| 日韩精品极品视频| 欧美日韩va| 欧美一级在线亚洲天堂| 日本a级不卡| 久久精品国产精品国产精品污| 视频一区二区中文字幕| 中文字幕第50页| 久久久久久久综合日本| 福利片在线免费观看| 狠狠色狠色综合曰曰| 国产精品剧情一区二区在线观看| 精品成人免费观看| 粉嫩一区二区三区在线观看| 91禁国产网站| 99热免费精品| ww国产内射精品后入国产| 亚洲欧美日韩国产中文在线| av在线免费观看网| 色吧影院999| 日韩成人精品一区| 色一情一乱一伦一区二区三区| 成人动漫精品一区二区| 三级网站在线| 日韩电影在线观看永久视频免费网站| 影音先锋日韩在线| 国产精品欧美一区二区三区不卡 | 99视频免费观看| 日本最新不卡在线| 久草青青在线观看| 亚洲激情男女视频| 羞羞网站在线免费观看| 日韩中文字幕在线看| 久久93精品国产91久久综合| 国产欧美亚洲日本| 99久久99久久精品免费看蜜桃| qvod激情图片| 亚洲福利视频二区| 伊人春色之综合网| 日产精品一线二线三线芒果| 久久美女高清视频| 免费黄色在线看| 中文字幕日韩在线播放| 免费福利在线视频| 日韩欧美国产激情| 九色porny自拍视频在线观看| 欧美国产日韩一区二区三区| 欧美一区视频| 久久人妻精品白浆国产| 色呦呦国产精品| 香蕉成人在线| 狠狠色综合一区二区| 91麻豆国产自产在线观看| 天堂av网在线| 日韩中文字幕视频在线| 尹人成人综合网| 欧美一区中文字幕| 国产精品伊人| 欧美精品欧美精品| 亚洲男人的天堂网| 玛雅亚洲电影| 国产一区不卡在线观看| 国产精品你懂的在线| 24小时免费看片在线观看| 国产精品色婷婷视频| 成人精品小蝌蚪| 黄网站在线播放| 国产精品va在线播放我和闺蜜| 国产一区二区成人久久免费影院| 久久综合九色综合久| 韩国一区二区电影| 东方aⅴ免费观看久久av| 毛片激情在线观看| 国产精品专区第二| 久久精品欧美一区二区三区麻豆| 蜜乳av一区| 国产精品制服诱惑| 亚洲一区二区三区四区在线免费观看| 日本一区免费网站| 精品国产乱码久久久久久88av| 1000精品久久久久久久久| 成人影院在线免费观看| 一区二区三区观看| 日韩视频中午一区| 国产日韩精品视频一区二区三区| 最新在线观看av网站| 91av在线看| 91免费视频网| 欧美成人app| 国产亚洲精品久久久久久久| 精品国产一区二区三区久久影院 | 欧美美乳视频| 一道本在线免费视频| 久久久999精品| 91在线你懂得| 日本超碰一区二区| 最近中文字幕一区二区| 久久久久久久久久av| 欧美国产精品v| 成人高潮a毛片免费观看网站| 丰满少妇被猛烈进入高清播放| 久久精品国产69国产精品亚洲| 99精品桃花视频在线观看| 亚洲ww精品| **三级三级97片毛片| 欧美主播福利视频| 亚洲一区二区三区美女| 九九热精品视频国产| 亚洲国产精品一区| 在线免费观看a视频| 欧洲精品亚洲精品| 亚洲第一二三四五区| 久久福利视频一区二区| 91女人视频在线观看| 国产精品天堂蜜av在线播放| 亚洲激情一区二区| 日韩精品一区二区三区在线 | 欧美成人首页| 黄网站在线播放| 中文字幕一区二区三区5566| 国产亚洲视频在线观看| 91麻豆精品在线观看| 欧美**字幕| 免费在线观看黄色网| 亚洲精品一区二区三区蜜桃久| 亚洲视频一区二区| 久久久久久久网| 日韩伦理视频| 菠萝菠萝蜜在线观看| 久久久国内精品| 久久久久久综合网天天| 黑人巨大精品欧美一区二区三区| 亚洲黄网站黄| 97欧美成人| 超碰在线图片| 亚洲 国产 日韩 综合一区| xxx一区二区| 欧美日韩黄色大片| 久久精品国产免费| 色综合www| a级网站在线播放| 日本三区在线观看| 成人亚洲欧美一区二区三区| 精品欧美乱码久久久久久| 久久久久久久久久久久久久久99 | av资源在线观看免费高清| 色爽爽爽爽爽爽爽爽| 欧美国产日韩视频| 精品婷婷伊人一区三区三| 不卡一区在线观看| 欧美99久久| 日本一区二区三区视频在线看 | 91精品久久久久久久久久另类| 日韩精品一区二区三区三区免费| 盗摄精品av一区二区三区| 欧美肉体xxxx裸体137大胆| xxxx视频在线| 色爱av综合网| 欧美亚洲国产激情| 香蕉成人久久| 另类一区二区三区| av资源种子在线观看| 国产偷人视频免费|