sql server 大数据, 统计分组查询,数据量比较大计算十分钟内每秒钟执行次数

-- 数据量比较大的情况,统计十分钟内每秒钟执行次数

declare @begintime varchar(100);    -- 开始时间
    declare @endtime varchar(100);        -- 结束时间
    declare @num int;        -- 结束时间
    set @begintime = ‘2019-08-10 09:10:00‘    -- 开始时间
    set @endtime = ‘2019-08-10 09:20:00‘    -- 结束时间

    set @num = (select count(1) from PM_SYS_LOGINLOG where CONVERT(varchar(100),loginTime, 20) >= @begintime and CONVERT(varchar(100),loginTime, 20) <= @endtime)

    print(@num)
    select @num as 总条数,
        AVG(调用总数) as 十分钟内每秒平均执行次数
    from
        (select s.请求时间,
                (调用一次的总数+
                    (
                        select 调用多次 from
                        (
                            select 请求时间, COUNT(1) 调用多次 from
                            (
                                select CONVERT(varchar(100),loginTime, 20) as 请求时间, count(1) as 调用次数 from PM_SYS_LOGINLOG
                                    where CONVERT(varchar(100),loginTime, 20) >= @begintime and  CONVERT(varchar(100),loginTime, 20) <= @endtime
                                    group by loginTime having count(1) > 1) o where 请求时间 = s.请求时间 group by o.请求时间
                            ) o
                        )
                    ) as 调用总数
            from
            (
              select t.请求时间, count(1) as 调用一次的总数
                from
                (
                    select CONVERT(varchar(100),loginTime, 20) as 请求时间, count(1) as 调用次数
                        from PM_SYS_LOGINLOG
                            where CONVERT(varchar(100),loginTime, 20) >= @begintime and CONVERT(varchar(100),loginTime, 20) <= @endtime
                        group by loginTime having count(1) = 1
                ) t group by 请求时间
            ) s
        ) m

查询前一秒执行次数

declare @str varchar(100);
set @str = convert(varchar,dateadd(ss,-1,getdate()),20)
--select @str
--print(@str)

select @str as 执行时间, count(1) + (
    select count(1) from (select top 20 CONVERT(varchar(100),loginTime, 20) as 请求时间,
        count(1) as 调用次数 from PM_SYS_LOGINLOG
        where CONVERT(varchar(100),loginTime, 20) = @str
        group by loginTime
        having count(1) = 2
        order by loginTime desc) as o
    ) as 执行次数
from (
    select top 20 CONVERT(varchar(100),loginTime, 20) as 请求时间,
    count(1) as 调用次数 from PM_SYS_LOGINLOG
    where CONVERT(varchar(100),loginTime, 20) = @str
    group by loginTime
    --having count(1) = 1
    order by loginTime desc
) t 

聚合函数分组查询最大值

select max(t.总数) as 最大值 from (select Token as 令牌, count(1) as 总数 from PM_SYS_LOGINLOG group by token having count(1) > max(1)) as t
select top 1 count(1) as 总数 from PM_SYS_LOGINLOG group by token having count(1) > 1 order by 总数 desc

原文地址:https://www.cnblogs.com/FGang/p/11330736.html

时间: 2024-10-24 03:36:59

sql server 大数据, 统计分组查询,数据量比较大计算十分钟内每秒钟执行次数的相关文章

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据 XQuery 是一个浏览/返回XML实例的标准语言. 它比老的只能简单处理节点的XPath表达式更丰富. 你可以同XPath一样使用.或是遍历所有节点,塑造XML实例的返回等. 作为一个查询语言, 你需要一个查询处理引擎. SQL Server 数据库通过XML数据类型方法的T-SQL 语句来处理XQuery. SQL Server 并不支持所有的X

快速查看SQL Server 中各表的数据量以及占用空间大小

快速查看SQL Server 中各表的数据量以及占用空间大小. CREATE TABLE #T (NAME nvarchar(100),ROWS char(20),reserved varchar(18) ,Data varchar(18) ,index_size varchar(18) ,Unused varchar(18) ) GO INSERT #T EXEC SP_MSFOREACHTABLE 'EXEC sp_spaceused "?"' SELECT * FROM #T O

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集 XML 介绍 <CustomersOrders> <Customer custid="1" companyname="Customer NRZBB"> <Order orderid="10692" orderdate="2007-10-03T00:00:00&

也谈SQL Server 2008 处理隐式数据类型转换在运行计划中的增强

在 SQL Server 查询中,不经意思的隐匿数据类型转换可能导致极大的查询性能问题.比方一个看起来没有不论什么问题简单的条件:WHERE c = N'x' .假设 c 的数据类型是 varchar.而且表中包括大量的数据,这个查询可能导致极大的性能开销.由于这个操作会导致列 c 的数据类型转换为 nvarchar与常量值匹配,在 SQL Server 2008 及之后的版本号中,这样的操作做了增强,一定程度上减少了性能开销,參考SQL Server 2008 处理隐式数据类型转换在运行计划中

也谈SQL Server 2008 处理隐式数据类型转换在执行计划中的增强

在 SQL Server 查询中,不经意思的隐匿数据类型转换可能导致极大的查询性能问题,比如一个看起来没有任何问题简单的条件:WHERE c = N'x' ,如果 c 的数据类型是 varchar,并且表中包含大量的数据,这个查询可能导致极大的性能开销,因为这个操作会导致列 c 的数据类型转换为 nvarchar与常量值匹配,在 SQL Server 2008 及之后的版本中,这种操作做了增强,一定程度上降低了性能开销,参考SQL Server 2008 处理隐式数据类型转换在执行计划中的增强

[译]SQL Passion Week 2: SQL Server的基本存储单位--数据页

Week 2: SQL Server的基本存储单位--数据页 上周我们我们讲述了SQL Server如何执行一个查询, 顺带提到了数据页的概念, 这次我们从性能调优的角度上更详细深入的讲解一些数据页. 数据页是SQL Server最基础的存储单位, 所有的东西都和数据页有关. 当我们想提高查询的性能时, 必须想方设法降低查询的页读取数量. 以后讲到索引时, 还会涉及到更多索引的结构. 如果你不知道什么是页, 你就无法寻找SQL Server的故障原因. 数据页的结构 SQL Server中的页有

SQL Server迁移本机表数据信息

SQL Server将本机表数据信息通过媒介迁移到另外机器上 由于sql 只支持库的分离和附加  引用:https://blog.csdn.net/baicp3/article/details/46622293,并且通过导入导出的形式,insert的语法,少量数据还好,SQL server100万以上的数据就会出现及其慢的情况 所以本人采用转成包括表结构与数据的sql文件,在另一台机器上通过媒介进行数据覆盖传输:暂时对大数据量的迁移没啥好办法(如果有,拜托留下链接). 分享支援  造福人间 原文

SQL server中使用临时表存储数据

将查询出来的数据直接用“INTO #临时表名称”的方式完成临时表的创建及数据的插入 SELECT * INTO #temp_NowStatusFROM Test SELECT * FROM #temp_NowStatus --查询临时表中的数据truncate table #temp_NowStatus --清除临时表中的数据--删除临时表if object_id('tempdb..#temp_NowStatus') is not null BEGIN drop table #temp_NowS

SQL Server 定时访问url激活数据同步

创建作业,执行以下命令 exec master..XP_cmdshell 'http://srm.rapoo.cn?op=sapintferace&i=1&t=1' 激活执行同步网步 以下内容来自网络,介绍如何启用  xp_cmdshell 扩展存储过程将命令 一.简介 xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出. 三.SQL Server 2005中的xp_cmdshell 由于存在安全隐患,所以在SQL Server