當前位置:首頁 » 數據倉庫 » oracle10g資料庫配置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle10g資料庫配置

發布時間: 2023-03-02 16:06:46

⑴ 如何啟用Oracle10g閃回資料庫

可按以下步驟配置閃回資料庫:(確保資料庫處於ARCHIVELOG 模式。)
1. 配置快速恢復區。
2. 使用初始化參數DB_FLASHBACK_RETENTION_TARGET 設置保留目標。可指定
一個上限(以分鍾為單位),指示資料庫能夠閃回到多長時間以前。本示例使用
了 2880 分鍾,相當於兩天。此參數只是一個目標,並不提供任何保證。閃回時間
間隔取決於快速恢復區中保留的閃回數據量的大小。
3. 使用以下命令啟用閃回資料庫:
ALTER DATABASE FLASHBACK ON;
必須先配置資料庫以進行歸檔,且必須在 MOUNT EXCLUSIVE 模式下啟動資料庫
後,才能發出此命令來啟用閃回資料庫。
可以使用以下查詢來確定是否已啟用閃回資料庫:
SELECT flashback_on FROM v$database;
可以使用ALTER DATABASE FLASHBACK OFF 命令禁用閃回資料庫。這樣,會自動刪
除所有現有的閃回資料庫日誌。
註:僅當在獨占模式下裝載(而不是打開)資料庫時才能啟用閃回資料庫。

1.確認當前模式
SYS AS SYSDBA on 29-MAR-05 >select flashback_on from v$database;
FLA
---
NO
2.檢查/修改恢復區設置
SYS AS SYSDBA on 29-MAR-05 >show parameter db_recovery_file_dest
NAME TYPEVALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_deststring /u01/app/oracle/flash_recovery_areadb_recovery_file_dest_size big integer 10G
SYS AS SYSDBA on 29-MAR-05 >alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area';
SYS AS SYSDBA on 29-MAR-05 >alter system set db_recovery_file_dest_size=15G;

3.檢查/修改閃回時間設置
SYS AS SYSDBA on 29-MAR-05 >show parameter db_flashback_retention_target
NAME TYPEVALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_targetinteger 60
SYS AS SYSDBA on 29-MAR-05 >alter system set db_flashback_retention_target=1440;--分鍾
System altered.
如何設置flash recovery area
(1).db_recovery_file_dest:指定閃回恢復區的位置
(2).db_recovery_file_dest_size:指定閃回恢復區的可用空間大小
(3).db_flashback_retention_target:指定資料庫可以回退的時間,單位為分鍾,默認1440分鍾,也就是一天。當然,實際上可回退的時間還決定於閃回恢復區的大小,因為裡面保存了回退所需要的 flash log。所以這個參數要和db_recovery_file_dest_size配合修改。
alter system set db_flashback_retention_target=1440;
alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area';
alter system set db_recovery_size=15G;

4.重新啟動資料庫到Mount狀態
啟動flashback database選項。
SYS AS SYSDBA on 29-MAR-05 >shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS AS SYSDBA on 29-MAR-05 >startup mount exclusive;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1301704 bytes
Variable Size 261890872 bytes
Database Buffers 50331648 bytes
Redo Buffers1048576 bytes
Database mounted.

SYS AS SYSDBA on 29-MAR-05 >alter database flashback on;
Database altered.
SYS AS SYSDBA on 29-MAR-05 >alter database open;
Database altered.

⑵ 如何安裝Oracle 10g資料庫

1)。可以到ORACLE的官方網站去下載她的安裝壓縮包: http://www.oracle.com/technology/global/cn/software/procts/database/oracle10g/index.html 2)。解壓縮後就可以安裝了。執行SETUP.EXE 3)。在DOS下運行片刻進入ORACLE 10G安裝-安裝方法界面在這里你要指定自己的安裝方法,ORACLE提供了兩種安裝方法:基本安裝(I)和高級安裝(A) 基本安裝(I):使用標准配置選項(需要輸入的內容最少)執行完整的10g安裝。注意:此選項使用文件系統進行存儲,並將一個口令用於所有資料庫帳戶(SYS、SYSTEM、SYSMAN、DBSNMP)。要設置安裝的主目錄、安裝類型和創建啟動資料庫。 高級安裝(A):可提供高級選項,例如:為不同的帳戶設置不同的口令,選擇資料庫語言,產品語言,自動備份,定製安裝以及備用存儲選項(自動存儲管理)。 ORACLE默認的為基本安裝。選擇相應的安裝方法後,下一步。我為高級安裝。 4)。選擇安裝類型:(企業版、標准版、個人版、定製)。這里選擇企業版。下一步。 5)。指定主目錄詳細信息:包括安裝產品的名稱及安裝產品的完整路徑。選擇後下一步。 6)。進入產品特定先決條件的檢查界面:在這里要檢查安裝ORACLE所需的操作系統需求、物理內存需求、網路配置需求等等。檢查後的結果就在該界面下邊的下拉框中。可能個別的檢查結果會失敗,但不會影響安裝。 如果在第3)步選擇了基本安裝的話,就不用執行4)、5)步了。直接進入第6)步。 繼續下一步,可能會有警告可以忽律。 7)。如果本機上還安裝了其他版本的資料庫的話,可能會詢問是否升級現有的資料庫。選擇否。下一步。 8)。選擇配置選項(創建資料庫、配置自動存儲管理(ASM)、僅安裝資料庫軟體)。 9)。選擇資料庫配置即選擇你要創建的資料庫類型:(一般用途、事務處理、數據倉庫、高級)。 10)。指定資料庫配置選項(資料庫命名:全局資料庫名和系統標示符SID、資料庫字元集、資料庫示例是否創建帶樣本的資料庫)。 11)。選擇資料庫管理選項:默認為使用database control管理資料庫,是否啟用電子郵件通知。 12)。指定資料庫存儲選項:選定要創建資料庫的存儲機制(文件系統即你創建的資料庫的文件的位置、自動存儲管理、裸設備。) 13)。指定備份和恢復選項:選擇是否起用自動備份選項。 14)。指定資料庫方案的口令。包括SYS、SYSTEM、SYSMAN、DBSNMP的口令。注意口令的首字元為字母。 15)。最後生成ORACLE UNIVERSAL INSTALL的概要文件。仔細檢查概要文件確定自己的選項,如果沒有什麼更改的了,點安裝就開始ORACLE 10g的安裝了。具體的安裝時間不同,根據硬體的配置有關。 至此整個的安裝過程就結束了。

⑶ 如何設置使oracle10g性能最優 性能調優 步驟

一、 磁碟方面調優
1. 規范磁碟陣列
RAID 10比RAID5更適用於OLTP系統,RAID10先鏡像磁碟,再對其進行分段,由於對數據的小規模訪問會比較頻繁,所以對OLTP適用。而RAID5,優勢在於能夠充分利用磁碟空間,並且減少陣列的總成本。但是由於陣列發出一個寫入請求時,必須改變磁碟上已修改的塊,需要從磁碟上讀取「奇偶校驗」塊,並且使用已修改的塊計算新的奇偶校驗塊,然後把數據寫入磁碟,且會限制吞吐量。對性能有所影響,RAID5適用於OLAP系統。

2. 數據文件分布
分離下面的東西,避免磁碟競爭
Ø SYSTEM表空間
Ø TEMPORARY表空間
Ø UNDO表空間
Ø 聯機重做日誌(放在最快的磁碟上)
Ø 操作系統磁碟
Ø ORACLE安裝目錄
Ø 經常被訪問的數據文件
Ø 索引表空間
Ø 歸檔區域(應該總是與將要恢復的數據分離)
例:
² /: System
² /u01: Oracle Software
² /u02: Temporary tablespace, Control file1
² /u03: Undo Segments, Control file2
² /u04: Redo logs, Archive logs, Control file4
² /u05: System, SYSAUX tablespaces
² /u06: Data1 ,control file3
² /u07: Index tablespace
² /u08: Data2
通過下列語句查詢確定IO問題
select name ,phyrds,phywrts,readtim,writetim
from v$filestat a,v$datafile b
where a.file#=b.file# order by readtim desc;

3. 增大日誌文件

u 增大日誌文件的大小,從而增加處理大型INSERT,DELETE,UPDATE操作的比例
查詢日誌文件狀態
select a.member,b.* from v$logfile a,v$log b where a.GROUP#=b.GROUP#
查詢日誌切換時間
select b.RECID,to_char(b.FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') start_time,a.RECID,to_char(a.FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') end_time,round(((a.FIRST_TIME-b.FIRST_TIME)*25)*60,2) minutes
from v$log_history a ,v$log_history b
where a.RECID=b.RECID+1
order by a.FIRST_TIME desc

增大日誌文件大小,以及對每組增加日誌文件(一個主文件、一個多路利用文件)
u 增大LOG_CHECKPOINT_INTERVAL參數,現已不提倡使用它
如果低於每半小時切換一次日誌,就增大聯機重做日誌大小。如果處理大型批處理任務時頻繁進行切換,就增大聯機重做日誌數目。
alter database add logfile member 『/log.ora』 to group 1;
alter database drop logfile member 『/log.ora』;

4. UNDO表空間
修改三個初始參數:
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=CLOUDSEA_UNDO
UNDO_RETENTION=<#of minutes>

5. 不要在系統表空間中執行排序

二、 初始化參數調優
32位的定址最大支持應該是2的32次方,就是4G大小。但實際中32位系統(XP,windows2003等MS32位系統, ubuntu等linux32 位系統)要能利用4G內存,都是採用內存重映射技術。需要主板及系統的支持。如果關閉主板BIOS的重映射功能,系統將不能利用4G內存,可能只達3.5G.而在windows下看到的一般為3.25G。所以SGA設置為內存的40%,但不能超過3.25G
1. 重要初始化參數
l SGA_MAX_SIZE
l SGA_TARGET
l PGA_AGGREGATE_TARGET
l DB_CACHE_SIZE
l SHARED_POOL_SIZE

2. 調整DB_CACHE_SIZE來提高性能
它設定了用來存儲和處理內存中數據的SGA區域大小,從內存中取數據比磁碟快10000倍以上
根據以下查詢出數據緩存命中率
select sum(decode(name,'physical reads',value,0)) phys,
sum(decode(name,'db block gets',value,0)) gets,
sum(decode(name,'consistent gets',value,0)) con_gets,
(1- (sum(decode(name,'physical reads',value,0))/(sum(decode(name,'db block gets',value,0))+sum(decode(name,'consistent gets',value,0)) ) ))*100 Hitratio
from v$sysstat;
一個事務處理程序應該保證得到95%以上的命中率,命中率從90%提高到98%可能會提高500%的性能,ORACLE正在通過CPU或服務時間與等待時間來分析系統性能,不太重視命中率,不過現在的庫緩存和字典緩存仍將命中率作為基本的調整方法。

在調整DB_CACHE_SIZE時使用V$DB_CACHE_ADVICE
select size_for_estimate, estd_physical_read_factor, estd_physical_reads
from v$db_cache_advice
where name = 'DEFAULT';

如果查詢的命中率過低,說明缺少索引或者索引受到限制,通過V$sqlAREA視圖查詢執行緩慢的SQL

3. 設定DB_BLOCK_SIZE來反映數據讀取量大小
OLTP一般8K
OLAP一般16K或者32K

4. 調整SHARED_POOL_SIZE以優化性能

正確地調整此參數可以同等可能地共享SQL語句,使得在內存中便能找到使用過的SQL語句。為了減少硬解析次數,優化對共享SQL區域的使用,需盡量使用存儲過程、使用綁定變數

保證數據字典緩存命中率在95%以上
select ((1- sum(getmisses)/(sum(gets)+sum(getmisses)))*100) hitratio
from v$rowcache
where gets+getmisses <>0;

如果命中率小於 99%,就可以考慮增加shared pool 以提高library cache 的命中率

SELECT SUM(PINS) "EXECUTIONS",SUM(RELOADS) "CACHE MISSES WHILE EXECUTING",1 - SUM(RELOADS)/SUM(PINS)
FROM V$LIBRARYCACHE;

通常規則是把它定為DB_CACHE_SIZE大小的50%-150%,在使用了大量存儲過程或程序包,但只有有限內存的系統里,最後分配為150%。在沒有使用存儲過程但大量分配內存給DB_CACHE_SIZE的系統里,這個參數應該為10%-20%

5. 調整PGA_AGGREGATE_TARGET以優化對內存的應用
u OLTP :totalmemory*80%*20%
u DSS: totalmemory*80%*50%

6. 25個重要初始化參數
² DB_CACHE_SIZE:分配給數據緩存的初始化內存
² SGA_TARGET:使用了自動內存管理,則設置此參數。設置為0可禁用它
² PGA_AGGREGATE_TARGET:所有用戶PGA軟內存最大值
² SHARED_POOL_SIZE:分配給數據字典、SQL和PL/SQL的內存
² SGA_MAX_SIZE:SGA可動態增長的最大內存
² OPTIMIZER_MODE:
² CURSOR_SHARING:把字面SQL轉換成帶綁定變更的SQL,可減少硬解析開銷
² OPTIMIZER_INDEX_COST_ADJ:索引掃描成本和全表掃描成本進行調整,設定在1-10間會強制頻繁地使用索引,保證索引可用性
² QUERY_REWRITE_ENABLED:用於啟用具體化視圖和基於函數的索引功能
² DB_FILE_MULTIBLOCK_READ_COUNT:對於全表掃描,為了更有效執行IO,此參數可在一次IO中讀取多個塊
² LOG_BUFFER:為內存中沒有提交的事務分配緩沖區(非動態參數)
² DB_KEEP_CACHE_SIZE:分配給KEEP池或者額外數據緩存的內存
² DB_RECYCLE_CACHE_SIZE:
² DBWR_IO_SLAVES:如果沒有非同步IO,參數等同於DB_WRITER_PROCESSES模擬非同步IO而分配的從SGA到磁碟的寫入器數。如果有非同步IO,則使用DB_WRITER_PROCESSES設置多個寫程序,在DBWR期間更快地寫出臟塊
² LARGE_POOL_SIZE:分配給大型PLSQL或其他一些很少使用的ORACLE選項LARGET池的總塊數
² STATISTICS_LEVEL:啟用顧問信息,並可選擇提供更多OS統計信息來改進優化器決策。默認:TYPICAL
² JAVA_POOL_SIZE:為JVM使用的JAVA存儲過程所分配的內存
² JAVA_MAX_SESSIONSPACE_SIZE:跟蹤JAVA類的用戶會話狀態所用內存上限
² MAX_SHARED_SERVERS:當使用共享伺服器時的共享伺服器上限
² WORKAREA_SIZE_POLICY:啟用PGA大小自動管理
² FAST_START_MTTR_TARGET:完成一次崩潰恢復的大概時間/S
² LOG_CHECKPOINT_INTERVAL:檢查點頻率
² OPEN_CURSORS:指定了保存用戶語句的專用區域大小,如此設置過高會導致ORA-4031
² DB_BLOCK_SIZE:資料庫默認塊大小
² OPTIMIZER_DYNAMIC_SAMPLING:控制動態抽樣查詢讀取的塊數量,對正在使用全局臨時表的系統非常有用

三、 SQL調優1. 使用提示
1.1 改變執行路徑
通過OPTIMIZER_MODE參數指定優化器使用方法,默認ALL_ROWS
Ø ALL_ROWS 可得最佳吞吐量執行查詢所有行
Ø FIRST_ROWS(n) 可使優化器最快檢索出第一行:
select /*+ FIRST_ROWS(1) */ store_id,… from tbl_store

1.2 使用訪問方法提示
允許開發人員改變訪問的實際查詢方式,經常使用INDEX提示
Ø CLUSTER 強制使用集群
Ø FULL
Ø HASH
Ø INDEX 語法:/*+ INDEX (TABLE INDEX1,INDEX2….) */ COLUMN 1,….
當不指定任何INDEX時,優化器會選擇最佳的索引
SELECT /*+ INDEX */ STORE_ID FROM TBL_STORE
Ø INDEX_ASC 8I開始默認是升序,所以與INDEX同效
Ø INDEX_DESC
Ø INDEX_COMBINE 用來指定多個點陣圖索引,而不是選擇其中最好的索引
Ø INDEX_JOIN 只需訪問這些索引,節省了重新檢索表的時間
Ø INDEX_FFS 執行一次索引的快速全局掃描,只處理索引,不訪問具體表
Ø INDEX_SS
Ø INDEX_SSX_ASC
Ø INDEX_SS_DESC
Ø NO_INDEX
Ø NO_INDEX_FFS
Ø NO_INDEX_SS
1.3 使用查詢轉換提示
對於數據倉庫非常有幫助
Ø FACT
Ø MERGE
Ø NO_EXPAND 語法:/*+ NO_EXPAND */ column1,…
保證OR組合起的IN列表不會陷入困境,/*+ FIRST_ROWS NO_EXPAND */
Ø NO_FACT
Ø NO_MERGE
Ø NO_QUERY_TRANSFORMATION
Ø NO_REWRITE
Ø NO_STAR_TRANSFORMATION
Ø NO_UNSET
Ø REWRITE
Ø STAR_TRANSFORMATION
Ø UNSET
Ø USE_CONCAT

1.4 使用連接操作提示
顯示如何將連接表中的數據合並在一起,可用兩提示直接影響連接順序。LEADING指定連接順序首先使用的表,ORDERED告訴優化器基於FROM子句中的表順序連接這些表,並使用第一個表作為驅動表(最行訪問的表)
ORDERED語法:/*+ ORDERED */ column 1,….
訪問表順序根據FROM後的表順序來
LEADING語法:/*+ LEADING(TABLE1) */ column 1,….
類似於ORDER,指定驅動表
Ø NO_USE_HASH
Ø NO_USE_MERGE
Ø NO_USE_NL
Ø USE_HASH前提足夠的HASH_AREA_SIZE或PGA_AGGREGATE_TARGET
通常可以為較大的結果集提供最佳的響應時間
Ø USE_MERGE
Ø USE_NL 通常可以以最快速度返回一個行
Ø USE_NL_WITH_INDEX

1.5 使用並行執行
Ø NO_PARALLEL
Ø NO_PARALLEL_INDEX
Ø PARALLEL
Ø PARALLEL_INDEX
Ø PQ_DISTRIBUTE

1.6 其他提示
Ø APPEND 不會檢查當前所用塊中是否有剩餘空間,而直接插入到表中,會直接將數據添加到新的塊中。
Ø CACHE 會將全表掃描全部緩存到內存中,這樣可直接在內存中找到數據,不用在磁碟上查詢
Ø CURSOR_SHARING_EXACT
Ø DRIVING_SITE
Ø DYNAMIC_SAMPLING
Ø MODEL_MIN_ANALYSIS
Ø NOAPPEND
Ø NOCACHE
Ø NO_PUSH_PRED
Ø NO_PUSH_SUBQ
Ø NO_PX_JOIN_FILTER
Ø PUSH_PRED
Ø PUSH_SUBQ 強制先執行子查詢,當子查詢很快返回少量行時,這些行可以用於限制外部查詢返回行數,可極大地提高性能
例:select /*+PUSH_SUBQ */ emp.empno,emp.ename
From emp,orders
where emp.deptno=(select deptno from dept where loc=』1』)
Ø PX_JOIN_FILTER
Ø QB_NAME

2. 調整查詢

2.1 在V$SQLAREA中選出最佔用資源的查詢

HASH_VALUE:SQL語句的Hash值。
ADDRESS:SQL語句在SGA中的地址。
PARSING_USER_ID:為語句解析第一條CURSOR的用戶
VERSION_COUNT:語句cursor的數量
KEPT_VERSIONS:
SHARABLE_MEMORY:cursor使用的共享內存總數
PERSISTENT_MEMORY:cursor使用的常駐內存總數
RUNTIME_MEMORY:cursor使用的運行時內存總數。
SQL_TEXT:SQL語句的文本(最大隻能保存該語句的前1000個字元)。
MODULE,ACTION:用了DBMS_APPLICATION_INFO時session解析第一條cursor時信息
SORTS: 語句的排序數
CPU_TIME: 語句被解析和執行的CPU時間
ELAPSED_TIME: 語句被解析和執行的共用時間
PARSE_CALLS: 語句的解析調用(軟、硬)次數
EXECUTIONS: 語句的執行次數
INVALIDATIONS: 語句的cursor失效次數
LOADS: 語句載入(載出)數量
ROWS_PROCESSED: 語句返回的列總數
select b.username,a.DISK_READS,a.EXECUTIONS,a.DISK_READS/decode(a.EXECUTIONS,0,1,a.EXECUTIONS) rds_exec_ratio,a.SQL_TEXT
from v$sqlarea a ,dba_users b
where a.PARSING_USER_ID=b.user_id and a.DISK_READS>100 order by a.DISK_READS desc;

2.2 在V$SQL中選出最佔用資源的查詢
與V$SQLAREA類似
select * from
(select sql_text,rank() over (order by buffer_gets desc) as rank_buffers,to_char(100*ratio_to_report(buffer_gets) over (),'999.99') pct_bufgets from v$sql)
where rank_buffers <11

2.3 確定何時使用索引
² 當查詢條件只需要返回很少的行(受限列)時,則需要建立索引,不同的版本中這個返回要求不同
V5:20% V7:7% V8i,V9i:4% V10g: 5%
查看錶上的索引
select a.table_name,a.index_name,a.column_name,a.column_position,a.table_owner
from dba_ind_columns a
where a.table_owner='CLOUDSEA'

² 修正差的索引,可使用提示來限制很差的索引,如INDEX,FULL提示
² 在SELECT 和WHERE中的列使用索引
如: select name from tbl where no=?
建立索引:create index test on tbl(name,no) tablespace cloudsea_index storage(….)
對於系統中很關鍵的查詢,可以考慮建立此類連接索引

² 在一個表中有多個索引時可能出現麻煩,使用提示INDEX指定使用索引
² 使用索引合並,使用提示INDEX_JOIN
² 基於函數索引,由於使用了函數造成查詢很慢.必須基於成本的優化模式,參數:
QUERY_REWRITE_ENALED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED (OR ENFORCED)
create index test on sum(test);

2.4 在內存中緩存表
將常用的相對小的表緩存到內存中,但注意會影響到嵌套循環連接上的驅動表
alter table tablename cache;

2.5 使用EXISTS 與嵌套子查詢 代替IN
SELECT …FROM EMP WHERE DEPT_NO NOT IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_CAT=』A』);
(方法一: 高效)
SELECT ….FROM EMP A,DEPT B WHERE A.DEPT_NO = B.DEPT(+) AND B.DEPT_NO IS NULL AND B.DEPT_CAT(+) = 『A』
(方法二: 最高效)
SELECT ….FROM EMP E WHERE NOT EXISTS (SELECT 『X』 FROM DEPT D WHERE D.DEPT_NO = E.DEPT_NO AND DEPT_CAT = 『A』);

四、 使用STATSPACK和AWR報表調整等待和閂鎖

1. 10GR2里的腳本
在$ORACLE_HOME/RDBMS/ADMIN下

Spcreate.sql 通過調用spcusr.sql spctab.sql 和spcpkg.sql創建STATSPACK環境,使用SYSDBA運行它
Spdrop.sql 調用sptab.sql和spsr.sql刪除整個STATSPACK環境,使用SYSDBA運行它
Spreport.sql 這是生成報表的主要腳本,由PERFSTAT用戶運行
Sprepins.sql 為指定的資料庫和實例生成實例報表
Sprepsql.sql 為指定的SQL散列值生成SQL報表
Sprsqins.sql 為指定的資料庫和實例生成SQL報表
Spauto.sql 使用DBMS_JOB自動進行統計數據收集(照相)
Sprepcon.sql 配置SQLPLUS變數來設置像閾值這樣的內容的配置文件
Spurge.sql 刪除給定資料庫實例一定范圍內的快照ID,不刪除基線快照
Sptrunc.sql 截短STATSPACK表裡所有性能數據

五、 執行快速系統檢查1. 緩沖區命中率
查詢緩沖區命中率
select (1 - (sum(decode(name, 'physical reads',value,0)) /
(sum(decode(name, 'db block gets',value,0)) +
sum(decode(name, 'consistent gets',value,0))))) * 100 "Hit Ratio"
from v$sysstat;