Home Database Mysql Tutorial Oracle9i自动PGA管理的新特性

Oracle9i自动PGA管理的新特性

Jun 07, 2016 pm 03:14 PM
new features characteristic manage automatic

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 在Oracle9i之前,PGA的计算和控制都是比较复杂的事情,从Oracle9i开始,Oracle提供了一种SQL内存管理的新方法:自动化SQL执行内存管理(Automated SQL Execution Memory Management),使用这个新特

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

    在Oracle9i之前,PGA的计算和控制都是比较复杂的事情,从Oracle9i开始,Oracle提供了一种SQL内存管理的新方法:自动化SQL执行内存管理(Automated SQL Execution Memory Management),使用这个新特性,Oracle可以自动调整S Q L内存区,而不用关闭数据库,这一改进大大简化了DBA的工作,同时也提高了Oracle数据库的性能。

    为实现自动的PGA管理,Oracle引入了几个新的初始化参数:

    1.PGA_AGGREGATE_TARGET-此参数用来指定所有session总计可以使用最大PGA内存。这个参数可以被动态的更改,取值范围从10M ―― (4096G-1 )bytes. 2.WORKAREA_SIZE_POLICY-此参数用于开关PGA内存自动管理功能,该参数有两个选项:AUTO 和 MANUAL,当设置为AUTO时,数据库使用Oracle9i提供的自动PGA管理功能,当设置为MANUAL时,则仍然使用Oracle9i前手工管理的方式。

    缺省的,Oracle9i中WORKAREA_SIZE_POLICY被设置为AUTO.

    需要注意的是,在Oracle9i中,PGA_AGGREGATE_TARGET参数仅对专用服务器模式下(Dedicated Server)的专属连接有效,但是对共享服务器(Shared Server)连接无效;从Oracle10g开始PGA_AGGREGATE_TARGET对专用服务器连接和共享服务器连接同时生效。

    PGA_AGGREGATE_TARGET 参数同时限制全局PGA分配和私有工作区内存分配:

    1.对于串行操作,单个SQL操作能够使用的PGA内存按照以下原则分配:MIN(5% PGA_AGGREGATE_TARGET,100MB)

    2.对于并行操作30% PGA_AGGREGATE_TARGET /DOP (DOP=Degree Of Parallelism 并行度)

    要理解PGA的自动调整,还需要区分可调整内存(TUNABLE MEMORY SIZE)与不可调整内存(UNTUNABLE MEMORY SIZE)。可调整内存是由SQL工作区使用的,其余部分是不可调整内存。

    启用了自动PGA调整之后, Oracle仍然需要遵循以下原则:

    UNTUNABLE MEMORY SIZE + TUNABLE MEMORY SIZE

    数据库系统只能控制可调整部分的内存分配,如果可调整的部分过小,则Oracle永远也不会强制启用这个等式。

    另外,PGA_AGGREGATE_TARGET参数在CBO优化器模式下,对于SQL的执行计划会产生影响。Oracle在评估执行计划时会根据PGA_AGGREGATE_TARGET参数评估在Sort,HASH-JOIN或Bitmap操作时能够使用的最大或最小内存,从而选择最优的执行计划。

    对于PGA_AGGREGATE_TARGET参数的设置,Oracle提供这样一个建议方案1.对于OLTP系统PGA_AGGREGATE_TARGET  = ( * 80%) * 20% 2.对于DSS系统PGA_AGGREGATE_TARGET  = ( * 80%) * 50%

    也就是说,对于一个单纯的数据库服务器,通常我们需要保留20%的物理内存给操作系统使用,剩余80%可以分配给Oracle使用。Oracle使用的内存分为两部分SGA和PGA,那么PGA可以占用Oracle消耗总内存的20%(OLTP系统)至50%(DSS系统)。

    这只是一个建议设置,更进一步的我们应该根据数据库的具体性能指标来调整和优化PGA的使用。

Oracle9i自动PGA管理的新特性

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Linux Tips: Cancel automatic indentation when pasting in vim Linux Tips: Cancel automatic indentation when pasting in vim Mar 07, 2024 am 08:30 AM

Preface: vim is a powerful text editing tool, which is very popular on Linux. Recently, I encountered a strange problem when using vim on another server: when I copied and pasted a locally written script into a blank file on the server, automatic indentation occurred. To use a simple example, the script I wrote locally is as follows: aaabbbcccddd. When I copy the above content and paste it into a blank file on the server, what I get is: aabbbcccddd. Obviously, this is what vim does automatically for us. Format indentation. However, this automatic is a bit unintelligent. Record the solution here. Solution: Set the .vimrc configuration file in our home directory, new

Automount drives on Linux Automount drives on Linux Mar 20, 2024 am 11:30 AM

If you are using a Linux operating system and want the system to automatically mount the drive on boot, you can do this by adding the device's unique identifier (UID) and mount point path to the fstab configuration file. fstab is a file system table file located in the /etc directory. It contains information about the file systems that need to be mounted when the system starts. By editing the fstab file, you can ensure that the required drives are loaded correctly every time the system starts, thus ensuring stable system operation. Automatically mounting drivers can be conveniently used in a variety of situations. For example, I plan to back up my system to an external storage device. To achieve automation, ensure that the device remains connected to the system, even at startup. Likewise, many applications will directly

Are there any class-like object-oriented features in Golang? Are there any class-like object-oriented features in Golang? Mar 19, 2024 pm 02:51 PM

There is no concept of a class in the traditional sense in Golang (Go language), but it provides a data type called a structure, through which object-oriented features similar to classes can be achieved. In this article, we'll explain how to use structures to implement object-oriented features and provide concrete code examples. Definition and use of structures First, let's take a look at the definition and use of structures. In Golang, structures can be defined through the type keyword and then used where needed. Structures can contain attributes

How to partition a disk How to partition a disk Feb 25, 2024 pm 03:33 PM

How to partition disk management With the continuous development of computer technology, disk management has become an indispensable part of our computer use. As an important part of disk management, disk partitioning can divide a hard disk into multiple parts, allowing us to store and manage data more flexibly. So, how to partition disk management? Below, I will give you a detailed introduction. First of all, we need to make it clear that there is not only one way to partition disks. We can flexibly choose the appropriate disk partitioning method according to different needs and purposes. often

Choose the applicable Go version, based on needs and features Choose the applicable Go version, based on needs and features Jan 20, 2024 am 09:28 AM

With the rapid development of the Internet, programming languages ​​are constantly evolving and updating. Among them, Go language, as an open source programming language, has attracted much attention in recent years. The Go language is designed to be simple, efficient, safe, and easy to develop and deploy. It has the characteristics of high concurrency, fast compilation and memory safety, making it widely used in fields such as web development, cloud computing and big data. However, there are currently different versions of the Go language available. When choosing a suitable Go language version, we need to consider both requirements and features. head

Research on the role and management methods of home directory in Oracle database Research on the role and management methods of home directory in Oracle database Mar 07, 2024 pm 02:27 PM

Exploring the role and management methods of the master directory in the Oracle database. In the Oracle database, the master directory (MasterDirectory) is an important object. Its main function is to specify the default storage location of all data files and control files in the Oracle database. By setting the home directory, you can easily manage the storage and access of database files and improve the performance and security of the database. The home directory can be managed in the following ways: 1. Create a home directory To create a home directory, you can

How to add and manage users in Google Manager How to add and manage users in Google Manager Sep 02, 2024 pm 02:41 PM

How to add and manage users in Google Manager? Google Chrome supports multiple users to log in, so we don’t have to worry about logging in across devices. If we have many users, we need to add management. Some friends may not know how to operate. Don't worry, the editor has compiled a detailed step-by-step tutorial for everyone today. If you are interested, come and take a look with the editor. Detailed step-by-step tutorial instructions 1. After turning on the computer, find the installed Google Chrome icon on the desktop and double-click to open it, as shown in the picture below. 2. Click the three dots icon in the upper right corner of Google Chrome, as shown in the picture below. 3. Click the [Settings] option in the drop-down menu of Google Chrome, as shown in the figure below. 4. In the Google Chrome settings interface that opens, click [Manage ch

Learn to use pipenv: Create and manage virtual environments Learn to use pipenv: Create and manage virtual environments Jan 16, 2024 am 09:34 AM

pipenv tutorial: Create and manage virtual environments, specific code examples are required Introduction: With the popularity of Python, the number of project development is also increasing. In order to effectively manage the Python packages used in projects, virtual environments have become an essential tool. In this article, we'll cover how to use pipenv to create and manage virtual environments, and provide practical code examples. What is pipenv? pipenv is a virtual environment management tool widely used by the Python community. It integrates p

See all articles