The content of the PGA memory varies, depending on whether the instance is running
the shared server option. But generally speaking, the PGA memory can be classified as
Private SQL Area
A private SQL area contains data such as bind information and runtime memory
structures. Each session that issues a SQL statement has a private SQL area. Each user
that submits the same SQL statement has his or her own private SQL area that uses a
single shared SQL area. Thus, many private SQL areas can be associated with the same
shared SQL area.
The private SQL area of a cursor is itself divided into two areas whose lifetimes are
■ The persistent area, which contains, for example, bind information. It is freed only
when the cursor is closed.
■ The run-time area, which is freed when the execution is terminated.
Oracle creates the runtime area as the first step of an execute request. For INSERT,
UPDATE, and DELETE statements, Oracle frees the runtime area after the statement has
been run. For queries, Oracle frees the runtime area only after all rows are fetched or
the query is canceled.
The location of a private SQL area depends on the type of connection established for a
session. If a session is connected through a dedicated server, private SQL areas are
located in the server process’s PGA. However, if a session is connected through a
shared server, part of the private SQL area is kept in the SGA.
1. 私有内存区域包括: 绑定变量信息, 运行时内存结构. 每个用户提交的相同的SQL语句都有不同的私有SQL区
2. 私有SQL区的游标被分为两个区, 声明周期是不同的
persistent area: 包含绑定变量信息, 当游标关闭时被释放
3. runtime area是在执行请求的第一步创建的, 对于insert, update, delete语句, Oracle在该语句执行完后
4. 如果是专有服务器模式, 私有SQL区位于服务器进程的PGA, 如果是共享服务器模式, 则保持在SGA.
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/10599713/viewspace-978525/，如需转载，请注明出处，否则将追究法律责任。