IBAnalyst
IBAnalyst hiện là một phần của HQbird Standard!
IBAnalyst là công cụ cho phép quản trị viên cơ sở dữ liệu phân tích số liệu thống kê chi tiết của Firebird hoặc InterBase và từ đó xác định các vấn đề tiềm ẩn về hiệu suất cơ sở dữ liệu, bảo trì và cách ứng dụng tương tác với cơ sở dữ liệu.
Tài liệu
IBAnalyst hiển thị số liệu thống kê cơ sở dữ liệu Firebird (hoặc InterBase) dưới dạng đồ họa thân thiện với người dùng và làm nổi bật các vấn đề sau:
- phân mảnh bảng và BLOB,
- phiên bản bản ghi,
- thu gom rác,
- hiệu quả của chỉ mục, v.v.
Hơn nữa, IBAnalyst có thể tự động đưa ra các đề xuất thông minh về việc cải thiện hiệu suất và bảo trì cơ sở dữ liệu.
IBAnalyst có thể lấy số liệu thống kê từ các cơ sở dữ liệu sản xuất trực tiếp thông qua Services API (khuyến nghị) hoặc phân tích đầu ra văn bản của các lệnh gstat -a -r …. Số liệu thống kê từ các giai đoạn tải cao điểm có thể cung cấp nhiều thông tin về các vấn đề hiệu suất thực tế trong cơ sở dữ liệu sản xuất.
IBAnalyst có thể giúp tìm ra vấn đề trong cơ sở dữ liệu Firebird hoặc InterBase của bạn như thế nào
Hãy cùng xem qua các tính năng chính của IBAnalyst. Khi bạn nhìn vào số liệu thống kê cơ sở dữ liệu của mình trong IBAnalyst lần đầu tiên, mọi thứ có thể chưa rõ ràng, đặc biệt nếu IBAnalyst hiển thị nhiều cảnh báo bằng các ô màu đỏ và vàng tại các chế độ xem Tổng quan, Bảng và Chỉ mục. Hãy xem xét một số ví dụ thống kê thực tế.
Chế độ xem Tổng quan
Trang Tổng quan hiển thị rất nhiều thông tin, nhưng giá trị nhất là trạng thái giao dịch ( vui lòng đọc mô tả về các trạng thái giao dịch có thể có trong phần trợ giúp của IBAnalyst, có sẵn bằng cách nhấn F1 hoặc trong menu Trợ giúp).
Trong ảnh chụp màn hình này, bạn có thể thấy một số giao dịch đang hoạt động trong một thời gian dài, “60% mức trung bình hàng ngày”. IBAnalyst đánh dấu trạng thái của giao dịch như vậy bằng màu đỏ, vì giao dịch này có thể ngăn các phiên bản tích lũy được máy chủ coi là rác và do đó, được thu gom. Đây là một nguyên nhân có thể gây chậm: càng có nhiều phiên bản cho một bản ghi, thời gian đọc nó càng lâu.
Để tìm giao dịch chạy lâu này, bạn có thể sử dụng mô-đun MON$Logger của FBScanner hoặc thực hiện truy vấn trực tiếp vào các bảng MON$. Sau đó, để tìm ra bảng nào bị ảnh hưởng bởi các giao dịch chạy lâu (các bảng có nhiều phiên bản bản ghi), bạn cần chuyển đến chế độ xem “Bảng” của IBAnalyst.
Chế độ xem Bảng
Tại chế độ xem “Bảng”, bạn có thể thấy các bảng và các tham số quan trọng của chúng: số lượng bản ghi, số lượng phiên bản bản ghi, độ dài bản ghi, số phiên bản tối đa, v.v.
Bạn có thể sắp xếp chế độ xem này để tìm các bảng lớn nhất. Đặc biệt, chúng tôi quan tâm đến các bảng có nhiều phiên bản bản ghi - nhiều phiên bản bản ghi sẽ làm cho việc thu gom rác cho các bảng bị ảnh hưởng lâu hơn. Thông thường, cần thay đổi thuật toán cập nhật và xóa để loại bỏ nhiều phiên bản bản ghi.
Hàng Phiên bản hiển thị tổng số phiên bản cho một bảng cụ thể và hàng Max Vers hiển thị số phiên bản tối đa mà một bản ghi đạt được. Ví dụ: nếu bạn nhìn vào bảng NAB, có 11,9 triệu bản ghi, tổng số phiên bản là 20932, nhưng một bản ghi có 176 phiên bản. Việc đọc và phân tích cú pháp gói dữ liệu như vậy từ đĩa mất nhiều thời gian hơn, vì vậy, đọc bản ghi này chậm hơn so với đọc các bản ghi khác.
Hình ảnh này cũng cho thấy nhiều bảng có dữ liệu đã bị xóa. Tuy nhiên, do giao dịch chạy lâu, máy chủ không thể xóa các phiên bản này, chúng vẫn nằm trên đĩa, vẫn được lập chỉ mục và vẫn được máy chủ đọc khi đọc dữ liệu.
Chế độ xem Chỉ mục
Một số cơ sở dữ liệu sản xuất có thể có các chỉ mục chỉ với một giá trị khóa duy nhất được lập chỉ mục. Điều này có thể xảy ra vì cơ sở dữ liệu được phát triển “để mở rộng trong tương lai” hoặc ai đó chỉ thử nghiệm với các chỉ mục trong quá trình phát triển hoặc kiểm thử. Bạn có thể thấy các chỉ mục này được đánh dấu là “Vô dụng” trong IBAnalyst:
SKIN04, SKIN05, SKOUT03, v.v., được xây dựng trên cột chỉ có một giá trị cho tất cả các hàng (hàng triệu hàng). Các chỉ mục này thực sự vô dụng vì:
- trình tối ưu hóa có thể sử dụng chỉ mục này nếu bạn chỉ định “where field = …”. Vì trường chỉ chứa một giá trị, việc sử dụng chỉ mục sẽ gây ra việc đọc các trang chỉ mục từ đĩa vào bộ nhớ một cách vô ích và tiêu tốn bộ nhớ (và thời gian) khi máy chủ chuẩn bị các hàng để hiển thị cho truy vấn đó.
- việc tạo chỉ mục là một phần của quá trình khôi phục. Các chỉ mục thừa làm tăng thêm thời gian.
Tất nhiên, đó không phải là tất cả những gì bạn có thể tìm thấy về cơ sở dữ liệu của mình trong IBAnalyst. Bạn cũng có thể tìm thấy:
- số lượng giao dịch trung bình mỗi ngày
- có rollback hoặc mất kết nối hay không và khi nào
- kích thước (tính bằng megabyte) của mỗi bảng và chỉ mục
- các bảng có bản ghi bị xen kẽ bởi blob, do đó việc chỉ đọc bản ghi sẽ chậm hơn
- các bảng trống - chỉ bị lãng quên hoặc trống tại thời điểm lấy số liệu thống kê
- các chỉ mục có nhiều khóa trùng lặp (bạn có thể xem xét về phân bố giá trị cột)
- các chỉ mục có độ sâu từ 4 trở lên - có thể bạn cần tăng kích thước trang để tăng tốc độ
Đề xuất tự động
Nếu bạn bối rối khi đọc các cảnh báo ô màu, chỉ cần mở “Reports\View recommendations” - mọi thứ cần thiết cho hiệu suất cơ sở dữ liệu đều được tập hợp tại đây. Vui lòng đặt bất kỳ câu hỏi nào ( [email protected])


