Tạo giám sát đường cơ sở hiệu suất máy chủ SQL


8

Để có được một tổng quan và dữ liệu có thể so sánh, nhiệm vụ hiện tại của tôi là tạo một đường cơ sở hiệu suất để có được một số số liệu về các phiên bản SQL Server hiệu quả khác nhau.

Suy nghĩ của tôi là:

  • Tôi muốn sử dụng một số DMV
  • Tôi muốn bao gồm một dấu vết hồ sơ (bao gồm các kế hoạch Exec.)
  • Tôi muốn bao gồm dữ liệu perfmon

Vì vậy, những gì tôi cố gắng đạt được là một giám sát hiệu suất chung có thể bắt đầu và có thể dừng lại (cũng có thể lập lịch biểu) trả về:

  1. Tất cả thông tin cần thiết để xác định sự thành công của các nhiệm vụ tối ưu hóa hiệu suất đang diễn ra

  2. Một vài con số tổng hợp, đơn giản giúp hình dung về sự tiến bộ lâu dài .. đặc biệt. để quản lý ;-)

  3. Các kế hoạch thực hiện có thể thực hiện lại trong dấu vết hồ sơ để so sánh các thay đổi và cải tiến hàng đợi riêng lẻ bằng các tác vụ tối ưu hóa chỉ mục

Tôi tìm thấy một vài thông tin mô tả việc tạo ra các đường cơ sở hiệu suất. Hầu hết chúng đều rất phức tạp hoặc chỉ tập trung vào một trong các chỉ số hiệu suất mong muốn (chủ yếu là dữ liệu perfmon).

Mẫu / mô tả phù hợp nhất là như sau: Tạo Đường cơ sở hiệu suất cho SQL Server

Câu hỏi là:

Có ai có kinh nghiệm tạo ra loại màn hình hiệu suất này một cách nhanh chóng có thể làm được không?


3
Một ít thông tin bạn có thể nhận được từ Brent Ozar Sp_Blitz một số liên kết tham khảo thêm tại đâyđây
Shanky

3
Tôi nghĩ rằng câu trả lời ngắn gọn là: Không. Bạn cần dành thời gian để phác thảo những gì bạn cần để thực hiện cơ bản. Dựa trên đánh giá đó, bạn cần kết hợp các truy vấn để thu thập thông tin và tạo các đối tượng db để lưu trữ thông tin. Ngoài đề xuất của @ Shanky, bạn cũng có thể sử dụng sp_whoisactive để thu thập thông tin hữu ích
tommyfly

6
Bạn cũng có thể xem xét một công cụ của bên thứ 3 thực hiện cơ sở (và rất nhiều thứ trên đó). Những gì bạn đang đề xuất là phát minh lại rất nhiều công việc mà người khác đã làm. Không, chúng không miễn phí, nhưng thời gian của bạn cũng không (và ban quản lý sẽ nhận thức rõ về điều đó).
Aaron Bertrand

Xin chào Aaron, bạn có thể vui lòng cung cấp công cụ của bên thứ ba thực hiện việc này không
TheGameiswar 17/08/2015

3
Đi cho SQLSentry . Tôi đã sử dụng nó trong công việc trước đây của tôi và một công cụ tuyệt vời + có sự hỗ trợ và những người tuyệt vời trong cộng đồng như @AaronBertrand :-)
Kin Shah

Câu trả lời:


8

Hơn một năm sau tôi muốn cho mọi người biết kinh nghiệm của tôi và kết quả cuối cùng của câu hỏi / chủ đề này.

Tôi bắt đầu tự mình tạo ra mọi thứ. Ban đầu, tôi đã theo dõi Điều thu thập và lưu trữ dữ liệu bộ đếm hiệu suất SQL Server lịch sử với CMV của Tim Ford để lấy thứ gì đó và mở rộng dữ liệu này với bất kỳ Dữ liệu nào tôi muốn thu thập. Vì vậy, mỗi ngày một lần tôi chạy một số thủ tục được lưu trữ trên mỗi Máy chủ Sql thu thập một số thông tin cụ thể từ DMV và lưu trữ kết quả trên Máy chủ cục bộ bên trong cơ sở dữ liệu. Điều này bao gồm sử dụng chỉ mục, chỉ mục bị thiếu, các mục nhật ký cụ thể như autogrow, cài đặt máy chủ, cài đặt cơ sở dữ liệu ứng dụng, phân mảnh, thực thi công việc, thông tin nhật ký giao dịch, thông tin tệp, số liệu thống kê chờ và hơn thế nữa.

Ngoài ra, tôi đã thêm các kết quả thực thi quy định sp_blitz của Brent Ozar vào kho lưu trữ này để thu thập các chỉ dẫn có giá trị bổ sung để làm việc, cải thiện và báo cáo.

Tất cả dữ liệu được thu thập từ đó vào Máy chủ Sql theo dõi chuyên dụng và bằng cách này, tôi tạo một cửa hàng được đóng gói để thực hiện thông tin liên quan về tất cả các máy chủ của mình và sử dụng làm cơ sở để điều tra và báo cáo.

Sau đó, tôi đã tạo các bảng excel và báo cáo sử dụng các dịch vụ báo cáo để phân tích và giải thích. Một số mẫu:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Ngoài ra, tôi đã cấu hình một số giám sát bộ đếm hiệu suất bằng TYPEPERF lấy cảm hứng từ bài viết " Thu thập dữ liệu hiệu suất vào bảng máy chủ SQL " của Fedor Georgiev.

Từ cá thể Giám sát SQL của tôi, tôi kích hoạt typeperf để chạy và thu thập số lượng mẫu có thể định cấu hình với một giá trị mẫu có thể định cấu hình và lưu trữ các kết quả trong db giám sát trung tâm của tôi.

Điều này cho phép tôi quan sát các giá trị hiệu suất dài hạn, mẫu:

nhập mô tả hình ảnh ở đây

Sau một thời gian sử dụng điều này để thu thập thông tin cơ bản, nó đã điều chỉnh ra rằng có khá nhiều công việc bảo trì phải bỏ ra để xem xét các công việc thất bại, các thủ tục khử lỗi (ví dụ trong trường hợp DB bị ngoại tuyến, một số tập lệnh thất bại), duy trì cài đặt sau khi máy chủ được thay thế ...

Ngoài ra, cơ sở dữ liệu thu thập tất cả các bản ghi cần bảo trì và điều chỉnh hiệu suất, vì vậy công việc bổ sung xuất hiện để giữ dữ liệu hữu ích ...

Điều cuối cùng hoàn toàn thiếu là khả năng nhìn vào những thứ xảy ra trực tiếp. Trong trường hợp tốt nhất, tôi sẽ có thể nói những gì có thể xảy ra vào ngày hôm sau sau khi các bộ thu thập dữ liệu đã chạy. Ngoài ra tất cả các chi tiết bị thiếu. Tôi không có quyền truy cập vào biểu đồ khóa chết, tôi không thể xem các gói truy vấn của các truy vấn đang chạy trong khung thời gian đáng ngờ ....

Tất cả điều đó khiến tôi sẽ tính phí quản lý để chi tiền cho một giải pháp chuyên nghiệp mà tôi không thể tự tạo ra.

Lựa chọn cuối cùng là mua SentryOne vì so với những người khác, nó rất thuyết phục và cung cấp nhiều thông tin cần thiết để xác định điểm đau của chúng tôi.

Như một kết luận cuối cùng, tôi sẽ khuyên bất cứ ai tìm kiếm câu trả lời cho câu hỏi tương tự đừng cố gắng tự tạo mọi thứ miễn là bạn không có một môi trường nhỏ và cơ bản lành mạnh. Nếu bạn có một vài hệ thống và nhiều vấn đề, tốt nhất hãy tìm giải pháp chuyên nghiệp và sử dụng sự trợ giúp của nhà cung cấp về các vấn đề của bạn thay vì tốn nhiều thời gian và tiền bạc để tạo ra một số ít hữu ích. Tuy nhiên, tuyến đường này vẫn rất thú vị và khiến tôi học được nhiều điều mà tôi không muốn bỏ lỡ.

Tôi hy vọng bạn thấy điều này hữu ích khi bạn gặp vấn đề này.

EDIT ngày 20 tháng 4 năm 2017: Brent Ozar gần đây đã đăng bài viết sau đây trên facebook, đây là một cách tiếp cận tương tự được thực hiện bởi Nhóm SQL Tiger: https://blogs.msdn.microsoft.com/sql_server_team/sql-server-performance-baselining -reports-Unleashed-for-Enterprise-giám sát /


2
Tôi rất vui vì bạn đã đi đến kết luận tương tự, và bạn hoàn toàn chính xác, thời gian của bạn tốt hơn dành cho việc khắc phục các vấn đề thực tế của bạn thay vì phát minh lại bánh xe. Bánh xe của bạn có vẻ đặc biệt sáng bóng mặc dù: D
ConstantineK

6

Dưới đây là một số bài viết hay với một số ví dụ thực tế mà bạn có thể tìm thấy ở đây:

Cách phát hiện các vấn đề về hiệu suất của SQL Server bằng đường cơ sở - Phần 1 - Giới thiệu

Cách phát hiện các sự cố về hiệu suất của SQL Server bằng đường cơ sở - Phần 2 - Thu thập số liệu và báo cáo

Cách phát hiện các vấn đề về hiệu suất của SQL Server bằng đường cơ sở - Phần 3

Mặc dù Phần 1 sẽ cung cấp cho bạn một số kiến ​​thức cơ bản về đường cơ sở là gì, nhưng trong Phần 2, bạn có thể tìm thấy thông tin về cách tự mình thực hiện bằng phương pháp "người nghèo" (nó miễn phí và tốt cho việc học)

Phần 3 cung cấp một số ví dụ về cách bạn có thể thiết lập đường cơ sở và cách sử dụng đường cơ sở để khắc phục một số vấn đề thông qua ApexQuery Monitor


4

Là một DBA khá mới được tạo ra dưới súng, tôi đã chạy một loạt các công cụ miễn phí và thực hiện một số thử nghiệm trong không gian phải trả tiền (DPA, SQL Sentry và Foglight) và nó thực sự phụ thuộc vào những gì bạn muốn công cụ này.

Theo kinh nghiệm của tôi, điều quan trọng nhất không chỉ là truyền đạt các đường cơ sở hiệu suất (ban quản lý không quan tâm trừ khi có ai đó hét lên), nhưng tạo ra thứ gì đó ở định dạng dễ tiêu thụ làm cho các ưu tiên rõ ràng và có thể theo dõi hiệu suất Các vấn đề trong sản xuất.

Bạn hoàn toàn có thể xây dựng các kỹ năng của mình bằng cách đi theo lộ trình miễn phí và các công cụ dành cho SQL Server rất tuyệt vời.

Với những thứ này và một số cơ sở dữ liệu / bảng bổ sung và công việc và thời gian, bạn có thể xây dựng một hệ thống giám sát cơ bản (nhưng nó không đẹp) đây là những công cụ cho các DBA; trừ khi bạn giỏi về công cụ BI, bạn sẽ phải vật lộn để tìm thời gian để sản xuất những thứ thân thiện với doanh nghiệp từ nó, mặc dù ứng dụng Ozar sp_blitz khá tuyệt vời.

Sau khi dành khoảng một năm để làm việc miễn phí và giải quyết nhiều vấn đề (nhưng không mua được nhiều), tôi đã có thể làm rõ, sau một vấn đề lớn, phần mềm giám sát hoàn hảo là ưu tiên hàng đầu, và chúng tôi sẽ mua nó đến địa ngục hoặc nước cao.

Sau khi giới thiệu các máy khách được đề cập trước đó, tôi đã chọn DPA vì ban quản lý có thể dễ dàng sử dụng kết quả, mặc dù tôi chắc chắn có giấy phép máy khách cho SQL Sentry Plan Explorer Pro (đáng giá 1000% tiền) và thực sự thích sử dụng phiên bản máy chủ, nhưng nó không lấy được chúng cùng một cách

Tôi cũng đã thử để SQLNexus hoạt động tại một thời điểm nhưng cuối cùng tôi đã làm việc rất nhiều so với những gì tôi quan tâm, nó có thể phù hợp với nhu cầu của bạn.


1

Để nhanh chóng tạo đường cơ sở hiệu suất để có được một số số liệu về các trường hợp sql năng suất khác nhau, tôi sẽ sử dụng bản dùng thử miễn phí của công cụ bên thứ 3 như Trình phân tích hiệu suất cơ sở dữ liệu của Solarwinds.


1

Đọc cuốn sách này!!! SQL Server Tacklebox

Nó chỉ cho bạn cách sử dụng các truy vấn SSIS và TSQL để thu thập thông tin giám sát trên tất cả các phiên bản SQL Server trong môi trường của bạn.


0

Tôi đã theo một lộ trình tương tự với một số áp phích trên, nhưng sau đó tình cờ thấy một cái gì đó được tạo bởi Microsoft.

Nó đã được đề cập ở trên một cách ngắn gọn, nhưng không có liên kết rõ ràng được đưa ra. Nhóm Microsoft Tiger đã phát triển 'Tiger Toolbix' có thể tải xuống từ đây: https://github.com/Microsoft/tigertoolbox

Một video Youtube giải thích về Hộp công cụ Tiger: https://www.youtube.com/watch?v=bx_NGNEz94k

Ngoài ra còn có https://github.com/sqlcollaborative/dbareports

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.