วิธีการส่งออกผลลัพธ์ของ sp_AskBrent


11

เรามีตัวอย่างที่สุ่ม CPU ฉันต้องการสร้างการแจ้งเตือนที่ใช้ซีพียูมากกว่า 90% และเรียกงานที่ทำงานโดยอัตโนมัติsp_AskBrentและส่งอีเมลถึงฉัน อย่างไรก็ตามเอาต์พุตไม่สามารถอ่านได้ใน Text หรือ HTML output มันไม่ได้เป็นไปด้วยดีในสเปรดชีต Excel ฉันจะรับข้อมูลในรูปแบบที่อ่านได้อย่างไร


3
คุณสามารถตรวจสอบคำตอบของฉันในคำถามอื่นเพื่อเรียกใช้ภายใต้ PowerShell มันจะออกรายงาน HTML ของข้อมูล ขึ้นอยู่กับรุ่นของ SQL Server ที่คุณสามารถตั้งค่าให้เป็นงานตัวแทนของ SQL (ขั้นตอน PowerShell) จากนั้นเพิ่มรหัส PS เพื่อส่งอีเมลไฟล์

@ ShawnMelton ใช่ฉันมาที่นี่เพื่อโพสต์นั้นเช่นกัน PowerShell ที่ทำงานมันเป็นเรื่องเล็กน้อยพอสมควรแล้วจึงทำการฟอร์แมต Adhoc
ConstantineK

คำตอบ:


13

ทำให้การแจ้งเตือนเรียกใช้งานที่รันEXEC msdb.dbo.sp_send_dbmailด้วย@queryพารามิเตอร์:

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;

@attach_query_result_as_file = 1พารามิเตอร์จะส่งผลเป็นสิ่งที่แนบในรูปแบบข้อความซึ่งแน่นอนควรจะอ่าน หากคุณต้องการคุณสามารถส่งออกผลลัพธ์ในรูปแบบที่คั่นด้วยจุลภาคโดยใช้@query_result_separatorพารามิเตอร์

จากหน้า MSDN สำหรับsp_send_dbmail :

ตัวอย่างนี้ส่งข้อความอีเมลไปยัง Dan Wilson โดยใช้ที่อยู่อีเมล danw@Adventure-Works.com ข้อความมีการนับจำนวนการสั่งงานและเรียกใช้งานคิวรีที่แสดงจำนวนคำสั่งงานที่มี DueDate น้อยกว่าสองวันหลังจากวันที่ 30 เมษายน 2547 เมลฐานข้อมูลแนบผลลัพธ์เป็นไฟล์ข้อความ

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 ;

มีตัวเลือกมากมายสำหรับ proc ที่เก็บไว้; ตรวจสอบหน้า MSDN และมีแนวโน้มว่าคุณจะได้ผลลัพธ์ที่ตรงตามที่คุณต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.