<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 1, 文章 - 44, 評論 - 2, 引用 - 0
    數據加載中……

    SQL語句性能優化--LECCO SQL Expert

    SQL語句的優化是將性能低下的SQL語句轉換成目的相同的性能優異的SQL語句。

      人工智能自動SQL優化就是使用人工智能技術,自動對SQL語句進行重寫,從而找到性能最好的等效SQL語句。

      數據庫性能的優化

      一個數據庫系統的生命周期可以分成:設計、開發和成品三個階段。在設計階段進行數據庫性能優化的成本最低,收益最大。在成品階段進行數據庫性能優化的成本最高,收益最小。

      數據庫的優化通常可以通過對網絡、硬件、操作系統、數據庫參數和應用程序的優化來進行。最常見的優化手段就是對硬件的升級。根據統計,對網絡、硬件、操作系統、數據庫參數進行優化所獲得的性能提升,全部加起來只占數據庫系統性能提升的40%左右,其余的60%系統性能提升來自對應用程序的優化。許多優化專家認為,對應用程序的優化可以得到80%的系統性能的提升。

      應用程序的優化

      應用程序的優化通常可分為兩個方面:源代碼和SQL語句。由于涉及到對程序邏輯的改變,源代碼的優化在時間成本和風險上代價很高,而對數據庫系統性能的提升收效有限。

      為什么要優化SQL語句

      . SQL語句是對數據庫進行操作的惟一途徑,對數據庫系統的性能起著決定性的作用。

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

      . SQL語句獨立于程序設計邏輯,對SQL語句進行優化不會影響程序邏輯。

      . SQL語句有不同的寫法,在性能上的差異非常大。

      . SQL語句易學,但難精通。

      優化SQL語句的傳統方法是通過手工重寫來對SQL語句進行優化。DBA或資深程序員通過對SQL語句執行計劃的分析,依靠經驗,嘗試重寫SQL語句,然后對結果和性能進行比較,以試圖找到性能較佳的SQL語句。這種傳統上的作法無法找出SQL語句的所有可能寫法,且依賴于人的經驗,非常耗費時間。

      SQL優化技術的發展歷程

      第一代SQL優化工具是執行計劃分析工具。這類工具針對輸入的SQL語句,從數據庫提取執行計劃,并解釋執行計劃中關鍵字的含義。

      第二代SQL優化工具只能提供增加索引的建議,它通過對輸入的SQL語句的執行計劃的分析,來產生是否要增加索引的建議。

      第三代SQL優化工具不僅分析輸入SQL語句的執行計劃,還對輸入的SQL語句本身進行語法分析,經過分析產生寫法上的改進建議。

      人工智能自動SQL優化


    圖1 人工智能自動SQL優化示意圖

      人工智能自動SQL優化出現在90年代末。目前在商用數據庫領域,LECCO Technology Limited(靈高科研有限公司)擁有該技術,并提供使用該技術的自動優化產品LECCO SQL Expert,它支持Oracle、Sybase、MS SQL Server和IBM DB2數據庫平臺。該產品針對數據庫應用的開發和維護階段提供的模塊有:SQL語法優化器、PL/SQL集成化開發調試環境(IDE)、掃描器、數據庫監視器等。其核心模塊SQL 語法優化器的工作原理為:①輸入一條源SQL語句;②“人工智能反饋式搜索引擎”對輸入的SQL語句,結合檢測到的數據庫結構和索引進行重寫,產生N條等效的SQL語句輸出;③產生的N條等效SQL語句再送入“人工智能反饋式搜索引擎”進行重寫,直至無法產生新的輸出或搜索限額滿;④對輸出的SQL語句進行過濾,選出具有不同執行計劃的SQL語句;⑤對得到的SQL語句進行批量測試,找出性能最好的SQL語句。
    LECCO SQL Expert自動優化實例

      假設我們從源代碼中抽取出這條SQL語句(也可以通過內帶的掃描器或監視器獲得SQL語句):

      SELECT COUNT(*)

       FROM EMPLOYEE

      swheresEXISTS (SELECT 'X'

       FROM DEPARTMENT

      swheresEMP_DEPT=DPT_ID

       AND DPT_NAME LIKE 'AC%')

      AND EMP_ID IN (SELECT SAL_EMP_ID

       FROM EMP_SAL_HIST B

      swheresSAL_SALARY > 70000)

      按下“優化”按鈕后,經過10幾秒,SQL Expert就完成了優化的過程,并在這10幾秒的時間里重寫產生了2267 條等價的SQL語句,其中136條SQL語句有不同的執行計劃。

      接下來,我們可以對自動重寫產生的136條SQL語句進行批運行測試,以選出性能最佳的等效SQL語句。按下“批運行” 按鈕,在“終止條件” 頁選擇“最佳運行時間SQL語句”,按“確定”。

      經過幾分鐘的測試運行后,我們可以發現SQL124的運行時間和反應時間最短。運行速度約有22.75倍的提升(源SQL語句運行時間為2.73秒,SQL124運行時間為0.12秒)。現在我們就可以把SQL124放入源代碼中,結束一條SQL語句的優化工作了。

      “邊做邊學式訓練”提升SQL開發水平

      LECCO SQL Expert不僅能夠找到最佳的SQL語句,它所提供的“邊做邊學式訓練”還能夠教開發人員和數據庫管理員如何寫出性能最好的SQL語句。LECCO SQL Expert的“SQL比較器”可以標明源SQL和待選SQL間的不同之處。

      以上面優化的結果為例,為了查看源SQL語句和SQL124在寫法上有什么不同,我們可以按下“比較器” 按鈕,對SQL124和源SQL語句進行比較。“SQL 比較器”將SQL124相對于源SQL語句的不同之處以藍顏色表示了出來。如果選擇“雙向比較”復選框,“SQL 比較器”可以將兩條SQL語句的不同之處以藍色表示。當然,我們也可以從源語句和重寫后的SQL 語句中任選兩條進行比較。

      從比較的結果可以看到,重寫后的SQL124把第一個Exists改寫成了In;在字段DPT_ID上進行了合并空字符串的操作,以誘導數據庫先執行子查詢中的

      (SELECT DPT_ID||''

      FROM DEPARTMENT

      WHERE DPT_NAME LIKE 'AC%')

      在子查詢完成后,再與EMPLOYEE表進行嵌套循環連接(Nested Loop Join)。

      如果覺得對寫法的改變難以理解,還可以點中“執行計劃”復選框,通過比較兩條SQL語句的執行計劃的不同,來了解其中的差異。在查看執行計劃過程中,如果有什么不明白的地方,可以點中“SQL信息按鈕”,再點擊執行計劃看不明白的地方,LECCO SQL Expert的上下文敏感幫助系統將提供執行計劃該處的解釋。

      在“SQL比較器”中,選中“統計信息”復選框后,可得到詳細的兩條SQL語句運行時的統計信息比較,這對于學習不同的SQL寫法對數據庫資源的消耗很有幫助。

      LECCO SQL Expert優化模塊的特點
    LECCO SQL Expert優化模塊的特點主要表現為:自動優化SQL語句;以獨家的人工智能知識庫“反饋式搜索引擎”來重寫性能優異的SQL語句;找出所有等效的SQL語句及可能的執行計劃;保證產生相同的結果;先進的SQL語法分析器能處理最復雜的SQL語句;可以重寫SELECT、SELECT INTO、UPDATE、INSERT和DELETE語句;通過測試運行,為應用程序和數據庫自動找到性能最好的SQL語句;提供微秒級的計時,能夠優化Web應用程序和有大量用戶的在線事務處理中運行時間很短的SQL語句;為開發人員提供“邊做邊學式訓練”,迅速提高開發人員的SQL編程技能;提供上下文敏感的執行計劃幫助系統和SQL運行狀態幫助;不是猜測或建議,而是獨一無二的SQL重寫解決方案。

      寫出專家級的SQL語句

      LECCO SQL Expert的出現,使SQL的優化變得極其簡單,只要能夠寫出SQL語句,它就能幫用戶找到最好性能的寫法。LECCO SQL Expert不僅能在很短的時間內找到所有可能的優化方案,而且能夠通過實際測試,確定最有效的優化方案。同以往的數據庫優化手段相比較,LECCO SQL Expert將數據庫優化技術帶到了一個嶄新的技術高度,依賴人的經驗、耗費大量時間、受人的思維束縛的數據庫優化手段已經被高效、省時且準確的自動優化軟件所取代了。通過內建的“LECCO小助手”的幫助,即使是SQL的開發新手,也能快速且簡單地寫出專家級的SQL語句。

    posted on 2006-12-11 11:21 ASONG 閱讀(238) 評論(0)  編輯  收藏 所屬分類: database

    主站蜘蛛池模板: 亚洲乱码中文字幕小综合| 亚洲色成人WWW永久网站| 97精品免费视频| 在线观看免费宅男视频| 在线综合亚洲中文精品| 亚洲免费无码在线| 久久亚洲av无码精品浪潮| 一级看片免费视频| 久久99亚洲综合精品首页| 亚洲精品视频免费观看| 国产亚洲精品xxx| 永久免费视频网站在线观看| 久久青青草原亚洲av无码app | 亚洲ⅴ国产v天堂a无码二区| 免费国产成人α片| 亚洲视频国产视频| 毛片a级毛片免费播放下载| 亚洲午夜精品一区二区麻豆| 黄a大片av永久免费| ww在线观视频免费观看w| 国产V亚洲V天堂A无码| www视频免费看| 亚洲高清乱码午夜电影网| 亚洲一区二区高清| 最近免费最新高清中文字幕韩国| 亚洲一区二区影视| 亚洲精品第一国产综合境外资源| 九九美女网站免费| 亚洲综合成人婷婷五月网址| 亚洲成AV人在线观看网址| 亚洲欧美日韩综合久久久久| 免费夜色污私人影院在线观看| 免费a级毛片无码a∨免费软件| 亚洲日本在线播放| 亚洲成av人片不卡无码久久| 久草免费手机视频| 久久精品国产亚洲AV| 亚洲AV无码乱码国产麻豆穿越| 国产精品美女午夜爽爽爽免费| 一区二区三区视频免费观看| 亚洲第一成年网站大全亚洲|