自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle事例中System Global Area(SGA)介紹

數(shù)據(jù)庫 Oracle
我們今天介紹的是Oracle事例中System Global Area(SGA)的幾個(gè)部分的相關(guān)介紹,其中包括共享池,(Database Buffer Cache) 等,相關(guān)的介紹。

以下的文章主要是介紹Oracle事例 ,其中包括Oracle 的兩大實(shí)例的介紹,Oracle 數(shù)據(jù)庫 、以及系統(tǒng)共享區(qū)System Global Area(SGA) ,的相關(guān)內(nèi)容的介紹,以下是文章的詳細(xì)內(nèi)容望你會有所了解。

1、Oracle 實(shí)例

System Global Area(SGA) 和 Background Process 被成為數(shù)據(jù)庫的實(shí)例。

2、Oracle 數(shù)據(jù)庫

一系列物理文件的集合(數(shù)據(jù)文件,控制文件,聯(lián)機(jī)日志,參數(shù)文件等)

3、系統(tǒng)全局共享區(qū)System Global Area(SGA)

System Global Area 是一塊巨大的共享內(nèi)存區(qū)域,他被看做是Oracle 數(shù)據(jù)庫的一個(gè)大緩沖池,這里的數(shù)據(jù)可以被Oracle的各個(gè)進(jìn)程共用。其大小可以通過如下語句查看:

SQL> select * from v$sga;

NAME VALUE

-------------------- ---------

Fixed Size 39816

Variable Size 259812784

Database Buffers 1.049E+09

Redo Buffers 327680

更詳細(xì)的信息可以參考V$sgastat、V$buffer_pool

主要包括以下幾個(gè)部分:

a、 共享池(Shared pool)

共享池是SGA中最關(guān)鍵的內(nèi)存片段,特別是在性能和可伸縮性上。一個(gè)太小的共享池會扼殺性能,使系統(tǒng)停止,太大的共享池也會有同樣的效果,將會消耗大量的CPU來管理這個(gè)共享池。不正確的使用共享池只會帶來災(zāi)難。共享池主要又可以分為以下兩個(gè)部分:

·SQL語句緩沖(Library Cache)

當(dāng)一個(gè)用戶提交一個(gè)SQL語句,在這個(gè)Oracle事例中Oracle會將這句SQL進(jìn)行分析(parse),這個(gè)過程類似于編譯,會耗費(fèi)相對較多的時(shí)間。在分析完這個(gè)SQL,Oracle會把他的分析結(jié)果給保存在Shared pool的Library Cache中,當(dāng)數(shù)據(jù)庫第二次執(zhí)行該SQL時(shí),Oracle自動跳過這個(gè)分析過程,從而減少了系統(tǒng)運(yùn)行的時(shí)間。這也是為什么第一次運(yùn)行的SQL 比第二次運(yùn)行的SQL要慢一點(diǎn)的原因。

對于保存在共享池中的SQL語句,可以從V$Sqltext、v$Sqlarea中查詢到,對于編程者來說,要盡量提高語句的重用率,減少語句的分析時(shí)間。一個(gè)設(shè)計(jì)的差的應(yīng)用程序可以毀掉整個(gè)數(shù)據(jù)庫的Share pool,提高SQL語句的重用率必須先養(yǎng)成良好的變成習(xí)慣,盡量使用Bind變量。

·數(shù)據(jù)字典緩沖區(qū)(Data Dictionary Cache)顯而易見,數(shù)據(jù)字典緩沖區(qū)是Oracle特地為數(shù)據(jù)字典準(zhǔn)備的一塊緩沖池,供Oracle內(nèi)部使用,沒有什么可以說的。

b、塊緩沖區(qū)高速緩存(Database Buffer Cache)

這些緩沖是對應(yīng)所有數(shù)據(jù)文件中的一些被使用到的數(shù)據(jù)塊。讓他們能夠在內(nèi)存中進(jìn)行操作。在這個(gè)級別里沒有系統(tǒng)文件,,戶數(shù)據(jù)文件,臨時(shí)數(shù)據(jù)文件,回滾段文件之分。也就是任何文件的數(shù)據(jù)塊都有可能被緩沖。數(shù)據(jù)庫的任何修改都在該緩沖里完成,并由DBWR進(jìn)程將修改后的數(shù)據(jù)寫入磁盤。

這個(gè)緩沖區(qū)的塊基本上在兩個(gè)不同的列表中管理。一個(gè)是塊的“臟”表(Dirty List),需要用數(shù)據(jù)庫塊的書寫器(DBWR)來寫入,另外一個(gè)是不臟的塊的列表(Free List),一般的情況下,是使用最近最少使用(Least Recently Used,LRU)算法來管理。

塊緩沖區(qū)高速緩存又可以細(xì)分為以下三個(gè)部分(Default pool,Keep pool,Recycle pool)。如果不是人為設(shè)置初始化參數(shù)(Init.ora),Oracle將默認(rèn)為Default pool。

由于操作系統(tǒng)尋址能力的限制,不通過特殊設(shè)置,在32位的系統(tǒng)上,塊緩沖區(qū)高速緩存最大可以達(dá)到1.7G,在64位系統(tǒng)上,塊緩沖區(qū)高速緩存最大可以達(dá)到10G。

c、重做日志緩沖區(qū)(Redo log buffer)

重做日志文件的緩沖區(qū),對數(shù)據(jù)庫的任何修改都按順序被記錄在該緩沖,然后由LGWR進(jìn)程將它寫入磁盤。這些修改信息可能是DML語句,如(Insert,Update,Delete),或DDL語句,如(Create,Alter,Drop等)。

在Oracle事例中重做日志緩沖區(qū)的存在是因?yàn)閮?nèi)存到內(nèi)存的操作比較內(nèi)存到硬盤的速度快很多,所以重作日志緩沖區(qū)可以加快數(shù)據(jù)庫的操作速度,但是考慮的數(shù)據(jù)庫的一致性與可恢復(fù)性,數(shù)據(jù)在重做日志緩沖區(qū)中的滯留時(shí)間不會很長。所以重作日志緩沖區(qū)一般都很小,大于3M之后的重作日志緩沖區(qū)已經(jīng)沒有太大的實(shí)際意義。

 【編輯推薦】

  1. Oracle函數(shù)to_char轉(zhuǎn)化成小數(shù)點(diǎn)的位數(shù)
  2. Oracle to_char()函數(shù)具有強(qiáng)大的功能
  3. Oracle數(shù)據(jù)庫中怎樣選擇合適索引類型
  4. 在Oracle 學(xué)習(xí)中進(jìn)行數(shù)據(jù)庫查詢
  5. Oracle數(shù)據(jù)類型轉(zhuǎn)換的實(shí)際應(yīng)用方案
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-04-12 16:03:12

Oracle SGA設(shè)

2010-10-28 14:29:39

Oracle內(nèi)存結(jié)構(gòu)

2009-11-18 14:29:37

Oracle函數(shù)

2010-04-12 15:40:48

Oracle SGA

2010-04-08 09:00:29

Oracle內(nèi)存結(jié)構(gòu)

2009-02-01 10:45:18

Oracle數(shù)據(jù)庫性能調(diào)整

2010-04-13 15:49:02

Oracle SGA

2010-09-21 03:52:06

2010-04-09 15:15:01

Oracle SGA

2011-07-29 15:58:53

SGAOracle

2010-03-31 14:36:50

Oracle進(jìn)程結(jié)構(gòu)

2010-03-31 10:30:03

Oracle 10g

2009-10-23 16:03:40

Oracle 10g系內(nèi)存管理

2010-04-06 12:48:12

Oracle性能

2010-04-01 14:55:04

Oracle約束

2012-10-18 10:14:00

IBMdw

2009-09-18 16:56:22

System.LINQ

2010-10-28 13:07:56

Oracle syst

2010-04-23 14:32:01

Oracle數(shù)據(jù)庫

2010-04-07 16:02:29

Oracle性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號