天天看點

10g online -database performance tuning guide -閱讀系列筆記1

聯機幫助文檔 之 資料庫性能優化向導

 database performance tuning guide

前言 preface

适用讀者:

  oracle資料庫性能優化向導,是負責管理,維護和優化資料庫的人的一個工具。這本書描述了增強資料庫性能的細節,通過寫和優化合适的sql,實用性能優化工具來優化執行個體性能。也解釋了如何建立一個性能最優的,并包含性能相關參數介紹資訊的初始化資料庫。這本書對于資料庫管理者,應用設計者和程式員都是很有用的。

*************************************10.2版本更新的性能特征包括****************************************************

--active session history reports

ash報告

--automatic pga memory management

v$process_memory

--automatic shared memory management

sga 的記憶體相關參數通過自我調優算法進行調整,自動記憶體管理已經被增強,并且流池作為sga自動管理的一部分進行字都調整。

--automatic tuning of multiblock read count

多塊讀的自動調整,db_file_multiblock_read_count當此參數沒有明确設定的時候 使用預設值。

--automatic workload repository reports

awr報告 顯示了一個鏡像範圍的統計資料。增加了兩個統計資訊的視圖,awrsqrpt.sql awrsqrpi.sql,對sql做詳細的描述。

--configurable automatic workload repository sql collect

AWR 的收集,處理和維護優化統計資訊都是為了問題的診斷和自身的調優為目的。包括sql的描述都會對對系統産生最高的負載這個功能增強了清空top sql數量的标準(經過時間,cpu時間,解析調用,共享記憶體和版本數量);

--enhanced end to end application tracing

端對端的應用跟蹤可以識别一個過渡負載的資源,例如高負載的sql描述。這個功能已經增強到了對于會話級别,執行個體的範圍或者整個資料庫的級别中的sql進行追蹤。

--improved system statistics

v$sysstat視圖 增加了行去擷取被任何oracle 程序作出的實體io總數。 并且,增加了新的等待事件到other wait class,來降低維護統計資訊而使用的記憶體。

--sql access advisor

相關的包 dbms_advisor 推薦使用基于函數的索引 ,推薦的過程可以能被中斷,并且在OEM中會有改善的地方。

--sql profiles

dbms_sqltune包 提供了允許sql在字面值不一樣的時候使用綁定變量的方法共享sql的能力

--sql tuning advisor

使用新的v$advisor_progress視圖去監視sql tuning advisor的執行進展。

--sql tuning sets

sql調優集能夠從另外一個系統使用dbms_sqltune包中子程式進行導入導出

--v$sqlstats 視圖

v$sqlstats 視圖傳回sql遊标的性能的統計資訊,v$sqlstats包含了出現在v$sql和v$sqlarea中的列的子集。然而,v$sqlstats不同于v$sql和v$sqlarea,它更快,更有擴充性,并且擁有較大的資料儲存。在擷取sql遊标方面的作用,v$sqlstats被推薦去取代v$sql。

*****************************part 1 performance tuning****************************************************

第一部分 性能調優

第一部分提供了性能調優的介紹和概述

包含的章節:

+性能調優的介紹

--性能計劃

---了解投資選項

---了解延展性

---系統體系結構

---應用設計原則

---工作負載測試 模型 和改善

---部署新的應用

--執行個體調優

--sql調優

+性能優化特征和工具

--Automatic Performance Tuning Features

--Additional Oracle Tools

~~~~~~~~~~~~~~~~~~~~~~~~~~~投資選項~~~~~~~~~~~~~~~~~~~~~~~~~~~~

由于低價高性能的處理器,記憶體和磁盤驅動的可用性,我們會傾向于買買更多的系統資源區提高性能,有時候,新的cpu,記憶體或者更多的磁盤驅動真的能提供性能上的立即提高。但是任何硬體上的性能提高應該被認為是對即時問題一種暫時的緩解。如果需求和負載率在應用上不斷增長,你就很可能在不久的将來再次面對同樣的問題。

另一種情況是,增加的硬體不能改善系統的性能,不管增加多少硬體裝置,壞的設計總是導緻低下的性能。在買增加裝置的時候要保證沒有多線程或者單線程會持續在應用中。長期來看,增加應用的效率會比增加實體資源的商業花費更加有價值。

~~~~~~~~~~~~~~~~~~~~~~了解延展性~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

延展性這個詞總是在發展的環境中被使用。以下部分提供了延展性的解釋,主要是針對應用設計者和性能專家。

什麼是延展性?

延展性是說一個使用資源成比例增加的系統中,系統的能力足以處理更多的負載。換句話說如果你增加一倍的負載,系統會使用兩倍的系統資源。,聽起來很正常,但是由于系統内部的沖突,資源的使用可能超過原負載的兩倍。

舉例說明由于資源沖突導緻的壞的擴充性:

--當使用者數激增的時候,應用需要可觀的并發管理

--增長的鎖活動

--增長的資料量負載

--增長的作業系統負載

--随着資料量的增加,資料通路中的事務也需要增加。

--不好的sql和索引設計導緻和獲得行數相同的大量的邏輯IO。

--降低有效性 因為要花費更久的時間去維護這些資料路對象。

如果一個應用消耗的系統資源,當工作負載增加的時候,不能增加更大的吞吐量,那麼這個以你夠用就是非擴充性的。這種應用就會導緻一個壞的響應時間。

資源耗盡包括下面的一些情況:

--硬碟耗盡

--大容量的表掃描引起必然的磁盤io短缺

--過度的網絡請求導緻網絡和程序瓶頸

--記憶體配置設定引起頁的換進換出

--過度的程序和線程配置設定導緻作業系統崩潰

這就意味着應用的設計者的設計必須使用相同的資源,不管使用者數量和資料容量多大,所有的負載都不會超過他們的限制。

系統的延展性

可通過網際網路通路的應用有很多複雜的性能和可用性要求。一些應用就是為在網際網路上應用而設計的,但是典型的辦公室背景應用,例如普遍的分類賬目應用可能會需要所有或者部分資料線上

網絡時代應用的規格參數表如下:

--24小時 一天可用 365天 一年有效

--不穩定和不精确的同時線上使用者數

--困難的容量規劃

--多樣的體系結構

--無狀态的中間件

--迅速的發展

--極少的測試時間

2-1圖顯示了傳統的負載增長曲線,應用的設計必須符合負載的增長

并且增加的硬體也必須支援增長的需求。設計錯誤可能導緻執行達到它的最大值,而不考慮增長的硬體資源或者重設計的效果。

##也就是說應用的設計要為最後添加的硬體流出一部分資源,不能設計之初就是當時負載占用了全部的資源,那麼到要新增硬體的時候就發現,沒有資源可以利用了,是以連硬體資源都沒法添加。##

在短時間和有效的測試以及評估之後的應用是不完美的,但是壞的設計普遍意味着未來的某一天,這個系統需要重新構造和執行。如果一個已知結構和執行閑置的應用部署在網際網路上,并且如果負載超過了預計的需求,那就真正的失敗了。從一個商業的角度,壞的性能就意味着會丢失客戶,如果網絡使用者沒有在幾秒得到回報,那麼使用者就永遠失去這個耐心了。

有些情況下,重新設計系統的花費和down機時間的花費以及遷移到新的執行超過了适當建立初始的系統的花費。從道理上講很簡單,記住從一開始的時候就設計和實施好可擴充性。

阻止可擴充性的因素;

在建立應用的時候,設計師應該從一開始就緻力于盡可能完美的設計科擴充性,有時稱作線性規劃,也就是系統吞吐量直接和cpu數量成正比。

現實中,線性規劃師不可能的,因為超出了設計者的控制,但是如果盡可能的去設計應用的可擴充性,現在和将來性能都會通過硬體的擴充和cpu技術的演變而更加完美。

阻礙線性規劃的因素包括

--壞的應用設計執行和配置

----壞的模式設計引起昂貴的sql代價

----壞的事務設計引起鎖和連環問題

----壞的連結管理能引起壞的相應時間和不穩定的系統

----系統環境壞的io政策

----産品環境能夠使用不同的在測試中生成的執行計劃

----記憶體密集型應用部署到一個沒有考慮運作時記憶體的大容量記憶體上能引起過度的記憶體使用。

----無效率的記憶體使用和記憶體缺乏在子系統引起高的記憶體壓力,這影響性能和可用性。

--錯誤的硬碟組建的大小

--軟體組建的限制

--硬體組建的限制

#######################系統結構##########################################

兩個部分

硬體和軟體元件

為需求配置正确的系統結構

(未完待續)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24799772/viewspace-677650/,如需轉載,請注明出處,否則将追究法律責任。

轉載于:http://blog.itpub.net/24799772/viewspace-677650/