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

Điều chỉnh hiệu suất cơ sở dữ liệu

Thực hiện điều chỉnh hiệu suất trên cơ sở dữ liệu của bạn là một trong những hoạt động phổ biến nhất nhưng cũng là hoạt động quan trọng nhất mà mọi quản trị viên cơ sở dữ liệu (DBA) phải thực hiện liên tục và thường xuyên. Các chuyên gia khuyên bạn nên thường xuyên tinh chỉnh các cơ sở để tối ưu hóa hiệu suất. Tinh chỉnh giúp người dùng chạy các báo cáo và truy vấn của họ nhanh hơn và nhận được kết quả nhanh hơn. Bài đăng này chia sẻ một số kỹ thuật khắc phục sự cố và điều chỉnh cơ sở dữ liệu Oracle®.

Các bước điều chỉnh

Để bắt đầu, bạn cần xác định khu vực xảy ra sự cố, các khu vực có thể gây ra sự cố bao gồm hệ điều hành, cơ sở dữ liệu, thiếu bộ nhớ, v.v. Sau khi bạn đã xác định được khu vực có vấn đề, bạn có thể tiến hành điều chỉnh khu vực đó để có lợi ích tối đa. Blog này chỉ tập trung vào điều chỉnh hiệu suất.

Oracle đã cung cấp cho DBA một số công cụ để giúp chẩn đoán sự cố và khắc phục sự cố về hiệu suất. Các công cụ này bao gồm báo cáo Giám sát Cơ sở dữ liệu Tự động (ADDM) và Kho lưu trữ Khối lượng Công việc Tự động (AWR), mà bạn có thể tạo cho khoảng thời gian có vấn đề và sử dụng trong phân tích của mình. Bạn nên sử dụng các công cụ để tìm các thành phần bị lệch hoặc có thể điều chỉnh được.

Sự kiện được hẹn giờ hàng đầu trong báo cáo AWR

AWR là một công cụ mà bạn có thể tạo báo cáo tóm tắt việc sử dụng bộ nhớ trong một biểu mẫu thống kê theo một phiên bản cụ thể. Để tạo báo cáo AWR, hãy chạy tệp sau trong lời nhắc sqlplus:

@$ORACLE_HOME/rdbms/admin/awrrpt.sql

Thao tác này tạo báo cáo AWR ở định dạng HTML bằng cách sử dụng mẫu được lưu trữ trước. Sau khi tạo báo cáo AWR, bạn có thể nhanh chóng xem Top TimedEvents trong báo cáo AWR, xác định khu vực có vấn đề, được hiển thị trong hình ảnh sau:

Điều chỉnh hiệu suất cơ sở dữ liệu

Phiên điều chỉnh ADDM

Thông thường, khi sự cố được báo cáo, DBA chỉ có thể khắc phục sự cố khu vực đó hoặc giải quyết sự cố cụ thể đó. Tuy nhiên, nếu vấn đề không được xác định và giải quyết chính xác, nó có thể dẫn đến các vấn đề lớn hơn trong tương lai. DBAcan bỏ lỡ bức tranh lớn hơn ở đây. Để giúp các DBA trở nên lớn hơn và có hình ảnh hoàn chỉnh về các vấn đề cơ sở dữ liệu, Oracle đã cung cấp một công cụ khác cho DBA, ADDM. Một phiên điều chỉnh ADDM tuân theo một quy trình tương tự như phiên điều chỉnh thủ công. Điều chỉnh hiệu suất cơ sở dữ liệu

Nguồn hình ảnh:Hướng dẫn đào tạo Điều chỉnh Hiệu suất Oracle 11G

Truy xuất báo cáo ADDM bằng cách sử dụng SQL hoặc thông qua Oracle Enterprise Manager (OEM). Hình ảnh sau đây hiển thị SQL mẫu:

Điều chỉnh hiệu suất cơ sở dữ liệu

SQL sai và kế hoạch thực thi

Sau khi báo cáo AWR hoặc ADDM xác định các phần của SQL / SQLID không hợp lệ, bạn có thể sử dụngDBMS_XPLAN để thu thập thêm thông tin về chúng. Gói DBMS_XPLAN áp dụng các hàm bảng sau mà bạn có thể sử dụng để truy xuất và hiển thị kế hoạch thực thi (thực thi):

DISPLAY
DISPLAY_AWR
 select plan_table_output from table (DBMS_XPLAN.DISPLAY_AWR('fs22b3fgfh8xc'));
DISPLAY_CURSOR

Hình ảnh sau đây hiển thị đầu ra mẫu từ EXPLAIN PLAN lệnh và xác định xem truy vấn đang sử dụng quét toàn bộ bảng hay thu hẹp dữ liệu bằng cách sử dụng một số chỉ mục:

Điều chỉnh hiệu suất cơ sở dữ liệu

Báo cáo ADDM phản ánh liệu bạn có thể đạt được bất kỳ lợi ích hiệu suất nào bằng cách tạo một số chỉ mục mới hay không. Bạn cũng có thể chạy SQL Tuning Advisor từ OEM để tinh chỉnh các truy vấn và có thể sử dụng một kế hoạch thực thi tốt hơn. Hầu hết thời gian, việc sử dụng một kế hoạch tốt hơn cho SQL có vấn đề sẽ giải quyết được vấn đề lớn về hiệu suất.

Cố vấn Điều chỉnh SQL

SQL Tuning Advisor giúp phân tích các câu lệnh SQL và nhận được các tuyên bố về hiệu suất bằng cách sử dụng ID ủy quyền SQL (SQLID) để phân tích và đề xuất các giải pháp. SQL Tuning Advisor phân tích các nguồn sau:

  • Hoạt động hàng đầu:Phân tích các câu lệnh SQL hàng đầu hiện đang hoạt động.
  • Bộ điều chỉnh SQL:Phân tích một bộ câu lệnh SQL mà bạn cung cấp.
  • Lịch sử SQL (AWR):Phân tích các câu lệnh SQL từ các câu lệnh được thu thập bởi ảnh chụp nhanhAWR.

Ảnh chụp màn hình sau đây cho thấy một số ví dụ:

Điều chỉnh hiệu suất cơ sở dữ liệu Điều chỉnh hiệu suất cơ sở dữ liệu Điều chỉnh hiệu suất cơ sở dữ liệu Điều chỉnh hiệu suất cơ sở dữ liệu

Yêu cầu lâu dài

Trong cơ sở dữ liệu Oracle eBusiness Suite, vấn đề về các yêu cầu chạy dài chủ yếu xảy ra khi một vài yêu cầu đồng thời tiếp tục chạy. Để giải quyết vấn đề này, bạn cần thu thập thêm thông tin về phiên cơ sở dữ liệu được liên kết với các yêu cầu hiện tại. Hình ảnh sau đây cho thấy các bước để thu thập điều này

thông tin:

Điều chỉnh hiệu suất cơ sở dữ liệu

Tham số bộ nhớ Cơ sở dữ liệu Oracle

Sau khi xem xét các báo cáo AWR, DBA có thể dễ dàng xác định bộ nhớ cache yêu cầu tinh chỉnh vì tỷ lệ truy cập bộ nhớ cache thấp hơn đối với bộ nhớ cache đó thanit cho các bộ nhớ cache khác. Hình ảnh sau đây cho thấy một vài trong số các thông số dữ liệu hàng đầu mà bạn phải xem xét để điều chỉnh bộ nhớ trên toàn phiên bản.

Điều chỉnh hiệu suất cơ sở dữ liệu

Nguồn hình ảnh: https://ora-performance-tuning.blogspot.com/2014/02/automatic-shared-memory-management.html

Các sự kiện chờ thường được quan sát

Bảng sau đây cho thấy một số sự kiện chờ đợi phổ biến và nguyên nhân có thể xảy ra:

Điều chỉnh hiệu suất cơ sở dữ liệu (

Nguồn bảng:Hướng dẫn đào tạo OCP 11G Oracle Performance Tuning, chương 20, trang 24

10 vấn đề điều chỉnh hàng đầu

Khách hàng thường gặp phải 10 vấn đề điều chỉnh hàng đầu sau:

  • Quản lý kết nối kém: Các nhà phát triển viết mã để kết nối với cơ sở dữ liệu trong ứng dụng hoặc chạy các truy vấn để tìm nạp dữ liệu từ cơ sở dữ liệu. Sau khi dữ liệu đã được tìm nạp và không cần thêm gì nữa, mã sẽ đóng kết nối với cơ sở dữ liệu. Tuy nhiên, điều này thường không xảy ra, dẫn đến số lượng phiên không hoạt động trong cơ sở dữ liệu ngày càng tăng. Các phiên này sử dụng các tài nguyên quý giá có thể được sử dụng cho các kết nối đang hoạt động khác.

  • Sử dụng sai con trỏ và nhóm chia sẻ: Con trỏ là một công cụ trong kho vũ khí của Nhà phát triển hầu như không được sử dụng. Không có con trỏ, Oracle phải phân tích mã mỗi khi nó chạy. Điều này ảnh hưởng rất lớn đến hiệu suất của các truy vấn SQL được chạy lặp đi lặp lại. DBA có thể xác định vấn đề này bằng cách xem xét Phần trăm hiệu quả phiên bản - Thực thi để phân tích cú pháp%. Phần báo cáo AWR.

  • SQL không hợp lệ: Cách mà truy vấn SQL được viết (với các điều kiện tham gia để tìm nạp dữ liệu) ảnh hưởng đáng kể đến hiệu suất của SQL đó, sau khi nó được thực thi. Bạn nên tránh quét toàn bộ bảng cho các bảng lớn. Sau khi chuẩn bị xong SQL, các nhà phát triển và DBA nên chạy một kế hoạch giải thích về SQL đó để hiểu chi phí chạy nó trong cơ sở dữ liệu. Bằng cách sử dụng con trỏ, biến liên kết và chỉ mục, bạn có thể tăng hiệu quả.

  • Sử dụng các thông số khởi tạo không chuẩn: Các DBA phải luôn chỉ sử dụng các tham số khởi tạo tiêu chuẩn hoặc được khuyến nghị. Chỉ sử dụng các tham số khởi tạo không chuẩn khi chúng được đề xuất bởi Yêu cầu dịch vụ Oracle (SR).

  • Lấy sai I / O cơ sở dữ liệu: Khi một DBA chọn phần cứng cơ sở dữ liệu nên cố gắng phân phối cơ sở dữ liệu trên nhiều đĩa và yêu cầu nhóm mạng tham gia thảo luận về tốc độ mà dữ liệu sẽ được truyền đến người dùng cuối từ máy chủ cơ sở dữ liệu trở về. Một DBA nên xem xét tốc độ của các thiết bị chuyển mạch và bộ định tuyến mạng để tránh bất kỳ nút cổ chai hoặc trục trặc nào về hiệu suất.

  • Làm lại sự cố thiết lập nhật ký: Nhật ký làm lại được yêu cầu để lưu trữ dữ liệu từ bộ đệmredo để Oracle có thể thực hiện lại các giao dịch trong trường hợp có bất kỳ sự cố nào. Nếu kích thước nhật ký làm lại không đủ, thì nhiều lần chuyển đổi có thể xảy ra trong cơ sở dữ liệu gây ra các vấn đề về hiệu suất. Điều này cũng làm tăng tải khi tạo kho lưu trữ.

  • Tuần tự hóa các khối dữ liệu trong bộ đệm ẩn: Điều này xảy ra do sự thiếu hụt các nhóm danh sách miễn phí hoặc các phân đoạn hoàn tác. Tình huống này phát sinh cơ sở dữ liệu nặng nề với lượng lớn người dùng đang hoạt động nhưng ít phân đoạn hoàn tác hơn, điều này cuối cùng dẫn đến các vấn đề về hiệu suất.

  • Quét toàn bộ bảng: Kiểm tra các lần quét toàn bộ bảng trong các truy vấn bằng cách chạy kế hoạch không giải thích. Thông thường, một truy vấn thực hiện quét toàn bộ bảng phản ánh thiết kế SQL có lỗi, có thể được sửa chữa bằng cách sử dụng các chỉ mục và bằng cách thu hẹp dữ liệu được yêu cầu. Trong một số trường hợp, việc quét toàn bộ bảng có thể có lợi, đặc biệt là trong trường hợp các bảng nhỏ.

  • SQL đệ quy: SQL đệ quy có thể mang lại lợi ích cho các nhà phát triển nếu được sử dụng đúng cách, nhưng nó có thể là con dao hai lưỡi. Thực hiện đúng, nó cung cấp hiệu quả. Nếu không, nó ảnh hưởng rất lớn đến hiệu suất của cơ sở dữ liệu.

  • Sắp xếp trong đĩa: Sắp xếp trong đĩa là một nhiệm vụ rất tốn kém đối với cơ sở dữ liệu, nó cho thấy thiết kế SQL kém và tối ưu hóa không tốt. Bạn có thể xác định sự cố trong Thống kê hoạt động phiên bản - Sắp xếp (đĩa) Phần báo cáo AWR.

Kết luận

Mặc dù các DBA phải xem xét các khu vực khác nhau để điều chỉnh hiệu suất, nhưng trong cơ sở dữ liệu, việc điều chỉnh hiệu suất bắt đầu từ giai đoạn thiết kế cơ sở dữ liệu và ứng dụng.>

Các điểm điều chỉnh hiệu suất được đề cập trong blog này chỉ là phần nổi của tảng băng chìm. Tôi khuyên các bạn DBA tiếp tục đọc thêm về chủ đề này để quan tâm đến hiệu suất cơ sở dữ liệu tổng thể.

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.

Tìm hiểu thêm về các dịch vụ cơ sở dữ liệu của chúng tôi.

Rackspace có kiến ​​thức sâu rộng về các sản phẩm Oracle. Tìm hiểu thêm về cách wecan tối đa hóa khoản đầu tư vào Oracle của bạn.