Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Điều chỉnh bộ nhớ trong Cơ sở dữ liệu Oracle

Điều chỉnh bộ nhớ phân phối hoặc phân bổ lại bộ nhớ trống cho các thành phần bộ nhớ Oracle. Nó chủ yếu được sử dụng để điều chỉnh hiệu suất trên các truy vấn Oracle.

Ngày nay, một vấn đề lớn đối với mọi khách hàng là liên quan đến hiệu suất cơ sở dữ liệu. Blog này giải thích cách điều chỉnh bộ nhớ trong cơ sở dữ liệu dẫn đến hiệu suất cao trong cơ sở dữ liệu. sẽ thảo luận về việc điều chỉnh bộ nhớ trong cơ sở dữ liệu.

Điều chỉnh Bộ nhớ Cơ sở dữ liệu:

Điều chỉnh bộ nhớ cho cơ sở dữ liệu không gì khác ngoài điều chỉnh Khu vực toàn cầu hệ thống (SGA). Sau đây là danh sách các thành phần chính với điều chỉnh SGA. Hãy xem xét chi tiết từng thành phần sau:

  1. Keep Pool
  2. Nhóm mặc định, Nhóm tái chế, Nhóm dòng
  3. Bộ đệm đệm DB:Bộ đệm miễn phí, bộ đệm sửa đổi, bộ đệm được ghim
  4. Nhóm chia sẻ

Keep Pool:

Có một số gói nhất định được sử dụng hàng ngày. Để tăng hiệu suất, bạn cần giữ các gói đó trong SGA. Với sự trợ giúp của thủ tục, bạn có thể giữ gói đó trong nhóm lưu giữ. tuôn ra. Lần tới khi bạn khởi động lại và thực thi gói đó, gói đó sẽ vẫn ở trong vùng lưu giữ cho đến khi bạn tắt cơ sở dữ liệu. Bằng cách đó, chúng tôi giảm các I / O.

Với sự trợ giúp của khẩu phần lần truy cập, bạn có thể đảm bảo rằng các kế hoạch thực thi mã phân tích cú pháp đang được xóa khỏi bộ nhớ cache của thư viện. Tỷ lệ truy cập cho bộ nhớ cache thư viện phải> 85%.

Hồ bơi dòng được sử dụng để tạo bộ đệm cho máy bơm dữ liệu. Hàng ngày, một số bảng nhất định (bảng nhỏ) được sử dụng để tăng hiệu suất. Tốt hơn là giữ các bảng đó trong SGA (Keep pool). Điều này sẽ tăng hiệu suất khi bạn không tìm nạp dữ liệu từ đĩa mà từ chính bộ nhớ. Đối với các bàn lớn, chúng tôi có bể tái chế

Theo mặc định, bất cứ khi nào chúng tôi chọn các bảng đó (bảng nhỏ) dưới dạng khối sẽ được tìm nạp trong bộ đệm dữ liệu bộ đệm và nó sẽ giữ trong nhóm mặc định . Nhóm mặc định này sẽ bị xóa khi bạn chọn các bảng khác. Nếu bạn có không gian trong bộ đệm thì tốt, nếu không, nó sẽ xóa các bảng trước đó để chứa các bảng mới. . Tỷ lệ truy cập cho bộ nhớ đệm bộ đệm dữ liệu phải> 95%. Nếu nó nhỏ hơn 95% thì chúng tôi cần thay đổi kích thước bộ đệm bộ đệm cơ sở dữ liệu.

Phần chính trong điều chỉnh bộ nhớ là bộ đệm cơ sở dữ liệu đệm và nhóm chia sẻ, rất hữu ích để duy trì đủ dữ liệu trong bộ nhớ. Mọi người cần biết các thao tác cơ bản trong bộ đệm Cơ sở dữ liệu đệm để điều chỉnh SGA. Ở cuối blog, tôi sẽ chia sẻ một số ví dụ mẫu về truy vấn SQL để tính toán tỷ lệ truy cập để điều chỉnh bộ nhớ.

Bộ đệm miễn phí

Dữ liệu được sửa đổi sử dụng các khối đã tìm nạp và sao chép vào bộ đệm dữ liệu đệm trước khi thay đổi hình ảnh (dữ liệu). Các bộ đệm này được gọi là Bộ đệm miễn phí, từ hình ảnh dưới đây, đĩa có giá trị 1000 hoặc bộ nhớ có giá trị 1000 đều giống nhau.

Bộ đệm được Sửa đổi

Bộ đệm sửa đổi còn được gọi là Bộ đệm bẩn. Hình ảnh trong đĩa và hình ảnh trong bộ đệm dữ liệu bộ đệm dữ liệu của dữ liệu đã được thay đổi, nhưng các bộ đệm hoặc dữ liệu này vẫn chưa được ghi vào đĩa. Những bộ đệm này được gọi là Bộ đệm Bẩn.

Hình ảnh sau đây cho thấy bộ đệm đã sửa đổi:

Bộ đệm được ghim

Dữ liệu trong bộ đệm đệm DB sẽ luôn thay đổi. Quy trình máy chủ sẽ chọn những dữ liệu được sửa đổi này cho các giao dịch tiếp theo. Dữ liệu đã chọn này không có gì khác ngoài dữ liệu được ghim hoặc bộ đệm.

Số lần đọc thực tế :Các khối dữ liệu Oracle mà oracle đọc từ đĩa bằng cách thực hiện I / O.

Đọc logic :Nếu Oracle có thể đáp ứng một yêu cầu bằng cách đọc dữ liệu từ chính bộ đệm của bộ đệm cơ sở dữ liệu thì nó sẽ được đọc logic.

Khối DB được nhận :khi Oracle tìm thấy dữ liệu được yêu cầu trong bộ đệm của bộ đệm cơ sở dữ liệu, thì Oracle sẽ kiểm tra xem dữ liệu có được cam kết hay không, nếu được cam kết thì tìm nạp từ bộ đệm. Những bộ đệm này còn được gọi là bộ đệm DB nhận được.

Số lần đọc nhất quán :Trong bộ đệm ẩn bộ đệm cơ sở dữ liệu, các khối hiện diện, được sửa đổi nhưng không được cam kết. Do đó, dữ liệu phải được tìm nạp từ tệp dữ liệu hoàn tác.

Mục tiêu của db_buffer_cache là tăng số lần đọc logic.

Phân tích cú pháp mềm :Nếu chúng tôi đã có sẵn kế hoạch thực thi trong Bộ đệm ẩn thư viện, nó sẽ không chuyển đến đĩa, nó sẽ tạo một kế hoạch phân tích cú pháp (mã phân tích cú pháp) từ kế hoạch thực thi hiện có. Đây được gọi là Phân tích cú pháp mềm.

Phân tích cú pháp khó :Để tạo một mã phân tích cú pháp, nó sẽ kiểm tra xem có kế hoạch thực thi nào không, nếu kế hoạch thực thi có sẵn thì nó sẽ đi với phân tích cú pháp mềm. Nếu kế hoạch thực thi không có sẵn, thì nó sẽ thực hiện phân tích cú pháp cứng có nghĩa là nó sẽ được chuyển vào đĩa.

Nhóm chia sẻ :Nhóm chia sẻ là sự kết hợp của Bộ đệm ẩn thư viện và Bộ đệm từ điển dữ liệu.

Thư viện Cache: Mục tiêu của Library Cache là tăng khả năng phân tích cú pháp mềm

Các phương pháp để đạt được mục tiêu:

  1. Sử dụng các biến liên kết

  2. Bằng cách viết các thủ tục được lưu trữ

  3. Tỷ lệ truy cập (Phải> 85% nếu không tăng kích thước nhóm được chia sẻ)

  4. DBMS_Shared_pool (gói) Tỷ lệ truy cập đóng vai trò chính trong việc điều chỉnh bộ nhớ bằng cách sử dụng truy vấn SQL.

Bộ nhớ đệm từ điển dữ liệu :Nó còn được gọi là bộ đệm hàng. Tỷ lệ truy cập Bộ nhớ đệm từ điển dữ liệu phải> 85%, nếu không tăng kích thước nhóm được chia sẻ.

Sau đây là các truy vấn mẫu để tính toán tỷ lệ truy cập.

select (sum(pinhits)/sum(pins))*100 as lchitratio from v$librarycache;

select namespace, pins, pinhits, reloads from v$librarycache order by namespace;

Để tải gói dbms_Shared_pool, vui lòng chạy @$ORACLE_HOME/rdbms/admin/dbmspool.sql

select namespace, kept, locks, executions from v$db_object_cache where type like '%PROC%';

Tỷ lệ truy cập từ điển dữ liệu trong bộ nhớ cache:

select (sum(gets-getmisses-fixed))/sun(gets) as "ddchitratio" from v$rowcache;

Làm lại bộ nhớ đệm trong nhật ký:

chọn tên, giá trị từ v$sysstat trong đó tên như 'redo%';

Tôi hy vọng bạn thấy những điểm đã thảo luận ở trên hữu ích và bây giờ có thể dễ dàng điều chỉnh bộ nhớ trong cơ sở dữ liệu.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.