Як експортувати вихід sp_AskBrent?


11

У нас є екземпляр, який випадковим чином спринцює процесор. Я хочу створити попередження, яке спрацьовує на процесорі понад 90% і автоматично викликає завдання, яке працює, sp_AskBrentі надсилає мені електронний лист. Однак вихід не читається ні у текстовому, ні у HTML-виведенні. Він навіть не входить в аркуш розкладу Excel. Як я можу отримати інформацію у читаному форматі?


3
Ви можете перевірити мою відповідь на інше питання, щоб запустити її під PowerShell, вона виведе HTML-звіт про дані. Залежно від версії SQL Server ви можете встановити цю програму як завдання SQL Agent (крок PowerShell), а потім додати PS код, щоб надіслати файл електронною поштою.

@ShawnMelton Так, я прийшов сюди, щоб опублікувати це також, powerhell запускає його досить тривіально, щоб потім зробити adhoc форматування.
КостянтинК

Відповіді:


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 :

Цей приклад надсилає повідомлення електронної пошти Дану Вілсону, використовуючи електронну адресу danw@Adventure-Works.com. Повідомлення містить тему Кількість робочих замовлень та виконує запит, який показує кількість робочих замовлень із DueDate менше ніж за два дні після 30 квітня 2004 року.

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 ;

Існує багато варіантів для цього збереженого процесора; перевірте сторінку MSDN і, ймовірно, ви отримаєте вихід саме таким, яким ви цього хочете.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.