Trình phân tích truy vấn MySQL là gì?

Có Trình phân tích truy vấn tốt cho MySQL (miễn phí hoặc có bản dùng thử) có thể phân tích truy vấn và đưa ra đề xuất cho các chỉ mục, chẳng hạn như "Hiển thị kế hoạch thực hiện ước tính" trong studio quản lý Microsoft SQL Server không?

Được tích hợp vào Giám sát doanh nghiệp, Trình phân tích truy vấn được thiết kế để giúp Nhà phát triển và DBA xác định chính xác mã SQL gây chậm, nhanh chóng chẩn đoán sự thiếu hiệu quả và đưa ứng dụng bị ảnh hưởng trở lại hiệu suất cao nhất. Để đạt được mục tiêu này, Trình phân tích truy vấn tận dụng công nghệ Proxy MySQL để mở rộng Tác nhân dịch vụ giám sát để lắng nghe trên cổng do người dùng xác định cho các truy vấn ứng dụng, thu thập mã SQL và chỉ số hiệu suất, sau đó báo cáo kết quả lại cho Trình quản lý dịch vụ để theo dõi và

Cấu hình

Cấu hình Trình phân tích truy vấn rất đơn giản (và được ghi lại rất rõ trong Chương 10 của tài liệu Giám sát doanh nghiệp)

  • Một Tác nhân dịch vụ giám sát được cài đặt trên mỗi máy chủ MySQL sẽ được giám sát
  • Ứng dụng được giám sát được định cấu hình để kết nối với Tác nhân dịch vụ trên cổng do người dùng xác định (4040 theo mặc định)
  • Tác nhân dịch vụ kết nối với máy chủ MySQL (máy chủ đơn, máy chủ, máy chủ đọc)
  • Tác nhân dịch vụ được kích hoạt để thu thập các truy vấn hoặc phục vụ dưới dạng chuyển tiếp cho đến khi cần
  • Tác nhân dịch vụ báo cáo các số liệu truy vấn, hệ điều hành và MySQL trở lại Trình quản lý dịch vụ để theo dõi

Việc bật thu thập truy vấn đang hoạt động với Tác nhân dịch vụ hỗ trợ proxy được kiểm soát bằng Bảng điều khiển doanh nghiệp và cho phép người dùng bật thu thập truy vấn cho các máy chủ riêng lẻ hoặc các ứng dụng hoàn chỉnh. Sau khi được bật, Trình phân tích truy vấn cung cấp cho DBA chế độ xem tổng hợp, có thể tìm kiếm được đối với tất cả các truy vấn, trên tất cả các máy chủ được giám sát. Các truy vấn được trình bày ở dạng chuẩn (không có biến) với các cuộn lên cho tổng số lần thực thi, tổng thời gian thực hiện, tổng kích thước dữ liệu và ngày/giờ khi một truy vấn được "nhìn thấy lần đầu"

Trình phân tích truy vấn cũng được tích hợp chặt chẽ với biểu đồ Giám sát doanh nghiệp. Để tương quan dữ liệu biểu đồ với hoạt động truy vấn, người dùng có thể chỉ cần đánh dấu bất kỳ vùng hoặc vùng nào của bất kỳ biểu đồ nào và khởi chạy Trình phân tích truy vấn với chế độ xem theo ngữ cảnh vào các truy vấn đang chạy tại thời điểm đã chọn. Các biểu đồ thực thi cụ thể của truy vấn (số lần thực hiện, thời gian, tập hợp kết quả) cũng có sẵn để người dùng có thể theo dõi hiệu suất của các truy vấn của họ trong các khoảng thời gian cụ thể

Sử dụng Dữ liệu được Báo cáo của Trình phân tích Truy vấn

Trình phân tích truy vấn được thiết kế để tiết kiệm thời gian phân tích cú pháp DBA và thu thập các số liệu truy vấn nguyên tử từ Nhật ký truy vấn chậm của MySQL và tập kết quả dòng lệnh HIỂN THỊ QUY TRÌNH LIST. Các lợi ích chung bao gồm

  • Một giải pháp giám sát tích hợp cho tất cả các phiên bản MySQL được hỗ trợ (4. 1 trở lên)
  • Thống kê hiệu suất và nội dung truy vấn tổng hợp trong thời gian thực mà không phụ thuộc vào nhật ký MySQL hoặc HIỂN THỊ DANH SÁCH QUY TRÌNH
  • Chế độ xem hợp nhất vào hoạt động truy vấn trên tất cả các máy chủ MySQL, không yêu cầu phân tích cú pháp người dùng
  • Duyệt/phân tích lịch sử các truy vấn trên tất cả các máy chủ MySQL
  • Tổng hợp, cuộn lên có thể tìm kiếm của tất cả các truy vấn ở dạng chuẩn (không có biến) với tổng số lần thực thi, tổng thời gian thực hiện, tổng kích thước dữ liệu và ngày/giờ khi truy vấn được "nhìn thấy lần đầu"

Trình phân tích truy vấn cung cấp chế độ xem tổng hợp về hiệu suất truy vấn trên tất cả các máy chủ MySQL để DBA và Nhà phát triển thấy tổng chi phí cho SQL của họ. Các chỉ số hiệu suất chính và thông tin chuyên sâu mà chúng cung cấp được tóm tắt tại đây

  • Tổng số lần thực thi theo truy vấn
    Điều này giúp DBA/Nhà phát triển thấy các truy vấn đang chạy quá thường xuyên hoặc bị lỗi. Nó cũng giúp xác định các truy vấn là ứng cử viên cho bộ nhớ đệm ứng dụng hoặc tập kết quả có thể được chọn tốt hơn từ các bảng tóm tắt, nhỏ hơn
  • Tổng thời gian thực hiện theo truy vấn
    Điều này xác định các truy vấn đắt nhất trên tất cả các máy chủ MySQL theo dõi. Điều này giúp các DBA thấy được nơi mà các hệ thống đang dành nhiều thời gian và nguồn lực nhất và nơi nào nên tập trung nỗ lực điều chỉnh. Nó cũng giúp xác định xem tải xử lý truy vấn có được cân bằng giữa các nô lệ đọc cho môi trường mở rộng quy mô đọc nhiều hay không
  • Tổng kích thước dữ liệu (Hàng và byte)
    Điều này giúp DBA phân tích nếu có các truy vấn đang trả về nhiều dữ liệu hơn ứng dụng đang thực sự sử dụng. Sắp xếp theo giá trị này, kiểm tra các truy vấn cơ bản và so sánh các hàng và cột được trả về với các yêu cầu của ứng dụng, DBA sẽ điều chỉnh ứng dụng và lược đồ để có hiệu suất tốt hơn. Ngoài ra, các truy vấn có thời gian thực hiện cao nhưng tập hợp kết quả nhỏ là dấu hiệu cho thấy truy vấn quá phức tạp hoặc truy vấn nhiều hàng trên các cột không được lập chỉ mục
  • "Lần đầu tiên nhìn thấy"
    Điều này cho phép DBA dễ dàng theo dõi khi các truy vấn do triển khai ứng dụng mới đang ảnh hưởng đến hiệu suất của các hệ thống sản xuất. Nó cũng cung cấp một kiểm tra bảo mật nhanh chóng để xem liệu có bất kỳ truy vấn "lừa đảo" nào đã xâm nhập vào môi trường sản xuất hay không

Các trường hợp triển khai và sử dụng Trình phân tích truy vấn

Trình phân tích truy vấn có thể được triển khai trong các môi trường Phát triển, Đảm bảo chất lượng và Sản xuất để giúp chẩn đoán và điều chỉnh mã SQL. Các triển khai phổ biến nhất được tóm tắt dưới đây

Theo dõi truy vấn trong quá trình phát triển và QA

Các nhà phát triển có thể sử dụng Trình phân tích truy vấn để chủ động theo dõi và điều chỉnh mã ứng dụng của họ trước khi nó được đưa vào sản xuất. Trong trường hợp này, các ứng dụng được kết nối trực tiếp với cổng mà Proxy/Tác nhân dịch vụ đang lắng nghe (4040 theo mặc định, nhưng người dùng có thể xác định). Proxy/Agent lắng nghe trên 4040 và "proxy" luồng giao tiếp đến máy chủ MySQL back-end để thu thập các truy vấn và tổng hợp các chỉ số hiệu suất. Dữ liệu truy vấn và chỉ số hiệu suất được gửi đến Enterprise Monitor, bộ kết quả truy vấn được gửi đến ứng dụng yêu cầu. Điều quan trọng cần lưu ý là Proxy/Tác nhân dịch vụ tiếp tục thu thập và gửi các chỉ số cụ thể của MySQL và OS tới Enterprise Monitor trong khi ứng dụng được kết nối với cổng Proxy/Tác nhân dịch vụ

Theo dõi truy vấn trong môi trường sản xuất

Quản trị viên hệ thống và DBA sẽ thấy Trình phân tích truy vấn có giá trị để tìm mã SQL đang chạy trong môi trường sản xuất của họ đang thực thi quá thường xuyên, sử dụng nhiều tài nguyên trên các máy chủ hoặc mới được triển khai và gây ra hiệu suất chậm. Điều quan trọng cần lưu ý là có chi phí hoạt động được quy cho việc bật Trình phân tích truy vấn bằng cách hướng các truy vấn của ứng dụng đến cổng được xác định bởi Proxy/Tác nhân dịch vụ (4040 theo mặc định, nhưng người dùng có thể xác định). Độ lớn của chi phí phụ thuộc vào ứng dụng được giám sát, tải truy vấn trung bình và cao nhất cũng như nội dung của dữ liệu được truy vấn và trả về. Với giá trị của dữ liệu giám sát truy vấn được trả về, một số DBA sẽ nhận thấy chi phí hoạt động của việc bật Trình phân tích truy vấn mọi lúc có thể chấp nhận được đối với một số ứng dụng sản xuất

Lấy mẫu truy vấn theo kế hoạch/theo lịch trình

Các triển khai thay thế của Trình phân tích truy vấn liên quan đến việc lấy mẫu truy vấn theo kế hoạch trong giờ hệ thống không cao điểm và giám sát một tập hợp con các hệ thống sản xuất xử lý tải đại diện các truy vấn ứng dụng được giám sát. Đối với ứng dụng lấy mẫu theo kế hoạch/theo lịch trình và máy chủ web, hãy lấy các chuỗi kết nối của chúng từ các tệp được lưu trữ trong bộ đệm hoặc hệ thống tệp của máy chủ ứng dụng. Trong giờ thấp điểm, ứng dụng được khởi động lại "một cách duyên dáng" để kết nối với cổng Proxy/Service Agent. Ứng dụng hướng các truy vấn đến cổng đã xác định, nơi chúng được thu thập và tổng hợp, sau đó được gửi tới Enterprise Monitor để phân tích. Các truy vấn đã thu thập là một mẫu đại diện cho các truy vấn được gửi trong ngày, vì vậy DBA có thể thấy các nút cổ chai tiềm ẩn và điều chỉnh có thể được thực hiện để tăng tốc ứng dụng. Sau khi lấy mẫu, ứng dụng sẽ được khởi động lại để kết nối với máy chủ MySQL back-end. Điều quan trọng cần lưu ý là Service Agent tiếp tục thu thập và gửi các chỉ số cụ thể của MySQL và OS tới Enterprise Monitor trong khi ứng dụng được kết nối với cổng Proxy/Service Agent

Giám sát truy vấn trên một tập hợp con của máy chủ sản xuất

Trong quá trình triển khai này, các máy chủ ứng dụng chính được kết nối với máy chủ MySQL phụ trợ hoặc trang trại nô lệ đọc cân bằng tải và 1 được định cấu hình để chuyển các truy vấn đến một nô lệ đọc chuyên dụng được định cấu hình để lắng nghe các truy vấn trên cổng Đại lý ủy quyền/Dịch vụ. Các truy vấn hướng đến read-slave này đại diện cho các truy vấn hướng đến tất cả các read-slave, vì vậy DBA có thể thấy các tắc nghẽn tiềm ẩn và điều chỉnh có thể được thực hiện để tăng tốc ứng dụng. Việc triển khai này cũng có thể được sử dụng cùng với lấy mẫu sản xuất để một máy chủ ứng dụng cụ thể chỉ hướng các truy vấn để phân tích truy vấn trong các khoảng thời gian cụ thể. Một lần nữa, điều quan trọng cần lưu ý là Service Agent tiếp tục thu thập và gửi các số liệu cụ thể của MySQL và OS tới Enterprise Monitor trong khi ứng dụng được kết nối với cổng Proxy/Service Agent

Trình phân tích truy vấn hoạt động như thế nào?

Trình phân tích truy vấn cho phép bạn giám sát các câu lệnh SQL được thực thi trên máy chủ MySQL và xem thông tin chi tiết về từng truy vấn, cũng như số lần thực hiện và thời gian thực hiện. Similar queries with different literal values are combined (“normalized”) for reporting purposes.

Làm cách nào để sử dụng trình phân tích truy vấn SQL?

Để chạy truy vấn trong Trình phân tích truy vấn, trước tiên hãy dán nội dung vào Trình phân tích truy vấn, sau đó chuyển đến thanh công cụ và chọn Truy vấn. Hiển thị kế hoạch thực hiện. Tiếp theo, đánh dấu SQL để thực thi và nhấn F5 . Hình 3 cho thấy kết quả của tôi.

Trình phân tích SQL là gì?

Trình phân tích SQL là công cụ được sử dụng để giám sát máy chủ SQL và có thể giúp người dùng phân tích các đối tượng cơ sở dữ liệu để cải thiện hiệu suất cơ sở dữ liệu .

Phân tích truy vấn là gì?

Phân tích truy vấn là một quy trình được sử dụng trong cơ sở dữ liệu sử dụng SQL để xác định cách tiếp tục tối ưu hóa truy vấn để đạt được hiệu suất . Phân tích truy vấn là một khía cạnh quan trọng của quá trình xử lý truy vấn vì nó giúp cải thiện hiệu suất tổng thể của quá trình xử lý truy vấn, điều này sẽ tăng tốc nhiều khía cạnh và chức năng cơ sở dữ liệu.