1. 程式人生 > >數據庫----性能優化

數據庫----性能優化

性能測試

--性能優化時用的。

--查看為數據庫分配的內存。

select * from v$sga;

select * from v$sgastat;


--xshell 中, 查看為數據庫分配多少cpu 。

[root@localhost ~]# su - oracle

[oracle@localhost ~]$ sqlplus zy_12c/[email protected]:1521/orcl

SQL> show parameters cpu


--1、查看ORACLE最大遊標數

SQL> show parameter open_cursors;

--2、查看當前打開的遊標數目

SQL> select count(*) from v$open_cursor;

--3、修改ORACLE最大遊標數

SQL> alter system set open_cursors=1000 scope=both;

--系統已更改。

SQL> show parameter open_cursors;















--數據庫性能瓶頸分析。

select * from v$parameter a where a.NAME in('shared_pool_size','log_buffer','db_cache_size','java_pool_size','larger_pool_size'); --SGA分配情況。

select component,current_size/1048576,min_size/1048576 from v$sga_dynamic_components; --查看SGA使用情況




SQL> show parameter pga ; ---查詢PGA總大小。

SQL> select round(sum(pga_alloc_mem)/1048576,1) from v$process; --已經消耗的PGA


--每個session都會占用一定的PGA資源,必要的時候,需要控制session的數量。

select count(*) from v$session;




--查詢數據庫表空間使用情況。

SELECT a.tablespace_name,

a.bytes total,

b.bytes used,

c.bytes free,

(b.bytes * 100) / a.bytes "% USED ",

(c.bytes * 100) / a.bytes "% FREE "

FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c

WHERE a.tablespace_name = b.tablespace_name

AND a.tablespace_name = c.tablespace_name;





--查詢數據庫進程數

sql>select parameter process;

sql>select count(*) from v$process;




--目前可以調整的主要是數據庫內存配置和最大連接數的基本配置,提高並發處理效率。

--在進行測試時監測會話及連接等信息

Select * from v$session;

Select * from v$session where status='ACTIVE';

Select * from v$process;

Select * from v$locked_object;

--建議調整

--SGA參數Data buffer,將其盡可能的調大些。避免重復查詢的磁盤I/O操作。

--調整PGA參數設置原則:

--SGA+PGA+OS使用內存<總物理RAM。在調試過程中可以觀察PGA緩存設置命中率:

select value from v$sysstat where name ='physical reads';

select value from v$sysstat where name ='physical reads direct';

select value from v$sysstat where name ='physical reads direct (lob)';

select value from v$sysstat where name ='consistent gets';

select value from v$sysstat where name = 'db block gets';


數據庫----性能優化