Làm cách nào để xuất đầu ra của sp_AskBrent?


11

Chúng tôi có một ví dụ ngẫu nhiên tăng vọt CPU. Tôi muốn tạo một cảnh báo kích hoạt CPU trên 90% và tự động gọi một công việc chạy sp_AskBrentvà gửi email cho tôi đầu ra. Tuy nhiên, đầu ra không thể đọc được trong đầu ra Văn bản hoặc HTML. Nó thậm chí không đi sâu vào bảng tính Excel. Làm thế nào tôi có thể nhận được thông tin ở định dạng có thể đọc được?


3
Bạn có thể kiểm tra câu trả lời của tôi cho một câu hỏi khác để chạy nó trong PowerShell, nó sẽ xuất ra một báo cáo HTML về dữ liệu. Tùy thuộc vào phiên bản SQL Server, bạn có thể thiết lập công việc đó dưới dạng công việc Tác nhân SQL (bước PowerShell), sau đó thêm mã PS để gửi email tệp.

@ShawnMelton yeah, tôi cũng đến đây để đăng bài đó, powershell chạy nó khá tầm thường để sau đó thực hiện định dạng adhoc.
ConstantineK

Câu trả lời:


13

Làm cho cảnh báo chạy một công việc chạy EXEC msdb.dbo.sp_send_dbmailvới @querytham số:

EXEC dbo.sp_send_dbmail @profile_name = 'mail_profile'
    , @recipients = 'some@mail.com'
    , @subject = 'some subject'
    , @body = 'the body text goes here'
    , @query = 'EXEC sp_AskBrent;'
    , @attach_query_result_as_file = 1;

Các @attach_query_result_as_file = 1thông số sẽ gửi kết quả dưới dạng đính kèm ở định dạng văn bản, mà chắc chắn nên có thể đọc được. Nếu bạn muốn, bạn có thể xuất kết quả ở định dạng được phân cách bằng dấu phẩy bằng @query_result_separatortham số.

Từ trang MSDN chosp_send_dbmail :

Ví dụ này gửi một thông điệp email đến Dan Wilson bằng địa chỉ email danw@Advoji-Works.com. Thông báo có chủ đề Số lượng đơn đặt hàng làm việc và thực hiện một truy vấn hiển thị số lượng đơn đặt hàng công việc với DoDate chưa đầy hai ngày sau ngày 30 tháng 4 năm 2004. Cơ sở dữ liệu Thư đính kèm kết quả dưới dạng tệp văn bản.

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'Adventure Works Administrator',
    @recipients = 'danw@Adventure-Works.com',
    @query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
                  WHERE DueDate > ''2004-04-30''
                  AND  DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
    @subject = 'Work Order Count',
    @attach_query_result_as_file = 1 ;

Có nhiều lựa chọn cho việc lưu trữ đó; kiểm tra trang MSDN và có khả năng bạn sẽ nhận được đầu ra chính xác như bạn muốn.

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.