程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 改進數據庫SQL語句進行優化的理由

改進數據庫SQL語句進行優化的理由

編輯:關於MYSQL數據庫

應用程序的優化通常可分為兩個方面:源代碼的優化和SQL語句的優化。源代碼的優化在時間成本和風險上代價很高;另一方面,源代碼的優化對數據庫系統性能的提升收效有限。

優化的理由

1)SQL語句是對數據庫(數據)進行操作的惟一途徑;

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

3)SQL語句獨立於程序設計邏輯,相對於對程序源代碼的優化,對SQL語句的優化在時間成本和風險上的代價都很低;

4)SQL語句可以有不同的寫法;

5)SQL語句易學,難精通。

優化技術的發展

第一代的SQL優化工具是執行計劃分析工具。這類的工具對輸入的SQL語句從數據庫提取執行計劃,並解釋執行計劃中關鍵字的含義;第二代的SQL優化工具只能提供增加索引的建議,它通過對輸入的SQL語句的執行計劃的分析來產生是否要增加索引的建議。該類工具存在著致命的缺點——只分析了一條SQL語句就得出增加某個索引的結論,根本不理會(實際上也無法評估到)增加的索引對整體數據庫系統性能的影響。其破壞性在於:

1、不理會增加的索引對其他增、刪、改SQL語句的負面影響;

2、沒有考慮增加的索引可能導致數據庫判斷失誤;

3、對由於增加索引引起的數據庫系統負擔忽略不計。

同時,這些工具由於技術水平的限制存在著以下缺點:

1、無法保證建議或改寫的正確性;

2、無法進行重寫,僅僅提供了建議或有限程度的改寫,重寫工作還是需要人工完成,優化工作所需的時間和工作量同人工進行優化差不多;

3、改寫的規則和Hints有限,難以處理復雜的SQL語句;

4、必須人手逐條進行測試。

這類工具曾經盛極一時,直到人工智能自動SQL優化的出現。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved