Thứ Năm, 11 tháng 5, 2023

Bí quyết sử dụng PGA của Oracle Database

Program Global Area (PGA) là vùng bộ nhớ chứa dữ liệu và thông tin điều khiển cho một tiến trình máy chủ (server process). Nó là vùng bộ nhớ không chia sẻ (SGA là vùng nhớ chia sẻ nhé) được tạo bởi Oracle khi một tiến trình máy chủ được bắt đầu chạy. Quyền truy cập vào PGA là dành riêng cho tiến trình máy chủ đó và nó chỉ được đọc và ghi bởi công cụ chuyên dụng của Oracle mà thôi. Nó chứa một vùng SQL riêng (private SQL area) và một vùng bộ nhớ theo phiên truy cập.

Mô tả

Vùng SQL riêng chứa dữ liệu như thông tin khi biến liên kết với dữ liệu và cấu trúc bộ nhớ thời gian chạy. Mỗi phiên khi chạy một câu lệnh SQL có một vùng SQL riêng. Bộ nhớ phiên là bộ nhớ được phân bổ để chứa các biến của phiên (thông tin đăng nhập) và các thông tin khác liên quan đến phiên. Đối với shared server, bộ nhớ phiên được chia sẻ và không riêng tư.

Không phải tất cả RAM trong Oracle đều là bộ nhớ chia sẻ dùng chung. Khi bạn bắt đầu một tiến trình người dùng, tiến trình đó có một vùng RAM riêng, được sử dụng để sắp xếp các kết quả SQL và quản lý các join đặc biệt được như hash join. RAM riêng này được gọi là Program Global Area (PGA). Mỗi vùng bộ nhớ PGA riêng lẻ được phân bổ mỗi khi người dùng mới kết nối với cơ sở dữ liệu.

Cơ sở dữ liệu Oracle 9i sẽ quản lý PGA tự động cho bạn nếu bạn đặt tham số pga_aggregate_target (chúng ta sẽ thảo luận về các tham số và cách chúng được đặt ở phần sau), nhưng bạn có thể phân bổ kích thước của PGA theo cách thủ công thông qua các tham số như sort_area_sizehash_area_size . Tôi khuyên bạn nên cho phép Oracle tự động cấu hình các vùng này và chỉ định cấu hình tham số pga_aggregate_target .

PGA có thể rất quan trọng đối với hiệu năng của cơ sở dữ liệu, đặc biệt nếu ứng dụng của bạn đang thực hiện một số lượng lớn các hoạt động sắp xếp (sort). Hoạt động sắp xếp xảy ra nếu bạn sử dụng lệnh ORDER BY và GROUP BY trong câu lệnh SQL của mình.

Phương pháp quản lý PGA

Tài liệu Oracle liệt kê các phương pháp quản lý PGA này và các tham số liên quan:

SGA

PGA

Sự miêu tả

Tham số khởi tạo

Instance tự động

Instance tự động

Instance tự động điều chỉnh kích thước của instance dựa trên kích thước mục tiêu của một instance duy nhất.

Bạn thiết lập:

  • Tổng memory target size cho database instance (tham số memory_target)

  • Optional thiết lập thiết lập size cho memory của instance (memory_max_target)

Tự động

Tự động

Instance tự động điều chỉnh SGA dựa trên SGA target.

Instance tự động điều chỉnh PGA dựa trên PGA target.

Bạn thiết lập:

  • SGA target size (sga_target)

  • Optional thiết lập SGA maximum size (sga_max_size)

  • PGA aggregate target size (pga_aggregate_target)

Instance tự động định cấu hình tham số khởi tạo pga_aggregate_limit .Bạn có thể đặt tham số này theo cách thủ công.

Tự động

Thủ công

Instance tự động điều chỉnh SGA dựa trên SGA target.

Bạn điều khiển PGA theo cách thủ công, đặt kích thước vùng làm việc tối đa cho từng loại SQL

Bạn thiết lập:

  • sga target size (sga_target)

  • optional SGA maximum size (sga_max_size)

  • Tham số làm việc cho PGA như sort_area_size, hash_area_size và bitmap_merge_area_size

Thủ công

Tự động

Bạn điều khiển SGA theo cách thủ công bằng cách đặt các kích thước thành phần riêng lẻ.

Instance tự động điều chỉnh PGA dựa trên PGA target.

Bạn thiết lập:

  • shared pool size (shared_pool_size)

  • buffer cache size (db_cache_size)

  • large pool size (large_pool_size)

  • java pool size (java_pool_size)

  • streams pool size (streams_pool_size)

  • pga aggregate target size (pga_aggregate_target)

Instance tự động cấu hình tham số khởi tạo pga_aggregate_limit, bạn có thể đặt tham số này theo cách thủ công.


Tối ưu tham số PGA_AGGREGATE_TARGET 


Mặc định chúng ta sẽ sử dụng như sau:
- Với hệ thống OLTP:

   PGA_AGGREGATE_TARGET  = (physical memory * 80%) * 20%

- Với hệ thống DSS:

   PGA_AGGREGATE_TARGET  = (physical memory * 80%) * 50%
Sau đó dùng AWR để tối ưu tiếp tham số trên, đọc thêm bí quyết tại đây

Đọc thêm:
Hy vọng hữu ích cho bạn.
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
Bí quyết sử dụng PGA của Oracle Database, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master