CollectTlogDiagnosticsCollectionJob.sql 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. USE [msdb]
  2. GO
  3. /****** Object: Job [Smart transaction log diagnostics] Script Date: 7/7/2017 7:03:44 PM ******/
  4. BEGIN TRANSACTION
  5. DECLARE @ReturnCode INT
  6. SELECT @ReturnCode = 0
  7. /****** Object: JobCategory [DBA] Script Date: 7/7/2017 7:03:44 PM ******/
  8. IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'DBA' AND category_class=1)
  9. BEGIN
  10. EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'DBA'
  11. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  12. END
  13. DECLARE @jobId BINARY(16)
  14. EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Smart transaction log diagnostics',
  15. @enabled=1,
  16. @notify_level_eventlog=0,
  17. @notify_level_email=0,
  18. @notify_level_netsend=0,
  19. @notify_level_page=0,
  20. @delete_level=0,
  21. @description=N'Job to collect transaction log diagnostics',
  22. @category_name=N'DBA',
  23. @owner_login_name=N'sa', @job_id = @jobId OUTPUT
  24. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  25. /****** Object: Step [load_dm_db_log_stats_history] Script Date: 7/7/2017 7:03:44 PM ******/
  26. EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'load_dm_db_log_stats_history',
  27. @step_id=1,
  28. @cmdexec_success_code=0,
  29. @on_success_action=1,
  30. @on_success_step_id=0,
  31. @on_fail_action=2,
  32. @on_fail_step_id=0,
  33. @retry_attempts=0,
  34. @retry_interval=0,
  35. @os_run_priority=0, @subsystem=N'TSQL',
  36. @command=N'INSERT INTO PowerConsumption.dbo.dm_db_log_stats_history SELECT GETDATE() as "Date",name as "Database",l.* FROM sys.databases d cross apply sys.dm_db_log_stats(d.database_id) l',
  37. @database_name=N'dba_local',
  38. @flags=0
  39. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  40. EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
  41. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  42. EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Every minute',
  43. @enabled=1,
  44. @freq_type=4,
  45. @freq_interval=1,
  46. @freq_subday_type=2,
  47. @freq_subday_interval=10,
  48. @freq_relative_interval=0,
  49. @freq_recurrence_factor=0,
  50. @active_start_date=20170704,
  51. @active_end_date=99991231,
  52. @active_start_time=0,
  53. @active_end_time=235959,
  54. @schedule_uid=N'9c49711b-596f-43c3-a0e7-5f22bf77741f'
  55. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  56. EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
  57. IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
  58. COMMIT TRANSACTION
  59. GOTO EndSave
  60. QuitWithRollback:
  61. IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
  62. EndSave:
  63. GO