返回顶部
首页 > 资讯 > 数据库 >数据库中tmstamp monitor的示例代码
  • 841
分享到

数据库中tmstamp monitor的示例代码

2024-04-02 19:04:59 841人浏览 薄情痞子
摘要

这篇文章主要介绍了数据库中tmstamp monitor的示例代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。USE [DBCe

这篇文章主要介绍了数据库中tmstamp monitor的示例代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

USE [DBCenter]
Go


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


alter procedure [dba].[GetRowDiff] 
as
declare 
@databse_name varchar(15),
@schema_name varchar(10),
@table_name varchar(100),
@max_tmstamp_2 bigint,
@row_count_2 bigint,
@max_tmstamp_1 bigint,
@row_count_1 bigint,
@datetime datetime,
@sql varchar(8000),
@record_time_1 varchar(19),
@record_time_2 varchar(19)
SET NOCOUNT on
set @sql=''
set @datetime =getdate()
truncate table DBCenter..viewTMstamp_diff
declare mycursor cursor for 
            select aa.databse_name,aa.[schema_name],aa.table_name,aa.max_tmstamp as max_tmstamp_2,aa.row_count as row_count_2,bb.max_tmstamp as max_tmstamp_1,bb.row_count as row_count_1,
            convert(varchar(19),aa.record_time,120) as record_time_2,convert(varchar(19),bb.record_time,120) as record_time_1 from 
            (
            select a.databse_name,a.[schema_name],a.table_name,a.max_tmstamp,a.row_count,a.record_time from [DBCenter].[dbo].[viewMaxTMtamp] a with (nolock) 
            where 
            convert(varchar(10),a.record_time,120)+' '+convert(varchar(2),a.record_time,114) = convert(varchar(10),dateadd(hh,0,getdate()),120)+' '+convert(varchar(2),dateadd(hh,0,getdate()),114)
             ) as aa
            join 
            (
            select b.databse_name,b.[schema_name],b.table_name,b.max_tmstamp,b.row_count,b.record_time from [DBCenter].[dbo].[viewMaxTMtamp] b with (nolock) 
            where
            convert(varchar(10),b.record_time,120)+' '+convert(varchar(2),b.record_time,114) = convert(varchar(10),getdate(),120)+' '+convert(varchar(2),dateadd(hh,-1,getdate()),114)
            ) as bb
            on aa.databse_name=bb.databse_name 
            and aa.[schema_name]=bb.[schema_name]
            and aa.table_name=bb.table_name

 --打开游标 
    open mycursor 
    --从游标里取出数据赋值到我们刚才声明的2个变量中 
    fetch next from mycursor into @databse_name,@schema_name,@table_name,@max_tmstamp_2,@row_count_2,@max_tmstamp_1,@row_count_1,@record_time_2,@record_time_1
    --判断游标的状态 
    -- 0 fetch语句成功 
    ---1 fetch语句失败或此行不在结果集中 
    ---2 被提取的行不存在 
    while (@@fetch_status=0) 
    begin 
    set @sql='insert into DBCenter..viewTMstamp_diff([db_name],[schema_name],[table_name],[row_count_diff],[tmstmp_row_count_diff],[tmstmp_diff],[record_time_2],[record_time_1],[date_time])
     select '+''''+@databse_name+''''+','+''''+@schema_name+''''+','+''''+@table_name+''''+','+cast((@row_count_2-@row_count_1)as varchar(100))+' as row_count_diff,count(1) as tmstmp_row_count_diff ,'
     +cast((@max_tmstamp_2-@max_tmstamp_1)as varchar(100))+' as tmstmp_diff,'+''''+convert(varchar(19),@record_time_2,120)+''''+','+''''+convert(varchar(19),@record_time_1,120)+''''+','+''''+convert(varchar(19),getdate(),120)+''''+'
     from '+@databse_name+'.'+@schema_name+'.'+@table_name+' with (nolock) where cast(TMSTAMP as bigint) >='+cast(@max_tmstamp_1 as varchar(100))+' and  cast(TMSTAMP as bigint)<'+cast(@max_tmstamp_2 as varchar(100))
 --print @sql
     EXEC (@sql)
    set @sql='insert into DBCenter..viewTMstamp_diff_his([db_name],[schema_name],[table_name],[row_count_diff],[tmstmp_row_count_diff],[tmstmp_diff],[record_time_2],[record_time_1],[date_time])
     select '+''''+@databse_name+''''+','+''''+@schema_name+''''+','+''''+@table_name+''''+','+cast((@row_count_2-@row_count_1)as varchar(100))+' as row_count_diff,count(1) as tmstmp_row_count_diff ,'
     +cast((@max_tmstamp_2-@max_tmstamp_1)as varchar(100))+' as tmstmp_diff,'+''''+convert(varchar(19),@record_time_2,120)+''''+','+''''+convert(varchar(19),@record_time_1,120)+''''+','+''''+convert(varchar(19),getdate(),120)+''''+'
     from '+@databse_name+'.'+@schema_name+'.'+@table_name+' with (nolock) where cast(TMSTAMP as bigint) >='+cast(@max_tmstamp_1 as varchar(100))+' and  cast(TMSTAMP as bigint)<'+cast(@max_tmstamp_2 as varchar(100))
 --print @sql
     EXEC (@sql)
    fetch next from mycursor into @databse_name,@schema_name,@table_name,@max_tmstamp_2,@row_count_2,@max_tmstamp_1,@row_count_1,@record_time_2,@record_time_1
    end 
    --关闭游标 
    close mycursor        
    --撤销游标 
    DEALLOCATE mycursor 
    
    SET NOCOUNT off


GO
USE [datayesdb]
GO


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [dba].[GetMaxTMstmp] 
@database varchar(20),
@schema varchar(20),
@tbname nvarchar(100),
@datetime datetime
as

declare @Max_TMstmp bigint
declare @sql nvarchar(4000)
declare @sql2 nvarchar(4000)
declare @i int=0
DECLARE @startDate1 DATE;
DECLARE @startDate DATETIME;
DECLARE @endDate DATETIME ;
SET NOCOUNT on

SET @startDate1=GETDATE();SELECT @startDate=DATEADD(DAY,-0,@startDate1); 
SET @endDate=DATEADD(d,+1,CONVERT(DATETIME,@startDate1)); 
--SELECT @startDate startDate,@endDate endDate;

--set @tbname='bond'
--print @tbname
begin
--print @tbname
set @sql2='select @i=count(1) from sys.columns col  with (nolock)  join sys.tables tbl  with (nolock)  on col.object_id=tbl.object_id where tbl.name='+''''
            +@tbname+''''+' and col.name in ('+''''+'TMSTAMP'+''''+','+''''+'UPDATE_TIME'+''''+') and tbl.type='+''''+'U'+''''+ ' and tbl.schema_id =schema_id('+''''+@schema+''''+')'
            --print @sql2
exec sp_executesql @sql2 ,N'@i int out' ,@i out
--print @i
if isnull(@i,0)=2
begin
set @sql= 'insert into  [DBCenter].[dbo].[viewMaxTMtamp] ([databse_name],[schema_name],[table_name],[min_tmstamp],[max_tmstamp],[row_count],[min_update_time],[max_update_time],[record_time]) select '
        +''''+@database+''''+','+''''+@schema+''''+','+''''+@tbname+''''+
        ', isnull(cast(min(TMSTAMP) as bigint),0)'+', isnull(cast(max(TMSTAMP) as bigint),0)'+',count(1)'+', min(UPDATE_TIME)'+', max(UPDATE_TIME),'+''''
        +cast (@datetime as varchar(20))+''''+' from '+@database+'.'+@schema+'.'+@tbname +' with (nolock)'
--print @sql
EXEC (@sql)
end
end
SET NOCOUNT off

------------------------------------------------------------------------------------------------------------------------- 

GO
    USE [datayesdb]
    GO
    
    
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE procedure [dba].[GetMaxTMstmp_job] 
    as
    declare 
    @database varchar(20),
    @schema varchar(20),
    @tblname varchar(100),
    @datetime datetime
    SET NOCOUNT on
    set @datetime=GETDATE()
    set @database='datayesdb'
    declare mycursor cursor for select schema_name(schema_id) [schema],name from sys.tables with (nolock) where type='U' order by [schema],name
     --打开游标 
        open mycursor 
        --从游标里取出数据赋值到我们刚才声明的2个变量中 
        fetch next from mycursor into @schema,@tblname
    
        --判断游标的状态 
        -- 0 fetch语句成功 
        ---1 fetch语句失败或此行不在结果集中 
        ---2 被提取的行不存在 
        while (@@fetch_status=0) 
        begin 
        --print @tblname
        exec dba.GetMaxTMstmp @database,@schema,@tblname,@datetime
        fetch next from mycursor into @schema,@tblname
        end 
        --关闭游标 
        close mycursor        
        --撤销游标 
        DEALLOCATE mycursor 
        
        SET NOCOUNT off
    
    GO

    感谢你能够认真阅读完这篇文章,希望小编分享的“数据库中tmstamp monitor的示例代码”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

    您可能感兴趣的文档:

    --结束END--

    本文标题: 数据库中tmstamp monitor的示例代码

    本文链接: https://lsjlt.com/news/69725.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • 数据库中tmstamp monitor的示例代码
      这篇文章主要介绍了数据库中tmstamp monitor的示例代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。USE [DBCe...
      99+
      2024-04-02
    • 数据库中cdc.lsn_time_mapping的示例代码
      小编给大家分享一下数据库中cdc.lsn_time_mapping的示例代码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 代码如下 SELECT&nb...
      99+
      2024-04-02
    • 数据库中AGStatus SQL的示例代码
      小编给大家分享一下数据库中AGStatus SQL的示例代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
      99+
      2024-04-02
    • monitor temp db usage for MSSQL的示例代码
      这篇文章将为大家详细讲解有关monitor temp db usage for MSSQL的示例代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 create a ...
      99+
      2024-04-02
    • Java操作MongoDB数据库的示例代码
      目录环境准备 1.数据库操作 1.1获取所有数据库1.2获取指定库的所有集合名1.3.删除数据库2.文档操作 2.1插入文档 2.2查询文档 2.3分页查询 2.4修改文档2.5 删...
      99+
      2024-04-02
    • Qt创建SQlite数据库的示例代码
      Qt 创建 SQlite数据库 void Widget::initDB() { // 创建并打开数据库 QSqlDatabase database; data...
      99+
      2024-04-02
    • Java读取数据库表的示例代码
      目录Java读取数据库表新手引导LoggerConnectionResultSetResultSet中next()方法name和commentJava读取数据库表 package c...
      99+
      2023-05-18
      Java读取数据库表 Java数据库表
    • python使用mysql数据库示例代码
      一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可。 Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的li...
      99+
      2022-06-04
      示例 代码 数据库
    • php怎么删除和修改数据库中的数据?(代码示例)
      PHP是一种流行的服务器端脚本语言,常用于Web开发和动态Web页面的创建。在处理数据库时,PHP可以使用许多不同的方法,其中包括删除和修改数据库的代码。在本文中,我将介绍如何使用PHP编写删除和修改数据库的代码。删除数据库中的数据删除数据...
      99+
      2023-05-14
      php 数据库
    • C#获取微信小程序的云数据库中数据的示例代码
      目录0 背景说明 0.1 获取AccessToken 0.2 数据库查询 0.3 文件下载 2. 简单的封装 3. 简单测试 4. 参考文档 0 背景说明 试水小程序,实现访客登记...
      99+
      2024-04-02
    • 【学生成绩管理】数据库示例数据(MySQL代码)
      【学生成绩管理】数据库示例数据(MySQL代码) 目录 【学生成绩管理】数据库示例数据(MySQL代码)一、创建数据库二、创建dept(学院)表1、创建表结构2、添加示例数据3、查看表中数据 三、创建stu(学生)表1...
      99+
      2023-12-23
      数据库 mysql
    • python3 实现mysql数据库连接池的示例代码
      dbutils封装文件传送门 DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。...
      99+
      2024-04-02
    • SpringBoot+Spring Data JPA整合H2数据库的示例代码
      目录前言Maven依赖Conroller实体类Repository数据库脚本文件配置文件启动项目访问H2数据库查看全部数据H2数据库文件运行方式前言 H2数据库是一个开源的关系型数据...
      99+
      2024-04-02
    • Spring Boot实战之数据库操作的示例代码
      上篇文章中已经通过一个简单的HelloWorld程序讲解了Spring boot的基本原理和使用。本文主要讲解如何通过spring boot来访问数据库,本文会演示三种方式来访问数据库,第一种是JdbcTemplate,第二种是JPA,第三...
      99+
      2023-05-30
    • C#获取数据库中所有表名、列名的示例代码
      C# 获取数据库中所有表名、列名,实现代码如下所示: List<Dictionary<string, string>> GetColsNam...
      99+
      2024-04-02
    • 大数据开发中文年龄函数的示例代码
      这篇文章主要介绍大数据开发中文年龄函数的示例代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!create or replace function CHINESEAG...
      99+
      2023-06-05
    • Java中使用JDBC连接数据库的示例代码与注意事项
      本篇内容主要讲解“Java中使用JDBC连接数据库的示例代码与注意事项”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中使用JDBC连接数据库的示例代码与注意事项”吧!实例代码如下:&nb...
      99+
      2023-06-17
    • Spring Data JPA实现持久化存储数据到数据库的示例代码
      目录1.SpringBoot项目整合JPA1.1 pom.xml依赖1.2 application配置文件2.创建实体类3.启动项目,测试验证1.SpringBoot项目整合JPA ...
      99+
      2024-04-02
    • pandas实现数据合并的示例代码
      目录一、 concat--数据合并1.1 概述1.2 指定合并的轴方向--axis1.3 指定合并轴另外一个轴标签是否合并--join1.4 指定合并轴原标签是否需要变化--igno...
      99+
      2024-04-02
    • vue 请求后端数据的示例代码
      在vue中,我们如何通过请求接口来访问后端的数据呢?在这里简单总结了一个小示例: 主要问题:如果不封装的话,在每次请求的时候都要书写一遍下面的代码,造成代码冗余。 1、在src目录...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作