Thứ Hai, 13 tháng 7, 2020

Cache bảng trong Keep Cache Buffer Pool để truy cập nhanh hơn

Các bảng thường xuyên truy cập nên được giữ trong nhóm bộ đệm bộ đệm của Oracle. Giữ vùng đệm là một phần của SGA lưu giữ dữ liệu vào bộ nhớ để yêu cầu tiếp theo cho cùng một dữ liệu có thể được truy cập từ bộ nhớ. Điều này tránh đĩa đọc và tăng hiệu suất.
Một phần của SGA được gọi là Bộ đệm Cache chứa các bản sao của các khối dữ liệu đã được đọc từ các tệp dữ liệu. Oracle sẽ giữ các khối được truy cập thường xuyên trong bộ nhớ để tránh I / O vật lý chậm hơn nhiều để truy cập các khối. Những khối dữ liệu không được sử dụng thường xuyên sẽ được thay thế theo thời gian bằng các khối cơ sở dữ liệu khác. Kích thước nhóm bộ đệm mặc định được xác định bởi tham số khởi tạo DB_CACHE_SIZE.

Khi cấu hình một instance cơ sở dữ liệu mới, không thể biết kích thước chính xác cho bộ đệm bộ đệm. Thông thường, quản trị viên cơ sở dữ liệu đưa ra ước tính đầu tiên cho kích thước bộ đệm, sau đó chạy một khối lượng công việc đại diện trên cá thể và kiểm tra các số liệu thống kê có liên quan để xem liệu bộ đệm được cấu hình dưới mức hoặc được cấu hình quá mức.
Điều chỉnh bộ nhớ phù hợp là cần thiết để tránh truy cập đĩa lặp lại cho cùng một dữ liệu. Điều này có nghĩa là cần có đủ không gian trong bộ đệm bộ đệm để giữ dữ liệu cần thiết trong thời gian dài. Nếu cùng một dữ liệu được yêu cầu trong khoảng thời gian rất ngắn thì dữ liệu đó sẽ được ghim vĩnh viễn vào bộ nhớ.
Thông thường các đối tượng nhỏ nên được giữ trong Keep cache cache. Tham số khởi tạo DB_KEEP_CACHE_SIZE được sử dụng để tạo Keep pool Pool. Nếu DB_KEEP_CACHE_SIZE không được sử dụng thì không có bộ đệm Keep nào được tạo.

Các bước để cấu hình giữ bộ đệm trong Oracle:

BƯỚC 1: Kiểm tra kích thước bộ đệm giữ hiện tại:
 SQL> show parameter keep;
BƯỚC 2: Kiểm tra kích thước bảng:
 Nếu giữ bộ đệm không được cấu hình hoặc không đủ để giữ toàn bộ bảng, sau đó tăng kích thước của bộ đệm nhưng trước đó hãy kiểm tra kích thước của bảng bằng truy vấn bên dưới: 
SQL> select bytes/1024/1024 from user_segments where segment_name='&TABLE_NAME';
BƯỚC 3: Định cấu hình giữ bộ đệm:
 SQL> alter system set db_keep_cache_size=SIZE scope=both; Ví dụ: alter system set db_keep_cache_size=7G scope=both; 
BƯỚC 4: Di chuyển bảng vào bộ đệm:
 một khi chúng ta đặt kích thước cho db_keep_cache_size và sau đó chúng ta có thể di chuyển các bảng bằng truy vấn bên dưới. 
SQL> alter TABLE TABLE_OWNER.TABLE_NAME storage (buffer_pool keep);Lưu ý: Thay đổi chủ sở hữu bảng và tên bảng.
BƯỚC 5: Bạn có thể kiểm tra bảng là một phần của nhóm giữ bằng cách sử dụng truy vấn bên dưới:
SQL> SELECT SEGMENT_NAME, BUFFER_POOL from dba_segments where SEGMENT_NAME='&TABLE_NAME' and owner='&TABLE_OWNER';
SQL> select SEGMENT_NAME, SEGMENT_TYPE,BUFFER_POOL from dba_segments where BUFFER_POOL='KEEP' and SEGMENT_TYPE='TABLES';
Sau khi di chuyển các đối tượng để giữ bộ đệm, bạn có thể quan sát hiệu suất và kiểm tra phân đoạn được sắp xếp theo thứ tự logic đọc các số liệu thống kê phân đoạn của báo cáo AWR.
Bằng cách ghim các đối tượng vào các vùng đệm thích hợp, bạn có thể:
  • Giảm hoặc loại bỏ I / O
  • Cô lập hoặc giới hạn một đối tượng trong một bộ đệm riêng
  • Bạn có thể đặt thời gian phản hồi cho các truy vấn cụ thể dễ dự đoán hơn bằng cách lưu trữ các phân đoạn được truy cập bởi truy vấn trong bộ đệm KEEP để đảm bảo rằng chúng không bị cũ.

@ Trần Văn Bình - Founder of "Oracle DBA Việt Nam" #OracleTutorial #OracleDBA #OracleDatabaseAdministration #học oracle database #oca #ocp #oce #ocm

ĐỌC NHIỀU

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