成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

想提高Oracle性能,如何優化數據庫?

數據庫 Oracle
以下的文章主要是對提高Oracle性能的實際操作方案的介紹其中包括優化數據庫,以及幾個比較簡單的步驟,下面就是文章的主要內容的介紹。

我們今天主要向大家介紹的是如何優化數據庫來大提高Oracle性能,以下我們就介紹幾個比較簡單的步驟來大幅的提高Oracle性能,沃爾瑪你很形象將其比喻成優化數據庫的三板斧,數據庫優化的討論可以說是一個永恒的主題。

資深的Oracle優化人員通常會要求提出Oracle性能問題的人對數據庫做一個statspack,貼出數據庫配置等等。還有的人認為要抓出執行最慢的語句來進行優化。

但實際情況是,提出疑問的人很可能根本不懂執行計劃,更不要說statspack了。而我認為,數據庫優化,應該首先從大的方面考慮:網絡、服務器硬件配置、操作系統配置、Oracle服務器配置、數據結構組織、然后才是具體的調整。

實際上網絡、硬件等往往無法決定更換,應用程序一般也無法修改,因此應該著重從數據庫配置、數據結構上來下手,首先讓數據庫有一個良好的配置,然后再考慮具體優化某些過慢的語句。我在給我的用戶系統進行優化的過程中,總結了一些基本的,簡單易行的辦法來優化數據庫,算是我的三板斧。

不過請注意,這些不一定普遍使用,甚至有的會有副作用,但是對OLTP系統、基于成本的數據庫往往行之有效,不妨試試。(注:附件是Burleson寫的用來報告數據庫Oracle性能等信息的腳本,本文用到)

一.設置合適的SGA

常常有人抱怨服務器硬件很好,但是Oracle就是很慢。很可能是內存分配不合理造成的。(1)假設內存有512M,這通常是小型應用。建議Oracle性能的SGA大約240M,其中:共享池(SHARED_POOL_SIZE)可以設置60M到80M,根據實際的用戶數、查詢等來定。數據塊緩沖區可以大致分配120M-150M,8i下需要設置DB_BLOCK_BUFFERS,DB_BLOCK_BUFFER*DB_BLOCK_SIZE等于數據塊緩沖區大小。

9i 下的數據緩沖區可以用db_cache_size來直接分配。

(2)假設內存有1G,Oracle 的SGA可以考慮分配500M:共享池分配100M到150M,數據緩沖區分配300M到400M。

(3)內存2G,SGA可以考慮分配1.2G,共享池300M到500M,剩下的給數據塊緩沖區。

(4)內存2G以上:共享池300M到500M就足夠啦,再多也沒有太大幫助;(Biti_rainy有專述)數據緩沖區是盡可能的大,但是一定要注意兩個問題:一是要給操作系統和其他應用留夠內存,二是對于32位的操作系統,Oracle的SGA有1.75G的限制。有的32位操作系統上可以突破這個限制,方法還請看Biti的大作吧。

二.分析表和索引,更改優化模式

Oracle性能默認優化模式是CHOOSE,在這種情況下,如果表沒有經過分析,經常導致查詢使用全表掃描,而不使用索引。這通常導致磁盤I/O太多,而導致查詢很慢。如果沒有使用執行計劃穩定性,則應該把表和索引都分析一下,這樣可能直接會使查詢速度大幅提升。

分析表命令可以用ANALYZE TABLE 分析索引可以用ANALYZE INDEX命令。對于少于100萬的表,可以考慮分析整個表,對于很大的表,可以按百分比來分析,但是百分比不能過低,否則生成的統計信息可能不準確。可以通過DBA_TABLES的LAST_ANALYZED列來查看表是否經過分析或分析時間,索引可以通過DBA_INDEXES的LAST_ANALYZED列。

下面通過例子來說明分析前后的速度對比。(表CASE_GA_AJZLZ大約有35萬數據,有主鍵)首先在SQLPLUS中打開自動查詢執行計劃功能。(***次要執行\RDBMS\ADMIN\utlxplan.sql來創建PLAN_TABLE這個表

  1. SQL> SET AUTOTRACE ON  
  2. SQL>SET TIMING ON  

通過SET AUTOTRACE ON 來查看語句的執行計劃,通過SET TIMING ON 來查看語句運行時間

  1. SQL> select count(*) from CASE_GA_AJZLZ;  
  2. COUNT(*)  
  3. ----------  
  4. 346639 

已用時間: 00: 00: 21.38  

Execution Plan  

0 SELECT STATEMENT Optimizer=CHOOSE 

1 0 SORT (AGGREGATE)  

2 1 TABLE ACCESS (FULL) OF 'CASE_GA_AJZLZ'  

…………………… 
 

 請注意上面分析中的TABLE ACCESS(FULL),這說明該語句執行了全表掃描。而且查詢使用了21.38秒。這時表還沒有經過分析。下面我們來對該表進行分析

  1. SQL> analyze table CASE_GA_AJZLZ compute statistics;  

表已分析。已用時間: 00: 05: 357.63。然后再來查詢:

  1. SQL> select count(*) from CASE_GA_AJZLZ;  
  2. COUNT(*)  
  3. ----------  
  4. 346639 
已用時間: 00: 00: 00.71

 

 

  1. Execution Plan  
  2. 0 SELECT STATEMENT Optimizer=FIRST_ROWS (Cost=351 Card=1)  
  3. 1 0 SORT (AGGREGATE)  
  4. 2 1 INDEX (FAST FULL SCAN) OF 'PK_AJZLZ' (UNIQUE) (Cost=351 
  5. Card=346351)  
  6. …………………………  

請注意,這次時間僅僅用了0.71秒!這要歸功于INDEX(FAST FULL SCAN)。通過分析表,查詢使用了PK_AJZLZ索引,磁盤I/O大幅減少,速度也大幅提升!下面的實用語句可以

【編輯推薦】

  1. Oracle查詢表名與表列名的實際操作方案
  2. Oracle實戰RMAN備份,***“看”
  3. Oracle存儲過程的詳細分析
  4. Oracle優化器三大種類的介紹
  5. Oracle外鍵與其主鍵的實際應用方案
責任編輯:佚名 來源: 互聯網
相關推薦

2010-05-10 15:50:39

Oracle數據庫性能

2009-05-11 14:19:55

Oracle性能優化數據庫

2011-05-20 10:30:20

ORACLE數據庫性能優化

2011-05-18 09:39:19

Oracle數據庫性能優化

2010-04-09 15:08:17

Oracle 數據庫性

2022-12-05 08:00:00

數據庫向量化數據庫性能

2010-11-15 16:13:24

Oracle數據庫性能

2011-04-11 14:56:09

Oracle性能

2011-03-11 14:56:33

Oracle數據庫命中率優化

2010-01-29 09:41:47

Oracle數據庫

2011-04-13 09:19:05

Oracle數據庫系統性能

2010-04-21 14:00:48

Oracle數據庫

2010-06-17 12:59:07

Oracle

2010-04-07 17:45:22

Oracle位圖索引

2022-06-28 15:00:28

數據庫性能操作系統

2012-11-21 17:35:21

Oracle技術嘉年華

2013-09-17 10:32:08

Android性能優化數據庫

2010-10-27 14:15:44

Oracle數據庫效率

2011-03-17 14:48:49

高級掃描數據庫查詢

2009-11-18 18:16:17

Oracle數據庫優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二区三区在线看 | 伊人伊人 | 亚洲一区二区国产 | 国产二区三区 | 久久久久亚洲精品 | 欧美在线一区二区三区 | 国产精品一区二区视频 | 91精品一区二区 | 一区二区三区中文字幕 | 91影院| 日韩高清一区二区 | 久久一区 | 久草在线| 精品国产乱码一区二区三 | 亚洲视频网 | 亚洲精品丝袜日韩 | 欧美激情精品久久久久久免费 | av网站免费观看 | 亚洲欧美久久 | 交专区videossex农村 | 国产一区二区免费 | 日韩成人免费视频 | 日韩a在线| 日韩 欧美 二区 | 在线中文视频 | 午夜免费电影院 | 免费国产一区二区 | 国产一区二区 | 性高湖久久久久久久久aaaaa | 日韩精品无码一区二区三区 | 久久婷婷香蕉热狠狠综合 | www.日韩在线 | 国精产品一区一区三区免费完 | 日韩在线免费观看视频 | 欧美一区二区在线 | 国产精品揄拍一区二区 | 亚洲在线电影 | 久久99精品国产99久久6男男 | 亚洲视频在线播放 | 一区二区精品 | 97国产在线视频 |