Bảng giám sát Firebird


7

Tôi đang làm việc với cơ sở dữ liệu Firebird 2.1.1 và tôi bắt đầu đọc về các bảng Giám sát.

Tôi đang cố gắng để xem bằng cách nào đó trong thời gian thực những truy vấn nào mà mỗi khách hàng thực hiện trong cơ sở dữ liệu.

Tôi đã xem MON$STATEMENTSbảng nhưng nó không cung cấp nhiều thông tin. Tôi đã mong đợi nhiều nội dung hơn trong bảng.

Ảnh chụp màn hình từ Flamerobin khi bảng được hiển thị

Tôi đang tìm sai chỗ hay tôi không hiểu mục đích / việc sử dụng các bảng giám sát Firebird?

Câu trả lời:


7

Có một số điều bạn cần biết khi sử dụng các bảng giám sát:

  1. Các bảng giám sát (như MON$STATEMENTS) cung cấp cho bạn một danh sách các câu lệnh được kích hoạt hoặc được chuẩn bị tại thời điểm một truy vấn được chạy.
  2. Kết quả truy vấn vẫn ổn định cho đến khi giao dịch được cam kết! Điều này có nghĩa là liên tục thực hiện truy vấn mà không cam kết sẽ không mang lại thông tin mới.
  3. Chỉ SYSDBA, chủ cơ sở dữ liệu hoặc người dùng có vai trò RDB$ADMINcó thể xem tất cả thông tin, những người dùng khác chỉ có thể xem thông tin về các kết nối của riêng họ.
  4. Cài đặt Firebird của bạn chứa tài liệu cơ bản trên các bảng trong doc/README.monitoring_tables.txt

Bây giờ đối với ảnh chụp màn hình của bạn: tất cả các báo cáo là từ cùng một kết nối (của riêng bạn) : MON$ATTACHMENT_ID = 1521. Chỉ có một tuyên bố hiện đang hoạt động ( MON$STATE = 1) và tham gia giao dịch MON$TRANSACTION_ID = 90964và được bắt đầu vào 2012-12-06 10:08 ( MON$TIMESTAMP), phần còn lại không hoạt động ( MON$STATE = 0) và do đó không có id giao dịch và dấu thời gian. Câu lệnh đầu tiên cũng là câu lệnh duy nhất hiện có truy vấn thực tế ( MON$SQL_TEXT), đây là truy vấn thực tế tạo ra kết quả trong ảnh chụp màn hình. Trong các câu lệnh Firebird được phân bổ riêng biệt với truy vấn thực tế được thực hiện bằng cách sử dụng câu lệnh đó.

Đó không phải là nhiều, nhưng nếu bạn đã tham gia vào MON$RECORD_STATS, MON$IO_STATShoặc MON$MEMORY_USAGEdựa trên MON$STAT_IDbạn đã có thể nhận được thống kê về các truy vấn (tức là số lần đọc, ghi chép cập nhật, số lượng trang đọc hay viết tay, sử dụng bộ nhớ). Các bảng giám sát hiển thị thông tin tại một thời điểm cụ thể và nếu một truy vấn đã kết thúc khi bạn thực hiện nó, bạn không nhận được bất kỳ thông tin nào (tôi không chắc chắn 100%, nhưng nó có thể vẫn còn cho đến khi thực hiện tiếp theo tuyên bố, hoặc cho đến khi tuyên bố không chuẩn bị hoặc đóng).

Thay vào đó, nếu bạn cần một luồng thông tin và số liệu thống kê, bạn có thể tận dụng API Firebird Trace nhiều hơn. Tôi chưa sử dụng nó nhiều cho bản thân mình, nhưng bài viết Audit and Trace Services trong Firebird 2.5 của Thomas Steinmauer cung cấp một giới thiệu tốt về nó.

Trong câu hỏi của bạn, bạn nói rằng bạn mong đợi "nhiều nội dung hơn", nhưng thực tế không chỉ định nội dung nào bạn cần hoặc mong đợi; Tôi hy vọng điều này cung cấp đầy đủ thông tin.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.