Khi làm việc với tư cách là quản trị viên cơ sở dữ liệu SQL Server, bạn nên có các kỹ năng để đi sâu vào đại dương của SQL Server Engine và tìm những gì đang xảy ra bên trong để có thể phát hiện, khắc phục sự cố và khắc phục bất kỳ sự cố nào bạn có thể gặp phải.
Bạn có thể tận dụng lợi ích từ các bản ghi được ghi bởi SQL Server engine cục bộ dưới dạng nhật ký SQL Server hoặc bên ngoài dưới dạng nhật ký sự kiện, nhưng bạn không thể coi chúng là nguồn duy nhất để khắc phục sự cố và điều chỉnh của mình hoạt động.
SQL Server cung cấp cho bạn một số tính năng tích hợp có thể được sử dụng để thu thập các loại sự kiện SQL Server khác nhau. Trong bài viết này, chúng ta sẽ xem xét các tính năng được tích hợp sẵn này và xem xét một trong những công cụ miễn phí hiệu quả nhất của bên thứ 3 có thể được sử dụng để thu thập và phân tích các sự kiện SQL Server.
SQL Profiler
SQL Server Profiler được sử dụng rộng rãi bởi quản trị viên và nhà phát triển cơ sở dữ liệu SQL Server để thu thập các loại sự kiện biến thể về các truy vấn chạy trên phiên bản SQL Server được kết nối và sau đó sử dụng thông tin này để nâng cao hiệu suất truy vấn.
SQL Profiler cung cấp cho bạn khả năng nắm bắt nhiều sự kiện khác nhau, chỉ định các thuộc tính sự kiện mà bạn quan tâm và lọc dữ liệu đã thu thập dựa trên các giá trị thuộc tính đã chỉ định trước đó. Bạn có thể đi sâu vào người dùng đang thực hiện kiểu hành động nào trên bảng cơ sở dữ liệu nào, từ máy nào và chính xác vào thời điểm nào. Ngoài ra, SQL Profiler hiển thị số lượng tài nguyên được tiêu thụ và cho biết liệu hành động được hoàn thành hay không thực hiện được do lỗi.
Việc thu thập sự kiện thông qua SQL Profiler được thực hiện bằng cách sử dụng một số mẫu hiện có hoặc bằng cách tạo mẫu tùy chỉnh của riêng bạn bằng cách sử dụng các sự kiện hiện có. Trước tiên, bạn cần kết nối với phiên bản SQL Server mà từ đó bạn dự định nắm bắt các sự kiện, bằng cách cung cấp tên của phiên bản SQL Server, phương thức xác thực và thông tin đăng nhập cần thiết để kết nối với phiên bản SQL Server đó, như được hiển thị bên dưới:
Sau khi kết nối với phiên bản SQL Server, bạn sẽ được yêu cầu chỉ định mẫu cho các sự kiện sẽ được thu thập, dựa trên mục đích của quá trình lập hồ sơ, như được hiển thị bên dưới:
Bạn có thể thấy từ hình ảnh trước rằng SQL Profiler cung cấp cho bạn một tùy chọn để lưu kết quả truy tìm vào một tệp hoặc vào một bảng cơ sở dữ liệu hiện có. Nếu không có mẫu nào được cung cấp phù hợp với yêu cầu của bạn, bạn có thể dễ dàng chuyển đến Lựa chọn sự kiện tab và đánh dấu để hiển thị tất cả các sự kiện và cột, sau đó lọc các sự kiện đã chụp bằng các thuộc tính mà bạn quan tâm. Ví dụ:bạn có thể lọc để nắm bắt các sự kiện đến từ một cơ sở dữ liệu cụ thể, người dùng cơ sở dữ liệu, bảng cơ sở dữ liệu, máy chủ, v.v. vào, như sau:
Khi bạn đã chọn các sự kiện mà mình quan tâm, chỉ cần nhấp vào nút Chạy và bắt đầu nhận các sự kiện từ cơ sở dữ liệu đã chọn, như được hiển thị bên dưới:
Hãy lưu ý rằng, nếu bạn không xác định một bộ lọc chính xác để chỉ thu thập các sự kiện bạn quan tâm, SQL Profiler sẽ thu thập một số lượng lớn các sự kiện khó đọc và khó phân tích. Ngoài ra, nó không nên chạy công cụ SQL Profiler trên môi trường sản xuất vì nó sẽ "ăn" tài nguyên máy chủ và giết chết hiệu suất của nó. Nếu bạn không cần thiết phải sử dụng nó, hãy cố gắng thu hẹp phạm vi các sự kiện cần nắm bắt bằng cách sử dụng các bộ lọc chính xác.
Sự kiện mở rộng
Để khắc phục sự cố giảm hiệu suất do sử dụng công cụ SQL Profiler không dùng nữa để nắm bắt các loại sự kiện SQL khác nhau, một tính năng giám sát hiệu suất nhẹ, có thể mở rộng và có thể định cấu hình đã được giới thiệu trong SQL Server 2008, có thể được sử dụng để thu thập thông tin hữu ích từ một loạt các hành động có sẵn, với mức tiêu thụ tài nguyên SQL ít nhất có thể, giúp khắc phục sự cố và điều chỉnh hiệu suất của các truy vấn SQL Server. Tính năng thu thập sự kiện này được gọi là SQL Server Sự kiện mở rộng .
Tính năng Sự kiện mở rộng có thể truy cập được qua SQL Server Management Studio, từ Sự kiện mở rộng trong tùy chọn Quản lý nút. Để tạo phiên Sự kiện mở rộng mới, hãy nhấp chuột phải vào Phiên trong tùy chọn Sự kiện mở rộng và chọn Phiên mới như bên dưới:
Từ Phiên mới cửa sổ, bạn có tùy chọn để chọn từ một số mẫu có sẵn, với nhiều mẫu được xác định trước hơn so với mẫu SQL Profiler hoặc chỉ đơn giản là sử dụng Mẫu trống và chỉ định rõ ràng các sự kiện mà bạn quan tâm, như được hiển thị bên dưới:
Từ Sự kiện , bạn có thể lọc các sự kiện bạn quan tâm dựa trên danh mục sự kiện, sau đó chọn các thuộc tính cho từng sự kiện bạn cần truy xuất. Ngoài ra, bạn có thể tạo một bộ lọc tùy chỉnh để thu hẹp phạm vi của các sự kiện đã nắm bắt, như được hiển thị bên dưới:
Bộ nhớ trang cung cấp cho bạn các tùy chọn khác nhau để lưu kết quả phiên Sự kiện mở rộng. Trong ví dụ này, chúng tôi sẽ lưu kết quả theo dõi vào tệp Sự kiện mở rộng với các cài đặt được định cấu hình bên dưới:
Sau khi tùy chỉnh phiên Sự kiện mở rộng để đáp ứng các yêu cầu giám sát của bạn, hãy nhấp vào nút OK để tạo phiên. Sau khi phiên đã được tạo, nó sẽ không bắt đầu tự động ghi lại các sự kiện trừ khi bạn định cấu hình điều đó trong quá trình tạo phiên. Để cho phép phiên bắt đầu ghi lại các sự kiện, hãy nhấp chuột phải vào phiên đã tạo và chọn Bắt đầu phiên tùy chọn, như được hiển thị bên dưới:
Để xem phiên đã chụp, bạn có tùy chọn mở tệp vật lý đã được định cấu hình trước đó để lưu trữ các sự kiện hoặc chỉ cần nhấp chuột phải vào phiên đã tạo và chọn Xem dữ liệu trực tiếp tùy chọn, như được hiển thị bên dưới:
Một cửa sổ mới sẽ được mở ra, hiển thị các sự kiện đã thu thập với các giá trị thuộc tính cho mỗi sự kiện, như bên dưới:
Mặc dù bạn có thể tạo Sự kiện mở rộng dễ dàng với một vài cú nhấp chuột, nhưng bạn vẫn gặp một số khó khăn khi cố gắng chọn sự kiện chính xác để theo dõi, do sự phức tạp trong quy ước đặt tên sự kiện, khiến bạn khó hiểu mục đích đằng sau mỗi sự kiện. Ngoài ra, GUI trong đó thông tin phiên được hiển thị vẫn không thân thiện với người dùng, điều này làm phức tạp việc phân tích các sự kiện và thuộc tính của chúng. Từ thời điểm này, nhu cầu về một công cụ của bên thứ 3 thân thiện hơn với người dùng đang tăng lên, điều này chúng ta sẽ thảo luận trong phần tiếp theo của bài viết này.
dbForge Event Profiler
dbForge Event Profiler cho SQL Server là một MIỄN PHÍ công cụ cung cấp cho bạn khả năng nắm bắt và phân tích các sự kiện SQL Server và lưu trữ dữ liệu sự kiện trong tệp theo dõi vật lý để kiểm tra sau này.
dbForge Event Profiler cho SQL Server khắc phục sự cố suy giảm hiệu suất SQL Profiler bằng cách chạy với hiệu suất cao nhất có thể và tải máy chủ tối thiểu với sự hỗ trợ đầy đủ cho tính năng Extended Events.
Điều làm cho công cụ tạo hồ sơ sự kiện dbForge cho SQL Server hấp dẫn hơn tính năng Sự kiện mở rộng là Đánh dấu cú pháp truy vấn tính năng không có sẵn trong tính năng SQL Profiler hoặc Extended Events. Ngoài ra, nó cung cấp khả năng thực hiện lọc và sắp xếp hoạt động trong lưới với kết quả theo dõi.
dbForge Event Profiler dành cho SQL Server có thể dễ dàng được sử dụng để giám sát các loại hoạt động khác nhau từ SQL Server Database Engine, Dịch vụ phân tích và Dịch vụ tích hợp, khắc phục sự cố truy vấn T-SQL và các vấn đề liên quan đến giao dịch, đồng thời theo dõi các lỗi SQL Server khác nhau và cảnh báo.
Ngoài ra, dbForge Event Profiler cho SQL Server có thể được sử dụng để kiểm tra các hoạt động khác nhau của người dùng cơ sở dữ liệu SQL Server hoặc thực hiện các bài kiểm tra căng thẳng hoặc đảm bảo chất lượng. Bạn cũng có thể chỉ cần tạo dấu vết tùy chỉnh của riêng mình và lưu chúng để sử dụng trong tương lai.
Để sử dụng dbForge Event Profiler cho SQL Server để nắm bắt các sự kiện SQL Server, bạn cần tải xuống miễn phí từ trang Tải xuống dbForge và cài đặt nó vào SQL Server hoặc máy của bạn bằng trình hướng dẫn cài đặt chuyển tiếp như bên dưới :
Để bắt đầu quá trình cài đặt, hãy nhấp vào nút CÀI ĐẶT từ nút Chào mừng và chỉ định vị trí bạn muốn cài đặt công cụ, từ nút Chọn điểm đến trang bên dưới:
Sau khi chỉ định vị trí cài đặt, hãy nhấp vào nút Tiếp theo cái nút. Trong Phím tắt , chỉ định xem bạn có định tạo biểu tượng lối tắt cho công cụ dbForge trên màn hình của mình hay không, sau đó nhấp vào Tiếp theo để tiếp tục:
Trên Liên kết tệp , bạn sẽ được yêu cầu chỉ định phần mở rộng cho các tệp sẽ được liên kết với công cụ dbForge. Chọn tiện ích mở rộng cho các tệp bạn định mở bằng công cụ này, sau đó nhấp vào Tiếp theo để tiếp tục:
Về Tối ưu hóa Khởi động , xem xét và chọn tùy chọn tốt nhất để sử dụng hiệu suất công cụ, sau đó nhấp vào Tiếp theo để tiếp tục:
Bây giờ, quá trình cài đặt, dựa trên các lựa chọn của bạn, sẽ bắt đầu, với thanh tiến trình hiển thị trạng thái của quá trình cài đặt, như được hiển thị bên dưới:
Sau khi hoàn tất cài đặt dbForge Event Profiler cho SQL Server thành công, trình hướng dẫn sẽ thông báo cho bạn và cung cấp cho bạn một tùy chọn để khởi động công cụ ngay sau khi đóng trình hướng dẫn cài đặt, như sau:
Trang chào mừng của Hồ sơ sự kiện dbForge dành cho SQL Server thân thiện với người dùng và bất kỳ ai quen thuộc với SSMS đều có thể dễ dàng thích nghi với nó. Để bắt đầu theo dõi mới, hãy nhấp vào nút Mới ở bên phải của công cụ, như bên dưới:
Trong Sự kiện máy chủ hồ sơ cửa sổ, bạn cần cung cấp thông tin kết nối sẽ được sử dụng để kết nối với phiên bản SQL Server sẽ được giám sát. Nếu đây là lần chạy công cụ đầu tiên và không có kết nối nào đã lưu trước đó, hãy nhấp vào Kết nối mới như hình bên dưới:
Trong Trình quản lý kết nối cửa sổ Mới sẽ chuyển bạn đến cửa sổ kết nối đã biết, nơi bạn sẽ được yêu cầu cung cấp tên phiên bản SQL Server, chế độ xác thực và thông tin xác thực cần thiết để kết nối với SQL Server. Sau khi cung cấp thông tin kết nối, hãy nhấp vào nút Kiểm tra kết nối để kiểm tra xem thông tin bạn đã nhập có hợp lệ hay không, như được hiển thị bên dưới:
Sau khi cung cấp thông tin kết nối phiên bản SQL Server, hãy chọn sử dụng mẫu hiện có, từ danh sách các mẫu hữu ích phục vụ hầu hết các chức năng theo dõi hoặc bỏ chọn nó để chỉ định danh sách các sự kiện bạn muốn nắm bắt trong bước tiếp theo. Ngoài ra, bạn có thể chỉ định các thuộc tính tệp đích như sau:
Trên Sự kiện cần chụp , bạn sẽ tìm thấy danh sách các sự kiện thân thiện với người dùng và được phân loại tốt, được mô tả theo cách có ý nghĩa, mà không cần phải đi sâu và cố gắng hiểu ý nghĩa của nó, như được hiển thị bên dưới:
Hình ảnh bên dưới cũng hiển thị tất cả các danh mục sự kiện có sẵn, với số lượng sự kiện trong mỗi danh mục. Bây giờ, bạn có thể hiểu tất cả các sự kiện có sẵn theo tên của danh mục, như được hiển thị rõ ràng bên dưới:
Sau khi chỉ định danh sách các sự kiện bạn muốn nắm bắt, Hành động trang cung cấp cho bạn khả năng chỉ định danh sách các hành động mà bạn muốn thực hiện trong phiên sự kiện hiện tại, như được hiển thị bên dưới:
Trên Bộ lọc sự kiện , bạn cũng có thể vẽ các bộ lọc của riêng mình để giảm thiểu số lượng hàng được thu thập để phù hợp với yêu cầu của bạn và giúp phân tích dễ dàng hơn, như được hiển thị bên dưới:
Cột cho phép bạn chỉ định các cột bạn định hiển thị trong phiên sự kiện hiện tại. Chỉ truy xuất các cột chứa thông tin bạn muốn nắm bắt sẽ giúp giảm thiểu đáng kể kích thước của tệp theo dõi và chiều rộng của các hàng được trả về, điều này sẽ giúp dễ dàng phân tích dữ liệu đã thu thập hơn, như được hiển thị bên dưới:
Sau khi tùy chỉnh phiên sự kiện của mình, bạn có thể bắt đầu ghi lại các sự kiện bằng cách nhấp vào nút Thực thi từ hình ảnh trước đó. Sau khi bắt đầu phiên sự kiện, công cụ sẽ bắt đầu chụp và hiển thị trực tiếp các sự kiện, như hình dưới đây:
Ưu điểm tuyệt vời ở đây là việc nhấp vào bất kỳ sự kiện nào sẽ hiển thị mô tả đầy đủ về sự kiện đó với tập lệnh T-SQL được hiển thị bằng phông chữ màu thân thiện với người dùng bên trong một hộp riêng biệt, giúp dễ dàng kiểm tra và phân tích, như hình dưới đây:
Ngoài ra, dbForge Event Profiler cho SQL Server có thể hoạt động như SSMS bằng cách cung cấp một tùy chọn để viết một truy vấn T-SQL mới và thực thi nó trên phiên bản SQL Server được kết nối, như được hiển thị bên dưới:
Công cụ cũng hiển thị dữ liệu trả về trong một lưới hữu ích hiển thị từng tên cột, kiểu dữ liệu và giá trị, như sau:
Hầu hết các quản trị viên cơ sở dữ liệu SQL Server đều gặp phải tình huống khi họ cố gắng thực thi một tệp SQL Server lớn bằng SSMS bị lỗi OutOfMemory. dbForge Event Profiler cho SQL Server khắc phục vấn đề này bằng cách cung cấp một tính năng để thực thi bất kỳ tập lệnh T-SQL lớn nào trong một tệp SQL. Những gì bạn cần làm chỉ là chọn Thực thi tập lệnh lớn từ menu Cơ sở dữ liệu, sau đó chọn vị trí cho tệp kịch bản đó, cơ sở dữ liệu mà tệp này sẽ được thực thi trên đó và mã hóa được sử dụng trong tệp đó, như được hiển thị rõ ràng bên dưới:
Kết luận
Từ tất cả các ví dụ trước, bạn có thể thấy cách sử dụng công cụ dbForge Event Profiler dành cho SQL Server MIỄN PHÍ của bên thứ 3 để nắm bắt và phân tích các loại sự kiện SQL Server khác nhau bằng cách khắc phục tất cả các nhược điểm của các công cụ nắm bắt sự kiện phổ biến. Nó là một MIỄN PHÍ và nó chắc chắn đáng sử dụng.