999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于二重模式的SQL查詢優化教學實踐

2010-12-31 00:00:00曹建英楊芳萍
計算機教育 2010年24期


  摘要:查詢優化在關系數據庫系統中有著非常重要的地位,是影響RDBMS性能的關鍵因素。本文主要歸納總結實現查詢優化應遵循的一些原則和使用技巧,介紹二重查詢優化教學模式,以培養學生編寫出高質量的SQL語句,提高應用系統的性能。
  關鍵詞:數據庫;SQL查詢;教學模式
  
  SQL語言的學習是數據庫應用技術課程教學的重點內容,學生能否靈活熟練掌握SQL語句,編寫出高質量的SQL句子,是學好該課程的關鍵[1],也是開發與數據庫應用相關軟件的基礎。因為SQL語句可以有多種不同的寫法,所以它易學,但難于精通,是教學難點內容。在此,我們根據多年教學工作經驗,在教學中以實際數據庫應用系統中數據設計和數據查詢的使用為例,分析探索查詢優化的方法,采用“數據庫設計→設計優化→編寫SQL語句→語句優化”的二重優化模式方法,教學效果良好。本文通過歸納總結學習掌握數據設計和SQL查詢優化的方法,闡述了SQL優化教學的關鍵所在。
  1二重查詢優化模式
  學生學習SQL語言,通常只停留在能查詢出所要求的結果,這樣的水平并不深究查詢效率,更不進行查詢優化測試,其原因在于學生還沒有開發過數據庫應用系統,未能體會到通過優化查詢提高系統性能的意義;例如:一個基于B/S(或C/S)模式的數據庫應用系統,用戶對數據庫連接和響應速度很敏感,如果數據庫響應速度太慢,不能及時反饋用戶要查詢的數據,用戶就會難以忍受,從而直接影響用戶對整個系統的評價。因此,設計、編寫高效合理的查詢語句,提高數據庫響應速度就顯得非常重要,當然,這對編程和設計人員的要求也更高一層。在教學中,要闡明
  
  優化查詢的重要意義,以實際應用講授查詢優化的方法,激發學生的學習興趣,使學生在編寫基本SQL語句的基礎上,盡快掌握查詢優化技術[2]。
  1.1查詢優化知識體系
  在大多數實際數據庫應用系統中,查詢操作在各種數據庫操作中所占比重最大,而每個查詢操作都會有許多可供選擇的執行策略和操作算法,查詢優化就是選擇一個高效的執行的查詢處理策略。查詢優化的方法多種多樣,按照優化層次可分為代數優化和物理優化[3]。代數優化是指關系代數表達式的優化,即按照一定的規則,改變代數表達式中操作的次序和組合,使查詢執行更高效;物理優化是指存取路徑和底層操作算法的選擇,其選擇依據可以是基于規則的,也可以是基于代價的,還可以是基于語義的。查詢優化的理論基礎知識體系如圖1所示。
  1.2二重查詢優化流程
  依據查詢優化的理論,在數據庫應用系統的開發中,為了能夠系統地進行查詢優化,我們提出二重查詢優化模式:數據庫設計→設計優化→編寫SQL語句→語句優化,即設計優化和語句優化,兩次優化,先后順序并無固定,可循環多次,以達到最好的優化效果。整個模式操作方便、思路清晰,實施關鍵在于第一重優化和第二重優化的具體方法,文中第2部分、第3部分有詳細介紹。查詢優化的教學過程流程可以進一步擴展,如圖2所示。
  二重查詢優化方法,第一重優化,即設計優化,實施在數據庫設計階段的關系模式優化之后,要通過修改、調整、和重構模式,經過反復嘗試和比較,得到最終的優化的關系模式,它是進行語句優化的基礎。第二重優化過程是應用程序設計層面,應按照系統支持的各種應用分別試驗它們在數據庫操作的效率,弄清它們在實際運行中能否完成預定的功能。但并不意味著設計過程結束,就不能再進行調整數據庫,在實際運行和維護過程中,調整、修改數據庫及其應用的事是常常發生的,因此,二重查詢優化,在實施中,并沒有固定順序,且可反復進行,直至達到理想效果。
  
  圖2二重查詢優化教學流程圖
  2設計優化
  二重查詢優化模式,首先是通過數據庫合理設計進行優化,對應于優化層次的物理優化,選擇合理的存取路徑和底層操作算法。一般遵循以下策略和技巧來改善查詢計劃,提高應用系統的性能。
  2.1合理的索引設計
  索引是數據庫設計中最重要的數據結構,利用索引可以快速訪問數據庫表中的特定信息,它是對數據庫表中的一個或多個列的值進行排序的結構,數據庫性能問題都可以采用索引技術得到解決。在設計數據庫關系圖中,可以為選定的表創建、編輯或刪除索引/鍵屬性頁中的每個索引類型,當保存附加在此索引上的表或包含此表數據關系圖時,同時被保存。
  對索引操作,學生一般較容易掌握,學生往往在學習使用索引時,不清楚在何種情況下需使用索引,這是因為學生對應用問題理解不夠透徹。所以,教學中要強調說明,在考慮是否為一個列創建索引時,應考慮被索引的列是否以及如何用于查詢。
  2.1.1索引的作用
  建立索引,基本思路是考慮索引對哪些查詢有幫助,通常有如下所列的情況。
  1) 搜索符合特定搜索關鍵字值的行(精確匹配查詢);
  2) 搜索其搜索關鍵字值為范圍值的行(范圍查詢);
  3) 根據聯接謂詞,在一個表中搜索與另一個表中的某行匹配的行(索引嵌套循環連接);
  4) 在不進行顯式排序操作的情況下產生經排序的查詢輸出,尤其是經排序的動態游標;
  5) 在不進行顯式排序操作的情況下,按一種有序的順序對行進行掃描,以允許基于順序的操作,如合并聯接和流聚合;
  6) 以優于表掃描的性能對表中所有的行進行掃描,性能提高是由于減少了要掃描的列集和數據總量;
  7) 搜索插入和更新操作中重復的新搜索關鍵字值,以實施PRIMARY KEY和UNIQUE約束;
  8) 搜索已定義了FOREIGN KEY約束的兩個表之間匹配的行。
  2.1.2使用索引要遵循的原則
  我們要考慮到索引的使用要恰到好處,指導學生使用索引要遵循如下原則。
  1) 主鍵上建立索引是首選,另外對連接中頻繁使用的列(包括外鍵)也應作為建立索引考慮的選項。不經常連接的字段則由優化器自動生成索引;引導學生學會使用SQL事件探查器和索引優化向導幫助分析查詢,確定要創建的索引。
  2) 覆蓋的查詢可以提高性能。覆蓋的查詢是指查詢中所有指定的列都包含在同一個索引中。
  3) 對于不需要修改數據的查詢(SELECT語句),大量的索引有助于提高性能。而如果一個表創建有大量的索引會影響INSERT、UPDATE和DELETE語句的性能,因為在表中的數據更改時,所有的索引都須進行適當的調整。
  4) 在頻繁進行排序或分組(即進行GROUP BY分組或ORDER BY排序)的列上建立索引;在不同值較多的列上建立檢索,而在不同值很少的列上不建立索引。
  5) 可以在視圖和計算列上指定索引,這樣顯得更方便和快捷。
  2.1.3對于索引種類使用策略
  如果需要排序的列有多個,可以在這些列上建立組合索引。經常同時存取多列,且每列都含有重復值可考慮建立組合索引;可考慮建立聚簇索引的情況有:包含有大量非重復值的列;使用BETW

主站蜘蛛池模板: 久久国产毛片| 亚洲成a人片| 福利视频一区| 国产门事件在线| 国产福利一区二区在线观看| 国产精品九九视频| 亚洲美女一级毛片| 亚洲人成影院午夜网站| yjizz国产在线视频网| 男人天堂亚洲天堂| 精品丝袜美腿国产一区| 亚洲无码视频一区二区三区 | 欧美乱妇高清无乱码免费| 怡春院欧美一区二区三区免费| 亚洲国产理论片在线播放| 国产成年女人特黄特色大片免费| 亚欧成人无码AV在线播放| 久久无码高潮喷水| 影音先锋丝袜制服| 国产精品一线天| 免费激情网址| 波多野结衣AV无码久久一区| 日韩色图区| 综合天天色| 91高清在线视频| 欧美精品成人一区二区视频一| 国产日韩欧美在线视频免费观看| 国产亚洲男人的天堂在线观看| 免费日韩在线视频| 国产成人1024精品下载| 久久永久免费人妻精品| 不卡视频国产| 亚洲欧美人成电影在线观看| 四虎永久在线视频| 亚洲一区免费看| 国产第一页屁屁影院| 高h视频在线| 91免费国产高清观看| 国产区人妖精品人妖精品视频| 精品视频在线观看你懂的一区| 免费va国产在线观看| 免费高清自慰一区二区三区| 国产一区成人| 国产日本欧美在线观看| 亚洲国产中文精品va在线播放| 亚洲男人天堂久久| 一本久道久综合久久鬼色| 欧美怡红院视频一区二区三区| 99视频在线观看免费| 91综合色区亚洲熟妇p| 国产理论最新国产精品视频| 在线国产欧美| 久久精品人妻中文视频| 欧美在线国产| 国产在线观看第二页| 中文字幕不卡免费高清视频| 五月天香蕉视频国产亚| 亚洲精品无码成人片在线观看| 丰满人妻中出白浆| 国产第四页| 99热这里只有精品免费| 日韩精品专区免费无码aⅴ| 伊人久综合| 亚洲综合中文字幕国产精品欧美| 伊人天堂网| 红杏AV在线无码| 久久亚洲日本不卡一区二区| 色婷婷在线播放| 被公侵犯人妻少妇一区二区三区| 国产成人h在线观看网站站| 国产95在线 | 亚洲中文字幕av无码区| 国产一级小视频| 日本妇乱子伦视频| 中文无码伦av中文字幕| 少妇高潮惨叫久久久久久| 一级毛片免费高清视频| 日韩无码白| 国产成人综合网在线观看| 日韩大片免费观看视频播放| 亚卅精品无码久久毛片乌克兰| 国产女人综合久久精品视|