【sql】sql数据监控
来源:互联网 发布:蒙特卡洛模拟算法 编辑:程序博客网 时间:2024/05/07 16:26
sql数据监控
- 通过配置表 tables_config
id dbname tablename cond1 jbt rpt_fact_custjbt_stat [日期]2 jbt rpt_fact_custmini [统计时间]12 jbt rpt_fact_custjbt_stat_acc [日期]4 jbt st_dd_custtrade_attr dcdate5 jbt st_dd_jbtmatch dcdate
- 实现监控每个数据库下表的记录数,可通过报表邮件发送
select * from tables_check where dcdate = 20170301
- 存储过程
ALTER procedure [dbo].[proc_tables_check]( @dcdate varchar(10) , @selectdb varchar(10), @insid int=0, @error int =0 output )as /*exec proc_tables_check 20170630,'jbt'exec proc_tables_check 20170630,'all'*/begin declare @date0 int;select @date0=max(dcdate) from [172.x.x.x].cgds2016.dbo.trddate where dcdate < @dcdate if (select COUNT(*) from [172.x.x.x].cgds2016.dbo.trddate where dcdate =@dcdate )= 0 return 1 --节假日返回declare @sql varchar(max)declare @tb_cur as cursordeclare @tb_name varchar(128)declare @dbname varchar(64)declare @id int declare @cond varchar(max) create table #tables_check ( [dcdate] [varchar](10) NULL, [dbname] varchar(64) , [tablename] [varchar](256) NULL, id int , [cnt] [int] NULL, )if (@selectdb = 'all')set @tb_cur = CURSOR FOR select dbname, tablename , id , cond from jbt..tables_config where 1=1else set @tb_cur = CURSOR FOR select dbname, tablename , id , cond from jbt..tables_config where dbname = @selectdb open @tb_curfetch NEXT FROM @tb_cur into @dbname,@tb_name,@id ,@cond while @@FETCH_STATUS=0 begin set @sql = 'insert into #tables_check (dcdate,dbname, tablename,id,cnt) select ' + @dcdate +','+ '''$dbname''' +',' +'''$tb_name''' +',' + '$id'+','+'count(*) from $dbname.dbo.$tb_name with(nolock) where ' +@cond+'=$dcdate' print @sql set @sql = replace(replace(REPLACE(REPLACE(@sql, '$tb_name', @tb_name) ,'$id', @id),'$dcdate',@dcdate),'$dbname',@dbname) print @sql exec GDW..proc_run_sql @sql, @insid, @error fetch NEXT FROM @tb_cur into @dbname,@tb_name, @id ,@cond end end---入库if (@selectdb = 'all') beginset @sql = 'delete from jbt..tables_check where dcdate = $dcdate'set @sql = replace(REPLACE(@sql, '$dcdate', @dcdate),'$selectdb',@selectdb)exec GDW..proc_run_sql @sql, @insid,@error end else begin set @sql = 'delete from jbt..tables_check where dcdate = $dcdate and dbname = ' + '''$selectdb'''set @sql = replace(REPLACE(@sql, '$dcdate', @dcdate),'$selectdb',@selectdb)exec GDW..proc_run_sql @sql, @insid,@error end insert into jbt..tables_check select @dcdate as dcdate ,a.dbname,a.tablename,a.id ,ISNULL(cnt,0) cnt from tables_config a left join #tables_check b on a.dbname = b.dbname and a.tablename = b.tablename
0 0
- 【sql】sql数据监控
- sql 监控
- SQL Server 使用触发器监控数据变更
- MS SQL 监控数据/日志文件增长
- SQL Server 变更数据捕获(CDC)监控表数据
- IronTrack SQL监控SQL语句
- 用动态sql实现报表数据的检测监控
- Oracle-常用监控SQL
- oracle sql 监控
- Oracle监控Sql脚本
- Oracle-常用监控SQL
- 数据库监控SQL
- SQL Server 监控
- SQL Server2008CPU性能监控
- 监控Hibernate执行SQL
- SQL Server性能监控
- 常用监控SQL
- SQL Server 作业监控
- [我眼中的C#]类的介绍
- 优惠券收集问题
- iOS逆向工程整理_0x01
- Android WebView 缓存
- 万能头文件
- 【sql】sql数据监控
- CiteSpace学习笔记
- 车载导航不支持播放全部的mp3音乐的解决办法--------fwqlzz love is for ever
- 头文件,支持文件和主文件三者之间的关系
- Android开发常犯错误
- uva10720
- POJ 1094 Sorting It All Out (拓扑排序,有向图判环)
- 数据的酷炫可视化
- 【Unity优化】构建一个拒绝GC的Lis