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

ORACLE數據庫的性能取決於SQL語句的執行效率

編輯:關於MYSQL數據庫

應用程序的執行其目的就是對數據庫的操作,SQL語句消耗了70%到90%的數據庫資源。因此Oracle數據庫的性能取決於SQL語句的 執行效率。許多程序員認為查詢優化是DBMS(數據庫管理系統)的任務,與程序員所編寫的SQL語句關系不大,這是錯誤的。一個好的查詢計劃往往可以使程序性能提高數十倍。另外,SQL語句獨立於程序設計邏輯,相對於對程序源代碼的優化,對SQL語句的優化在時間成本和風險上的代價都很低。


SQL優化的主要途徑是:


a.有效索引的建立。在經常進行連接,但是沒有指定為外鍵的列上建立索引;在頻繁進行排序或分組(即進行group by 或 order by 操作)的列上建立索引;在條件表達式中經常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引;如果待排序的列有多個,可以在這些列上建立復合索引(compound index)。


為了降低I/O竟爭, 索引要建在與用戶表空間不在同一磁盤上的索引空間裡。索引分為:分區索引、完全索引、唯一索引、位圖索引等幾種類型,在建立索引前,應該測量這個索引的選擇性,索引的選擇性是指索引列裡不同值的數目與表中記錄數的比。


b.在有大量重復值並且經常有范圍查詢(例如 between,>,<>=,<=)的列,或是用到order by、group by的列,可考慮建立群集索引 ;


c.要經常同時存取多列,目每列都含有重復值可考慮建立組合索引


d.優化表達式,在能使用范圍查詢時盡可能使用范圍索引, 而少用“like”,因為“LIKE”關鍵字支持的通配符匹配特別耗費時間。


f.使用Oracle語句優化器(Oracle optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。

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