zoukankan      html  css  js  c++  java
  • USE [EPPM] [dbo].[REFRDEL_CLEANUP]

     1 USE [EPPM]
     2 GO
     3 /****** Object:  StoredProcedure [dbo].[REFRDEL_CLEANUP]    Script Date: 2016/4/2 16:32:29 ******/
     4 SET ANSI_NULLS ON
     5 GO
     6 SET QUOTED_IDENTIFIER ON
     7 GO
     8 ALTER PROCEDURE [dbo].[REFRDEL_CLEANUP]
     9   (@pret_val integer OUTPUT, @pret_msg varchar(1000) OUTPUT ) AS 
    10    declare @curr_time datetime
    11    declare @vdiff integer
    12    declare @vinterval_date datetime
    13    declare @vset varchar(20)
    14    declare @vsetnum integer
    15    declare @min_refrdel_date datetime
    16    declare @delete_target datetime
    17    declare @max_minutes_to_sweep integer  
    18    declare @interval_step integer 
    19    declare @cnt integer 
    20    declare @i integer
    21    declare @total_cleared integer 
    22  begin try
    23    set @curr_time=getdate()
    24    set @cnt=0
    25    set @i=1
    26    set @pret_val=0
    27    set @total_cleared=0
    28    exec settings_read_number @max_minutes_to_sweep OUTPUT,'database.cleanup.Refrdel','DaysToDelete',1
    29    exec settings_read_number @interval_step OUTPUT,'database.cleanup.Refrdel','IntervalStep',15
    30    exec settings_read_string @vset OUTPUT,'database.cleanup.Refrdel','KeepInterval','5d'
    31    set @max_minutes_to_sweep=@max_minutes_to_sweep*1440
    32    exec get_interval_difference @vset, @vdiff OUTPUT
    33     set @vinterval_date = @curr_time-@vdiff
    34    print 'Keep Date: ' + convert(varchar(30),@vinterval_date)
    35    select @min_refrdel_date=min(delete_date)  from refrdel
    36    print 'Oldest Refrdel: ' + convert(varchar(30),@min_refrdel_date)
    37    set @delete_target = @min_refrdel_date
    38    if @min_refrdel_date is not null 
    39    begin 
    40    set @total_cleared=0
    41    while ( @i <= @max_minutes_to_sweep and @delete_target < @vinterval_date ) 
    42    begin
    43      set @delete_target=dateadd(mi,@interval_step,@delete_target)    
    44      delete from refrdel where delete_date< @delete_target
    45      set @total_cleared= @total_cleared +@@rowcount
    46      set @i=@i+@interval_step
    47    end   
    48   end 
    49   else
    50    print 'Nothing to Delete'
    51    set @pret_val =@total_cleared
    52    set @pret_msg='Cleared: ' + ltrim(str(@pret_val)) + ' records from ' + convert(varchar(30),@min_refrdel_date) +' to ' + convert(varchar(30),@delete_target)
    53    print @pret_msg
    54  end try
    55  Begin Catch
    56   set @pret_val=error_number()
    57   set @pret_msg=error_message()
    58  End Catch
  • 相关阅读:
    redis 1 简单介绍和存储的数据结构
    mysql 14 覆盖索引+回表
    mysql 13 B+tree中存储数据的格式 页
    java Arrays.asList() 数组转集合
    java 迭代器
    mysql 12 SQL优化策略
    mysql 11 执行计划
    mysql 10 索引面试题分享
    搭建一个开源项目2-打造另一个环境以及解决上期问题
    搭建一个开源项目1-如何搭建Linux虚拟机
  • 原文地址:https://www.cnblogs.com/endv/p/5351130.html
Copyright © 2011-2022 走看看