国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

優化Oracle數據庫性能

2024-08-29 13:41:28
字體:
來源:轉載
供稿:網友

  ---- 隨著網絡應用和電子商務的不斷發展,各個站點的訪問量越來越大,如何使有限的計算機系統資源為更多的用戶服務?如何保證用戶的響應速度和服務質量?這些問題都屬于服務器性能優化的范疇。作為較成功的數據庫廠商,Oracle公司數據庫的性能優化是如何進行的呢?
  
  優化策略
  ----為了保證Oracle數據庫運行在最佳的性能狀態下,在信息系統開發之前就應該考慮數據庫的優化策略。優化策略一般包括服務器操作系統參數調整、數據庫參數調整、網絡性能調整、應用程序SQL語句分析及設計等幾個方面,其中應用程序的分析與設計是在信息系統開發之前完成的。
  ----分析評價Oracle數據庫性能主要有數據庫吞吐量、數據庫用戶響應時間兩項指標。數據庫用戶響應時間又可以分為系統服務時間和用戶等待時間兩項,即:
  
  ----數據庫用戶響應時間=系統服務時間+用戶等待時間
  
  ----因此,獲得滿足的用戶響應時間有兩個途徑:一是減少系統服務時間,即提高數據庫的吞吐量;二是減少用戶等待時間,即減少用戶訪問同一數據庫資源的沖突率。
  
  ----數據庫性能優化包括如下幾個部分:
  
  ----1. 調整數據結構的設計 這一部分在開發信息系統之前完成,程序員需要考慮是否使用Oracle數據庫的分區功能,對于經常訪問的數據庫表是否需要建立索引等。
  
  ----2. 調整應用程序結構設計 這一部分也是在開發信息系統之前完成的。程序員在這一步需要考慮應用程序使用什么樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的數據庫資源是不同的。
  
  ----3. 調整數據庫SQL語句 應用程序的執行最終將歸結為數據庫中的SQL語句執行,因此SQL語句的執行效率最終決定了Oracle數據庫的性能。 Oracle公司推薦使用Oracle語句優化器(Oracle Optimizer)和行鎖治理器(Row-Level Manager)來調整優化SQL語句。
  
  ----4. 調整服務器內存分配 內存分配是在信息系統運行過程中優化配置的。數據庫治理員根據數據庫的運行狀況不僅可以調整數據庫系統全局區(SGA區)的數據緩沖區、日志緩沖區和共享池的大小,而且還可以調整程序全局區(PGA區)的大小。
  
  ----5. 調整硬盤I/O 這一步是在信息系統開發之前完成的。數據庫治理員可以將組成同一個表空間的數據文件放在不同的硬盤上,做到硬盤之間I/O 負載均衡。
  
  ----6. 調整操作系統參數 例如:運行在Unix操作系統上的 Oracle數據庫,可以調整Unix數據緩沖區的大小、每個進程所能使用的內存大小等參數。
  
  ----實際上,上述數據庫優化措施之間是相互聯系的。Oracle 數據庫性能惡化的表現基本上都是用戶響應時間比較長,需要用戶長時間的等待。而性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結果,這就需要數據庫治理員有比較全面的計算機知識,能夠敏感地察覺到影響數據庫性能的主要原因所在。另外,良好的數據庫治理工具對于優化數據庫性能也是很重要的。
  
  性能優化工具
  ---- Oracle數據庫常用的數據庫性能優化工具有:
  ----1. Oracle數據庫在線數據字典 Oracle在線數據字典能夠反映出Oracle的動態運行情況,對于調整數據庫性能是很有幫助的。
  
  ----2. 操作系統工具 例如使用Unix操作系統的Vmstat、 Iostat等命令可以查看到系統級內存和硬盤I/O的使用情況,這些工具能夠幫助治理員弄清楚系統瓶頸出現在什么地方。
  
  ----3. SQL語言跟蹤工具(SQL Trace Facility)
  
  ----SQL語言跟蹤工具可以記錄SQL語句的執行情況,治理員可以使用虛擬表來調整實例,并使用SQL語句跟蹤文件調整應用程序性能。SQL語言跟蹤工具將結果輸出成一個操作系統的文件,治理員可以使用TKPROF工具查看這些文件。
  
  ---- 4. Oracle Enterprise Manager(OEM) 這是一個圖形的用戶治理界面,用戶可以使用它方便地進行數據庫治理而不必記住復雜的Oracle數據庫治理的命令。
  
  ----5. EXPlain Plan——SQL語言優化命令 使用這個命令可以幫助程序員寫出高效的SQL語言。
  
  系統性能評估
  ----信息系統的類型不同,需要關注的數據庫參數也是不同的。數據庫治理員需要根據自己的信息系統類型來著重考慮不同的數據庫參數。
  ----1. 在線事務處理信息系統(OLTP) 這種類型的信息系統一般需要有大量的Insert、Update操作,典型的系統包括民航機票發售系統、銀行儲蓄系統等。
OLTP系統需要保證數據庫的并發性、可靠性和最終用戶的速度,這類系統使用的Oracle數據庫需主要考慮以下參數:
  
  數據庫回滾段是否足夠?
  是否需要建立Oracle數據庫索引、聚集、散列?
  系統全局區(SGA)大小是否足夠?
  SQL語句是否高效?
  ----2. 數據倉庫系統(Data Warehousing) 這種信息系統的主要任務是從Oracle的海量數據中進行查詢,以得到數據之間的某些規律。數據庫治理員需要為這種類型的Oracle數據庫著重考慮下述參數:
  
  是否采用B*索引或者Bitmap索引?
  是否采用并行SQL查詢以提高查詢效率?
  是否采用PL/SQL函數編寫存儲過程?
  有必要的話,需要建立并行數據庫以提高數據庫的查詢效率。
  參數的調整
  ----1. CPU參數
  ---- CPU是服務器的一項重要資源,服務器良好的工作狀態表現為在工作高峰時CPU的使用率高于90%。假如空閑時間CPU使用率就在90%以上,說明服務器缺乏CPU資源;假如工作高峰時CPU使用率仍然很低,則說明服務器CPU 資源還比較充足。
  
  ----使用操作命令可以看到CPU的使用情況,一般Unix操作系統的服務器,可以使用sar-u命令查看CPU的使用率;NT操作系統的服務器,可以使用NT的性能治理器來查看CPU的使用率。
  
  ----數據庫治理員可以通過查看v$sysstat數據字典中的 “CPU used by this session”統計項得知Oracle數據庫使用的CPU時間;查看“OS User level CPU time”統計項得知操作系統用戶狀態下的CPU時間;查看“OS System call CPU time” 統計項得知操作系統系統狀態下的CPU時間,操作系統總的CPU時間就是用戶狀態和系統狀態時間之和。假如Oracle數據庫使用的CPU時間占操作系統總CPU時間的90%以上,就說明服務器CPU基本上被Oracle數據庫使用著,這是合理的,反之,則說明服務器CPU被其他程序占用過多,Oracle數據庫無法得到更多的CPU時間。
  
  ---- 2. 內存參數
  
  ----內存參數的調整主要是指Oracle數據庫的系統全局區(SGA)的調整。SGA主要由3部分構成:共享池、數據緩沖區、日志緩沖區。
  
  ----共享池由兩部分構成:共享SQL區和數據字典緩沖區。共享SQL區是存放用戶SQL命令的區域,數據字典緩沖區則存放數據庫運行的動態信息。
  
  結束語
  ----Oracle數據庫的性能優化調整是一個系統工程,涉及的方面很多。數據庫治理員需要綜合運用上面介紹的規律,認真分析Oracle在運行過程當中出現的各種問題,以保證Oracle數據庫運行的高效率。還需要指出的是,上面給出的語句只是測得Oracle運行過程的某一個時間點的情況,數據庫治理員不能僅僅根據一個點的情況就斷定數據庫運行性能的好壞,只有多運行一些時間點才能對數據庫運行狀況做出一個綜合評估。
  ----由于單個時間點的監測是很麻煩的,且對于多個時間點的監測更是一項煩瑣的工作,為此,筆者開發了Oracle數據庫性能監測軟件ORATUNE。這個軟件不僅能夠定時從數據庫中讀取各種參數并自動計算出各種比例,而且還能自動根據這些比例的好壞建議數據庫治理員修改某項參數。
  
  ----ORATUNE已經在清華大學、華北電力集團等多個單位得到了應用,對Oracle數據庫的性能優化調整起到了良好的作用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜春市| 庆云县| 阜城县| 宣恩县| 六盘水市| 二连浩特市| 垦利县| 扶风县| 铁岭市| 达日县| 繁峙县| 湖北省| 海口市| 无为县| 无锡市| 永顺县| 湘西| 米泉市| 光山县| 额敏县| 广昌县| 山西省| 丰镇市| 黎城县| 吉林省| 浦县| 永定县| 来安县| 富锦市| 英超| 沂南县| 分宜县| 枣阳市| 舒兰市| 始兴县| 义乌市| 敦煌市| 潜江市| 衡阳市| 五华县| 宾川县|