• 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
  • 相关阅读:
    阿里云张新涛:连接产业上下游,构建XR协作生态
    从中间件到分布式数据库,PolarDBX的透明之路
    零信任策略下K8s安全监控最佳实践(K+)
    了解3D世界的黑魔法纯Java构造一个简单的3D渲染引擎
    EMR重磅发布智能运维诊断系统(EMR Doctor)——开源大数据平台运维利器
    PolarDBX拆分键推荐
    实战指南 | Serverless 架构下的应用开发
    【20220804】一定要遵守规则
    【20220810】给二宝取名
    【20220806】连岳摘抄
  • 原文地址:https://www.cnblogs.com/endv/p/5351130.html
Copyright © 2020-2023  润新知