1. SQL Server计划的介绍
SQL Server计划是一个任务调度程序,可以自动化执行一些重复性的工作,如备份或清理过期数据。
SQL Server计划可以:
让你不必手动执行一些常规性的任务,提升工作效率
减少手动工作的错误,提高数据管理的可靠性
帮助你管理数据库的性能和资源使用
2. SQL Server计划的创建步骤
2.1 创建计划
要创建计划,需要进入SQL Server Management Studio并执行以下步骤:
创建一个新的SQL Server代理程序作业
为作业添加步骤
为步骤设置计划并定义计划的属性
下面是一个创建计划的示例:
USE [msdb]
GO
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Test Job',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
此示例演示了如何使用T-SQL创建计划,一旦该作业创建成功,你可以通过在SQL Server代理程序中添加步骤并为它们设置计划来继续执行任务。
2.2 添加步骤
步骤是指作业中需要执行的操作,例如执行SQL脚本或其他命令。以下是添加步骤的步骤:
打开SQL Server代理程序
在左侧pane上选择“作业”
选择要编辑的作业
单击“步骤”
单击“新建”以添加新步骤
例如,这是一个添加SQL Server代理程序步骤的示例:
USE [msdb]
GO
EXEC msdb.dbo.sp_add_jobstep @job_name=N'Test Job', @step_name=N'Step1',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_fail_action=2,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'SELECT GETDATE()',
@database_name=N'master',
@flags=0
此示例演示了如何使用T-SQL添加步骤,该步骤将执行一个简单的选择语句(SELECT GETDATE())。
2.3 定义计划属性
为作业设置计划可以让你定期自动执行特定的操作。以下是定义计划属性的步骤:
在SQL Server代理程序中打开作业
选择“计划”选项卡
单击“新建”以创建新计划
设置计划的详细信息,例如执行时间和计划的重复次数
例如,这是一个SQL Server代理程序计划的示例,它会在每个工作日的下午3点运行作业:
USE [msdb]
GO
EXEC msdb.dbo.sp_add_schedule @schedule_name=N'Every Weekday at 3pm',
@freq_type=8,
@freq_interval=0,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=1,
@active_start_date=20221024,
@active_end_date=99991231,
@active_start_time=150000,
@active_end_time=235959
EXEC msdb.dbo.sp_attach_schedule @job_name=N'Test Job', @schedule_name=N'Every Weekday at 3pm'
GO
此示例演示了如何使用T-SQL添加计划,该计划每周工作日下午3点运行该作业。
3. SQL Server计划的最佳实践
3.1 按需运行计划
只有确实需要定期执行的任务才在SQL Server计划中创建作业。否则,这些过程将在系统上浪费资源并占用不必要的磁盘空间。
3.2 在单个作业中组合多个步骤
如果可以在单个作业中组合多个步骤,则避免创建多个单独的作业。这会提高性能并减少混乱。
3.3 计划的灵活性
你可以为计划设置许多不同的属性,例如重复次数和执行时间。要确保计划足够灵活,以便在需要时可以轻松地更改其执行方式。
3.4 监视你的计划
了解你的计划如何运行非常重要,因此最好监视它们并记录任何问题。例如,如果你的作业超过预期运行时间,请检查是否需要更改计划或增加资源。
4. 结论
SQL Server计划是一种强大的工具,可以自动化一些常规性的任务,例如备份或清理过期数据。通过创建适当的计划和设置灵活的属性,你可以确保你的作业始终在适当的时间运行,并避免将额外的负载投放到系统上。