asp.net – 汇总历史正常运行时间数据
发布时间:2020-12-16 09:38:14 所属栏目:asp.Net 来源:网络整理
导读:我正在完成我的第一个asp.net网络应用程序,我遇到了一个棘手的问题.该Web应用程序旨在测试全国各地的网络设备并记录响应时间. Windows服务会定期检查这些设备,通常每1-10分钟检查一次.然后将每个检查的结果记录在具有此设计的SQL Server表中. (设备关闭时Res
我正在完成我的第一个asp.net网络应用程序,我遇到了一个棘手的问题.该Web应用程序旨在测试全国各地的网络设备并记录响应时间.
Windows服务会定期检查这些设备,通常每1-10分钟检查一次.然后将每个检查的结果记录在具有此设计的SQL Server表中. (设备关闭时ResponseTime为NULL.)
CREATE TABLE [dbo].[DeviceStatuses] ( [DeviceStatusID] INT IDENTITY (1,1) NOT NULL,[DeviceID] INT NOT NULL,[StatusTime] DATETIME NULL,[ResponseTime] INT NULL,CONSTRAINT [PK_DeviceStatuses] PRIMARY KEY CLUSTERED ([DeviceStatusID] ASC),CONSTRAINT [FK_DeviceStatuses_Devices] FOREIGN KEY ([DeviceID]) REFERENCES [dbo].[Devices] ([DeviceID]) ); 该服务已运行了几个月,设备数量最少,表格大约有500,000行.客户希望能够访问每个设备的3个月滚动停机摘要.有点像: 停机时间: 根据我的理解,我需要为每个NULL ResponseTimes块的开始和结束获取StatusTime,当然,对于特定的DeviceID.我已经在Google和StackOverflow上进行了多次搜索,但没有发现任何类似于我正在尝试做的事情. (也许我没有使用正确的搜索条件.)我的兄弟,一位经验丰富的程序员,建议我可以在SQL Server中使用CURSOR,尽管他承认CURSOR性能很差并且需要预定的任务.有什么建议? 解决方法declare @DeviceStatuses table( [DeviceStatusID] INT IDENTITY (1,[ResponseTime] INT NULL) Insert into @DeviceStatuses([DeviceID],[StatusTime],[ResponseTime]) Values (1,'20120101 10:10',2),(1,'20120101 10:12',NULL),'20120101 10:14','20120102 10:10','20120102 10:12','20120102 10:14',(2,'20120101 10:19','20120101 10:20','20120101 10:21','20120101 10:22',2); Select [DeviceID],MIN([StatusTime]) as StartDown,MAX([StatusTime]) as EndDown from ( Select [DeviceID],(Select MAX([StatusTime]) from @DeviceStatuses s2 where s2.DeviceID=s1.DeviceID and s2.StatusTime<s1.StatusTime and s2.ResponseTime is not null) as gr from @DeviceStatuses s1 where s1.ResponseTime is null )a Group by [DeviceID],gr order by [DeviceID],gr (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .Net Core微服务入门全纪录(八)——Docker Compose与容器
- 简单的ASP.NET应用程序示例(没有Web窗体和MVC)
- C# 之 DataReader 和 DataSet 的区别
- asp.net-mvc – 带有ASP.NET MVC的通配符MapPageRoute支持组
- ASP.NET SiteMap – 有没有办法以编程方式查看它是否包含一
- asp.netcore di 实现批量接口注入
- asp.net-mvc – ASP.NET MVC依赖注入Unity与WCF服务 – 工作
- 如何重定向到returnUrl在Asp.Net MVC5中工作
- 在asp.net vnext上使用bearer token身份验证刷新令牌
- 如何将当前的asp.net usercontrols类名转换为c#上的字符串?