tempdb日志满了,如何解决?

来源:互联网 发布:知乎 吐槽 编辑:程序博客网 时间:2024/05/17 23:44

--创建作业,自动清理tempdb数据库日志  
   
  --创建作业  
  exec   msdb..sp_add_job   @job_name='tempdb日志清理'  
   
  --创建作业步骤  
  declare   @sql   varchar(800),@dbname   varchar(250)  
  select   @sql='DUMP     TRANSACTION     tempdb     WITH     NO_LOG  
  BACKUP   LOG   tempdb   WITH   NO_LOG'     --数据处理的命令  
  ,@dbname=db_name() --执行数据处理的数据库名  
   
  exec   msdb..sp_add_jobstep   @job_name='tempdb日志清理',  
  @step_name   =   '数据处理',  
  @subsystem   =   'TSQL',  
  @database_name=@dbname,  
  @command   =   @sql,  
  @retry_attempts   =   5,   --重试次数  
  @retry_interval   =   5     --重试间隔  
   
  --创建调度  
  EXEC   msdb..sp_add_jobschedule   @job_name   =   'tempdb日志清理',    
  @name   =   '时间安排',  
  @freq_type=4,   --4   每天,8   每周,16   每月  
  @freq_interval=1, --作业执行的天数  
  @freq_subday_type=0, --是否重复执行,0x1   在指定的时间,   0x4   分钟,   0x8   小时    
  @freq_subday_interval=1,   --重复周期  
  @freq_recurrence_factor=0, --重复执行,则设置为1,否则设置为0  
  @active_start_time   =   00000 --0点开始执行  
   
  --   添加目标服务器  
  EXEC   msdb.dbo.sp_add_jobserver    
  @job_name   =   'tempdb日志清理'   ,  
  @server_name   =   N'(local)'

 

建议优化   tempdb   性能  
   
   
  对   tempdb   数据库的物理位置和数据库选项设置的一般建议包括:    
   
  使   tempdb   数据库得以按需自动扩展。这确保在执行完成前不终止查询,该查询所生成的存储在   tempdb   数据库内的中间结果集比预期大得多。  
   
   
  将   tempdb   数据库文件的初始大小设置为合理的大小,以避免当需要更多空间时文件自动扩展。如果   tempdb   数据库扩展得过于频繁,性能会受不良影响。  
   
   
  将文件增长增量百分比设置为合理的大小,以避免   tempdb   数据库文件按太小的值增长。如果文件增长幅度与写入   tempdb   数据库的数据量相比太小,则   tempdb   数据库可能需要始终扩展,因而将妨害性能。  
   
   
  将   tempdb   数据库放在快速   I/O   子系统上以确保好的性能。在多个磁盘上条带化   tempdb   数据库以获得更好的性能。将   tempdb   数据库放在除用户数据库所使用的磁盘之外的磁盘上。有关更多信息,请参见扩充数据库。