Giám sát cơ sở dữ liệu với SQL Profiler
SQL Server Profiler là một công cụ ghi chép hiệu quả, đi kèm với SQL Server. Profiler cho phép bạn quản lý và nắm bắt được những hoạt động đang diễn ra trong cơ sở dữ liệu của bạn, bao gồm adhoc truy vấn, lưu trữ các yêu cầu, đăng nhập, lỗi,... Hôm nay, chúng ta sẽ tìm hiểu cách sử dụng Profiler để làm rõ những điều trên.Giả sử rằng chúng ta có một ứng dụng tên SOCK chạy dựa vào cơ sở dữ liệu SOCKsql, trên SwampTest server. Nếu muốn hiển thị truy vấn T-SQL tác dụng vào cơ sở dữ liệu khi một người dùng truy cập vào SOCK, chúng ta sẽ phải:
1. Khởi động SQL Server Profiler và thiết lập bản ghi
2. Chạy bản ghi trong khi thực hiện đăng nhập ứng dụng SOCK.
3. Dừng chạy bản ghi và kiểm tra kết quả lưu được
Khởi động SQL Server Profiler
Bạn có thể khởi động SQL Profiler từ menu Start, hoặc trong SQL Server Management Studio (SSMS), dưới menu Tools. Một cách khác để mở SQL Profiler là Start > Run > Profiler. Khi được mở ra, Profiler sẽ hiển thị bạn hộp thoại Connect to Server. Tiếp đến, bạn sẽ phải điền tên của máy chủ bạn muốn tạo bản ghi, cùng với thông tin xác nhận. Sau đó, kích Connect.
Cửa sổ Trace Properties sẽ cho phép bạn điều chỉnh bản ghi bạn muốn. Trên thẻ General, bạn có thể điền tên một Trace, chọn template, chọn phương thức lưu và bật thời gian dừng truy vấn.
Tại thẻ Event Selection, chúng ta chọn sự kiện cơ sở dữ liệu và thuộc tính mỗi sự kiện chúng ta muốn ghi lại. Sự kiện được chọn là một phần của template chuẩn chúng ta thấy ở thẻ General.
Gần cuối bên trái của màn hình, chúng ta có 2 ô nhỏ. Ô "Show all events" hiển thị tất cả các sự kiện chúng ta có thể truy vấn với Profiler. Hãy nhìn qua những mục có trong đó rồi hãy tích vào đó.
Kiểm tra hộp thoại "Show all columns" giúp chúng ta có thể thấy tất cả những thuộc tính của mỗi sự kiện.
• Chúng ta không cần Audit Login và Audit Logout events today, vì vậy không cần tích vào đó.
• Bạn sẽ cần tới "ExistingConnection", không có nó, tất cả các hành động được thực hiện bởi kết nối hiện thời sẽ không được hiển thị.
• RPC: Completed - "Remote Procedure Call: Completed". Ứng dụng SOCK hầu như chỉ tận dụng RPCs, vì vậy chúng ta sẽ phải tích vào đó.
• SQL:BatchStarting và SQL:BatchCompleted sẽ hiển thị mở đầu và kết thúc của nhóm lệnh T-SQL. Bạn không nhất thiết phải tích vào đây.
Hãy sử dụng column filters để lọc những dữ liệu chúng ta không cần. Kích vào Column Filters. Trong hộp thoại Edit Filter, chọn DatabaseName rồi kích vào Like và gõ tên của cơ sở dữ liệu của bạn: SOCKsql. Điều này sẽ đảm bảo Profiler sẽ chỉ ghi lại những sự kiện diễn ra trên cơ sở dữ liệu SOCKsql.
Chạy bản ghi
Ở hình minh họa, chỉ có những sự kiện đã được chọn cũng như thời gian mà bản ghi đã được giới hạn. Vì vậy, chúng ta sẽ không bị thừa thông tin không cần thiết và giảm tải cho máy chủ khá nhiều.
Khi đã sẵn sàng đăng nhập vào SOCK, kích vào Run trong SQL Profiler. Bạn sẽ thấy "Trace Start" hiển thị trên cùng trong danh sách sự kiện trong Profiler, tiếp sau đó là một loạt các kết nối hiện thời.
Trong ví dụ, chúng ta sẽ chỉ ghi lại các sự kiện liên quan tới đăng nhập SOCK, vì vậy ngay sau khi bản ghi được bắt đầu, chúng ta đã có thể truy cập ứng dụng SOCK. Tiếp đến, kích vào nút màu đỏ "stop trace" trong SQL Profiler. Như vậy là chúng đã đã có bảng sự kiện bản ghi.
Đọc bản ghi
Nếu muốn, bạn có thể lưu lại các sự kiện này thành 1 file bằng cách kích vào File > Save As > Trace File, hoặc lưu thành 1 bảng SQL: File > Save As > Trace Table. Ví dụ, chúng ta sẽ lưu dữ liệu này thành 1 bảng SQL, điều này sẽ giúp bạn tìm kiếm một từ nào đó có trong bảng dễ và nhanh hơn.
Giờ đây, bạn có thể đọc toàn bộ các sự kiện đã được ghi lại, hoặc tìm kiếm một từ khóa hoặc con số trong bất kì đường nào. Khi kích vào bất kì dòng nào, dữ liệu của dòng đó sẽ được hiển thị tại một bảng ở phía cuối của Profiler. Chú ý rằng chúng ta đã lọc dữ liệu theo tên của cơ sở dữ liệu, bạn có thể kiểm tra lại bằng cách kéo sang bên phải bảng để thấy tên của cơ sở dữ liệu đã chọn.
Bài giới thiệu ngắn về SQL Profiler này có thể giúp bạn ghi lại những hoạt động của cơ sở dữ liệu mỗi khi cần thiết.