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

老鳥全面講述oracle數(shù)據(jù)庫對象

數(shù)據(jù)庫 Oracle
這里介紹共享池存放庫緩存(存儲共享SQL和PL/SQL區(qū))和數(shù)據(jù)字典緩存(Oracle數(shù)據(jù)庫對象信息)以及會話期間信息(對于MTS)。由于這些信息是應用程序需要經(jīng)常訪問的,因此這些信息需要保持高的命中率。

Oracle有很多值得學習的地方,這里我們主要介紹Oracle數(shù)據(jù)庫對象,包括介紹Oracle實例等方面。每一個Oracle實例都是由一組Oracle后臺進程和SGA的一個內(nèi)存區(qū)組成的。這組后臺進程會自動的讀寫數(shù)據(jù)庫的數(shù)據(jù)文件,數(shù)據(jù)庫性能可以被這些因素所影響:
◆SGA各部分的分配是否合理,使用效率是否正常;
◆I/O和鎖競爭是否較多。

1.SGA的分配及使用效率

分配給每個實例的內(nèi)存,即SGA的使用效率如何,會大大影響數(shù)據(jù)庫系統(tǒng)的性能。SGA由下列部分組成:共享池、數(shù)據(jù)塊緩沖區(qū)、重做日志緩沖區(qū)、大池組成。

共享池存放庫緩存(存儲共享SQL和PL/SQL區(qū))和數(shù)據(jù)字典緩存(Oracle數(shù)據(jù)庫對象信息)以及會話期間信息(對于MTS)。由于這些信息是應用程序需要經(jīng)常訪問的,因此這些信息需要保持高的命中率。可以通過以下語句來確認共享池數(shù)據(jù)的命中率:

◆庫緩存:

  1. select gethitratio from v$librarycache 應大于90%  
  2. select sum(reloads)/sum(pins) from v$librarycache 應小于1% 

◆數(shù)據(jù)字典緩存:

  1. select sum(getmisses)/sum(gets) from v$rowcache 應小于15% 

由于程序設計人員的水平參差不齊,可能存在大的匿名塊,這會導致SQL不能重用,因此需要找出大的匿名塊以轉(zhuǎn)換為存儲過程達到重用:

  1. select * from v$sqlarea where command_type=47 and length(sql_text)>500 

而對于一些應用系統(tǒng)非常頻繁使用的SQL對象如存儲過程、函數(shù)、包等,可以通過釘在內(nèi)存中的方式來防止由于共享池太小被移出:

  1. exec dbms_shared_pool.keep 

◆數(shù)據(jù)塊緩沖區(qū)(Db block buffer):

數(shù)據(jù)塊緩沖區(qū)存放用戶所經(jīng)常訪問的數(shù)據(jù)文件的數(shù)據(jù)塊內(nèi)容以及用戶修改的數(shù)據(jù)內(nèi)容。數(shù)據(jù)庫把數(shù)據(jù)文件里的內(nèi)容讀到內(nèi)存中,下次需要時直接從內(nèi)存中讀取,從而減少了磁盤的I/O和響應時間。當然,一般只在比較小的數(shù)據(jù)表(如常用代碼表)才緩存到內(nèi)存中。

由于數(shù)據(jù)快緩沖區(qū)中不可能存放所有的數(shù)據(jù),因此可使用LRU算法來確定移出哪些數(shù)據(jù)塊,但又盡量保證有較高的數(shù)據(jù)命中率。

查看數(shù)據(jù)塊命中率的SQL語句為:

  1. select 1-(phy.value/(cur.value+con.value)) 
    from v$sysstat cur,v$sysstat con,v$sysstat phy  
  2. where cur.name='db block gets' and con.name='consistent gets' 
  3. and phy.name='physical gets' 

如果這個命中率小于0.85,就要考慮為數(shù)據(jù)塊緩沖區(qū)分配更多的內(nèi)存了。

◆重做日志緩沖區(qū)(Log buffer):

重做日志緩沖區(qū)存放從用戶內(nèi)存區(qū)復制來的每個DML或DDL語句的重做條目。如果這個緩沖區(qū)分配太小會導致沒有足夠的空間來放重做條目而等待。

2.I/O和資源競爭

由于有眾多的進程要寫數(shù)據(jù)文件,因此需要通過I/O調(diào)整來解決I/O瓶頸問題。如果在設計階段有效地考慮了表空間的合理分配,就能有效地在一定程度上減少I/O競爭。在數(shù)據(jù)庫運行時,由于數(shù)據(jù)的動態(tài)增長,原來分配給表或索引的空間已經(jīng)用完,Oracle會自動分配空間給這些Oracle數(shù)據(jù)庫對象。而這個動態(tài)分配會對系統(tǒng)性能有所影響,所以要求:

避免動態(tài)空間管理

表空間的本地化管理,以減少與數(shù)據(jù)字典表空間的磁盤競爭。

在系統(tǒng)設計和試運行階段數(shù)據(jù)量相對較小,效率低下的SQL可能并不會影響系統(tǒng)響應時間,但當系統(tǒng)數(shù)據(jù)量增長到一定程度時,需要在系統(tǒng)運行時監(jiān)控并找出是哪些SQL不能有效使用索引或缺少索引,并進行相應調(diào)整:建立索引;修改SQL寫法。

另外,在Oracle中,需要采用一些機制來保證Oracle數(shù)據(jù)庫對象在使用期間的穩(wěn)定性和數(shù)據(jù)的一致性,如使用鎖存器(latch)、鎖(lock)等。因此爭用和這些機制相關的資源會影響數(shù)據(jù)庫的性能。為了減少這種資源競爭,可以通過調(diào)整數(shù)據(jù)庫的相關初始化參數(shù)(如db_block_lru_latches、 dml_locks)來減少資源的爭用,優(yōu)化數(shù)據(jù)庫性能。

【編輯推薦】

  1. 老鳥全面講述oracle數(shù)據(jù)庫對象
  2. 高手談怎樣調(diào)整Oracle數(shù)據(jù)庫
  3. 五分鐘了解什么是Oracle數(shù)據(jù)庫
  4. Oracle數(shù)據(jù)庫備份與恢復特性淺談
  5. SQL Server與Oracle數(shù)據(jù)庫事務處理橫向?qū)Ρ?/FONT>
責任編輯:佚名 來源: CSDN
相關推薦

2009-11-19 17:28:43

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

2011-03-25 09:37:17

2011-08-02 17:53:23

Oracle對象類型對象類型表

2012-04-16 15:00:05

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

2010-04-23 09:23:44

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

2011-05-26 10:30:12

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

2015-08-21 12:59:38

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

2011-03-10 13:24:26

2011-03-16 08:54:45

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

2011-05-19 13:25:14

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

2011-07-04 13:36:26

linuxOracle

2010-03-10 17:37:48

Linux磁盤配額

2010-04-14 10:12:07

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

2010-06-17 12:59:07

Oracle

2010-04-02 13:59:08

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

2010-04-14 15:14:11

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

2011-03-07 13:30:53

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

2011-05-24 14:27:42

2010-04-19 16:01:54

2011-03-29 10:47:49

ORACLE數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號