如何查看数据库pga信息 (查看数据库pga)

PGA(Program Global Area)是Oracle数据库中的一个重要组成部分,它负责存储数据库实例的进程内存。了解和有效管理PGA空间对于维护数据库的可用性和性能至关重要。本文将介绍如何查看数据库PGA信息。

1. 使用v$pga_target_advice视图

v$pga_target_advice视图提供了PGA目标设置的建议,该视图基于过去一段时间内PGA的使用情况生成。可以使用以下查询语句来查看v$pga_target_advice视图:

SELECT *

FROM v$pga_target_advice;

该查询语句将返回PGA大小范围、考虑不同PGA设置的工作区大小以及这些设置在不同情况下的建议。

2. 使用v$pga_target_histogram视图

v$pga_target_histogram视图提供了一个PGA空间大小分布的直方图。可以使用以下查询语句来查看v$pga_target_histogram视图:

SELECT *

FROM v$pga_target_histogram;

该查询语句将返回PGA目标各个范围的工作区数量、平均工作区大小、总空间使用情况以及PGA大小的标准偏差。

3. 使用v$process视图

v$process视图提供了关于每个进程的PGA分配情况以及应用程序名称的信息。可以使用以下查询语句来查看v$process视图:

SELECT program, pid, pga_used_mem, pga_alloc_mem

FROM v$process

WHERE program NOT LIKE ‘%PSP0%’

ORDER BY pga_used_mem DESC;

该查询语句将返回进程的PID、应用程序名称、已使用的PGA空间以及已分配的PGA空间。

4. 使用PGA_AGGREGATE_TARGET参数

PGA_AGGREGATE_TARGET参数指定整个数据库实例的PGA目标大小。可以使用以下查询语句来查看PGA_AGGREGATE_TARGET参数:

SHOW PARAMETER PGA_AGGREGATE_TARGET;

该查询语句将返回PGA_AGGREGATE_TARGET参数的值。适当地设置PGA_AGGREGATE_TARGET可以有效控制PGA内存的使用。

以上是查看数据库PGA信息的四种方法,可以根据实际情况选择适当的方法。了解和管理PGA内存空间可以有效提高数据库的性能和可用性,更好地服务于数据库应用程序的运行。

相关问题拓展阅读:

简述oracle数据库内存结构中sga和pga的组成,以及这两个内存区存放信息的区别

内存是影响数据库性能的重要因素,Oracle8i使用静态内存管理,Oracle 10g使用动态

  内存管理。

  所谓静态内存管理,就是在数据库系统中,无论是否有用户连接,也无论并发用

  量大小,只要数据库服务在运行槐陆早,就铅雀会分配固定大小的内存;动态内存管理允许在数据库服

  务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数悉悄据块时使用小内存,读

  取标准内存块时使用标准内存设置。

由浅入深讲解Oracle数据库进程的相关概念

Oracle数据库进程概述:

Database buffer cache主要用于存储数据文件中的数据块

数据库高速缓存的数据块是高速缓存与数据文件进行信息交换的基本单位。在Oracle数据库8i以前,数据块大小只有一种,而Oracle数据库9i以后支持2K,4K,8KB,16KB及32KB五种。

用命令SQLSHOW PARAMETER DB可以显示当前数据库的BUFFER CACHE

数据库缓存和特点如下:

1.根据最近最少使用LRU.

2. 由DB_BLOCK_SIZE来指定搏蠢肆大小。

3.ORACLE使用时是以块大小为单位进行数据存取的。

还包含以下一些独立的子缓存:

1.DB_CACHE_SIZE.

2.DB_KEEP_CACHE_SIZE.

3.DB_RECYCLE_CACHE_SIZE.

注:可以用Alter system set db_cache_advice=on;设置成根据系统的建议来指定大小。

REDO LOG FILE主要是用于重做日志

用命令SQLSHOW PARAMETER LOG_BUFFER。

SQLALTER SYSTEM SET LOG_BUFFER_SIZE=60M。

用来显示或修改重做日志缓冲区的一些信息。

命令SQLachive log list 可以查看数据库当前的归档模式。

LARGE POOL:

与JAVA POOL一样,都是作为系统可选的内存结构,由SGA来配置。

JAVA POOL:

当安装或使用JAVA时才用到。

ORACLE内存进程包括两个,一个是SGA,一个是PGA.

(1)。SGA在ORACLE实例启动时分配,是ORACLE实例的一个基本组件。

(2)。PGA是在当服务器进程启动时分配的。

进程结构:

1.USER PROCESS.用于用户与ORACLE SERVER交互的进程。

USER PROCESS必须与ORACLE建立连接后才可使用,不可与ORACLE SERVER交互。

2.SERVER PROCESS.

SERVER PROCESS在用户与服务之间建立连接后,为执行用户命令的一个进程。

3.BACKGROUND PROCESS.

后台进程:DATABASE WRITER (DBWn)用来把DATA BUFFER CACHE中的脏数据写回到数据库中。

(注:脏数据是被改变的数据。)

在以下情况下它会写数据库:

1.在发生CHECKPOINT同步。

2.脏数据达到阀值。

3.DATABASE BUFFER CACHE 自由空间太少了。

4.TIMEOUT (3秒钟。)

5.RAC PING REQUEST.

6.TABLESPACE OFFLINE.

7.TABLESPACE READON.

8.TABLE DROP OR TABLE TRUNCATE (表数据清空或表结构删除)。

9.TABLESPACE BEGIN BACKUP.

由SGA (包含DATABASE BUFFER CACHE,BACKGROUND PROCESS)—– —- {data files,

control files, redo log file} —-由此过程改变档则数据库中的数据。

LOG WRITER (LGWR) 日志写进程

在Oracle环境中

1.当COMMIT的时候。

2.当三分之一空间满时。

3.当日志有1MB需要重做时。

4.每3秒

5.BEFORE DBWn WRITES.(写数据前先写日志)。

REDO LOG BUFFER—–LGWR—DBWn

|REDO LOG FILES

SYSTEM MONITOR (ON)系统监控进程

主要任务:

(1)。启动过程(假定DATABASE重启时)如果需要RECOVERY,则此进程会负责打开数据库,及回滚没有

提交的事务;以及rolls forward changes in the redo logs这些统称为:instance recovery.

(2)。对每3秒就基轿对系统自由空间的整理。(COALESCES FREE SPACE EVER 3 SEC.)

(3)。清空临时段空间(DEALLOCATES TEMPORARY SEGMENTS)。

这个过程也是在系统启动过程中完成的。

PROCESS MONITOR (PMON) 进程监控进程

主要用于回滚异常终止的或被用户强制终止的事务。

1.rolling back the transaction.

2.releasing locks.释放锁。

3.releasing other resources.

4.restarts dead dispatchers.重启死掉的调度器。(在共享服务器中用)。

PMON (:Include in SGA)PGA

CHECKPOINT (CKPT) 检查点进程

用来在数据库里实现同步,实现之前会强制将脏数据从内在里写到物理文件里。

1.会启动DBWn来写脏数据(SIGNALLING DBWn at CKPT.)

2.完后会更新DATAFILE的HEADER和控制文件的HEADER.而HEADER中有同步所需要的信息,即

CHECKPOINT的信息。

3.在ORACLE中,正常情况下,所有文件必须同期性地同步;靠CHECKPOINT来完成。

CKPT(作为后台进程包含在实例中)—-DATABASE

(data files,control files,redo log files.)

| |______DBWn

|________LGWR

Archive PROCESS (ARCn) :归档进程(可选进程),当设置归档模式后,可用来自动备份在线日志,(归档日志是重做日志的备份。)

1.Automatically archives online redo logs when archiverlog mode is set.

(设置归档模式后,将自动备份在线日志)

在处理SQL语句时,注意以下过程:

1.用以下进程连接到实例。

用户进程(USER PROCESS)。

服务器进程(SERVER PROCESS)。

2.Oracle服务器进程组件的使用依赖于SQL语句的种类。

.查询语句会返回行。

.DML语句会记录这种改变。

.COMMIT保证了事务的RECOVERY.

3.并不是所有的SQL语句中所有的后台进程都会参与。

结论:

Oracle Server. Oracle服务器进程包含一些文件,进程和内存,在执行一条SQL语句时,并非所有这些都会用上,有些进程用于提高数据库的性能;一些用于当发生软件或硬件异常时恢复数据库;或应用于完成其他一些维护数据库的任务。ORACLE服务器包含ORACLE实例和ORACLE数据库。Oracle Instance: Oracle实例是用于联系后台进程和内在之间的活动,对数据库进行数据存取前必须先启动实例,每当实例启动时,SGA就被分配给它并启动了一些后台进程。后台进程执行10秒操作并监控有些进程以提供更好的性能。和可靠性。Oracle Database: 数据库包含了系统文件,也称数据库文件,其提供了用以存储数据库信息的实际物理存储区域,用数据文件保证了数据一致性,并在当实例发生失败时恢复数据库。

查看数据库pga的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于查看数据库pga,如何查看数据库pga信息,简述oracle数据库内存结构中sga和pga的组成,以及这两个内存区存放信息的区别,由浅入深讲解Oracle数据库进程的相关概念的信息别忘了在本站进行查找喔。


数据运维技术 » 如何查看数据库pga信息 (查看数据库pga)