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

通過分析SQL語句的執行計劃優化SQL

編輯:關於SqlServer
通過分析SQL語句的執行計劃優化SQL (一)
作者: 不詳  來源: ChinaITlab  http://www.csai.cn  2006年03月07日
  第1章 性能調整綜述

  Oracle數據庫是高度可調的數據庫產品。本章描述調整的過程和那些人員應與Oracle服務器的調整有關,以及與調整相關聯的操作系統硬件和軟件。本章包括以下方面:
  *誰來調整系統?
  *什麼時候調整?
  *建立有效調整的目標
  *在設計和開發時的調整
  *調整產品系統
  *監控產品系統

  誰來調整系統:

  為了有效地調整系統,若干類人員必須交換信息並牽涉到系統調整中,例如:
  * 應用設計人員必須傳達應用系統的設計,使得每個人都清楚應用中的數據流動.
  * 應用開發人員必須傳達他們選擇的實現策略,使得語句調整的過程中能快速、容易地識別有問題的應用模塊和可疑的SQl語句.
  * 數據庫管理人員必須仔細地監控系統活動並提供它們的資料,使得異常的系統性能可被快速得識別和糾正.
  * 硬件/軟件管理人員必須傳達系統的硬件、軟件配置並提供它們的資料,使得相關人員能有效地設計和管理系統。

  簡而言之,與系統涉及的每個人都在調整過程中起某些作用,當上面提及的那些人員傳達了系統的特性並提供了它們的資料,調整就能相

對的容易和更快一些。

  不幸的是,事實上的結果是:數據庫管理員對調整負有全部或主要的責任。但是,數據庫管理員很少有合適的系統方面的資料,而且,在

很多情況下,數據庫管理員往往是在實施階段才介入數據庫,這就給調整工作帶來許多負面的影響,因為在設計階段的缺陷是不能通過DBA的調

整而得以解決,而設計階段的缺陷往往對數據庫性能造成極大的影響。

  其實,在真正成熟的開發環境下,開發人員作為純代碼編寫人員時,對性能的影響最小,此時大部分的工作應由應用設計人員完成,而且

數據庫管理員往往在前期的需求管理階段就介入,為設計人員提供必要的技術支持。調整並不是數據庫管理員的專利,相反大部分應該是設計

人員和開發人員的工作,這就需要設計人員和開發人員具體必要的數據庫知識,這樣才能組成一個高效的團隊,然而事實上往往並非如此。

  什麼時候作調整?

  多數人認為當用戶感覺性能差時才進行調整,這對調整過程中使用某些最有效的調整策略來說往往是太遲了。此時,如果你不願意重新設

計應用的話,你只能通過重新分配內存(調整SGA)和調整I/O的辦法或多或少地提高性能。Oracle提供了許多特性,這些特性只有應用到正確地

設計的系統中時才能夠很大地提高性能。

  應用設計人員需要在設計階段設置應用的性能期望值。然後在設計和開發期間,應用設計人員應考慮哪些Oracle 特性可以對系統有好處,

並使用這些特性。通過良好的系統設計,你就可以在應用的生命周期中消除性能調整的代價和挫折。當然,即使在設計很好的系統中,也可能

有性能降低。但這些性能降低應該是可控的和可以預見的。

  調整目標

  不管你正在設計或維護系統,你應該建立專門的性能目標,它使你知道何時要作調整。如果你試圖胡亂地改動初始化參數或SQl語句,你可

能會浪費調整系統的時間,而且無什麼大的收益。調整你的系統的最有效方法如下:
  * 當設計系統時考慮性能
  * 調整操作系統的硬件和軟件
  * 識別性能瓶頸
  * 確定問題的原因
  * 采取糾正的動作

  當你設計系統時,制定專門的目標;例如,響應時間小於3秒。當應用不能滿足此目標時,識別造成變慢的瓶頸(例如,I/O競爭),確定

原因,采取糾正動作。在開發期間,你應測試應用研究,確定在采取應用之前是否滿足設計的性能目標。

  當你正在維護生產庫系統時,有多種快速有效的方法來識別性能瓶頸。不管怎樣,調整通常是一系列開銷。一旦你已確定了瓶頸,你可能

要犧牲一些其它方面的指標來達到所要的結果。例如,如果I/O有問題,你可能需要更多內存或磁盤。如果不可能買,你可能要限制系統的並發

性,來獲取所需的性能。然而,如果你已經明確地定義了性能的目標,那用什麼來交換高性能的決策就變的很容易的,因為你已經確定了哪些

方面是最重要的,如過我的目標為高性能,可能犧牲一些空間資源。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved