【发布时间】:2015-09-30 05:53:04
【问题描述】:
下表,设备运行状态的前几行,每次轮询:
samplevalue = 2 运行状态下降,samplevalue = 1 运行状态上升
source target sampletime samplevalue
------------------------------------------------------------------------------------------------
128.42.196.11 Se2/0/2(Serial2/0/2) 9/30/15 11:10 2
128.42.196.11 Fa3/0/0(FastEthernet3/0/0) 9/30/15 11:10 1
128.42.196.11 Gi1/0/0.10(GigabitEthernet1/0/0.10) 9/30/15 11:10 1
128.42.196.11 Se2/0/2.305(Serial2/0/2.305) 9/30/15 11:10 2
128.42.196.11 Se2/0/2.309(Serial2/0/2.309) 9/30/15 11:10 2
128.42.196.11 Gi1/0/0.20(GigabitEthernet1/0/0.20) 9/30/15 11:10 1
128.42.196.11 Se2/0/2.300(Serial2/0/2.300) 9/30/15 11:10 2
128.42.196.11 Gi0/0/0(GigabitEthernet0/0/0) 9/30/15 11:10 1
128.42.196.11 Se2/0/2.306(Serial2/0/2.306) 9/30/15 11:10 2
128.42.196.11 PO2/1/0(POS2/1/0--SONET/SDH Medium/Section/Line) 9/30/15 11:09 2
128.42.196.11 Tu10(Tunnel10-mpls layer) 9/30/15 11:09 2
128.42.196.11 Tu4(Tunnel4) 9/30/15 11:09 2
128.42.196.11 Gi1/0/0.40(GigabitEthernet1/0/0.40) 9/30/15 11:09 1
128.42.196.11 Se2/0/1(Serial2/0/1) 9/30/15 11:09 1
128.42.196.11 Gi1/0/0.20(GigabitEthernet1/0/0.20) 9/30/15 11:09 1
128.42.196.11 Tu10(Tunnel10) 9/30/15 11:08 2
128.42.196.11 Se2/0/0(Serial2/0/0) 9/30/15 11:08 1
128.42.196.11 Se2/0/2.309(Serial2/0/2.309) 9/30/15 11:08 2
128.42.196.11 Se2/0/2.306(Serial2/0/2.306) 9/30/15 11:08 2
从上表中,我们必须计算设备的特定接口与sampletime = 1 和sampletime = 2 的时间,这也只是接口的最新状态。
我可以处理以下查询:
with temp as (
select
p.source,
p.target,
p.samplevalue,
p.sampletime,
lag(p.samplevalue,1) over (order by p.source, p.target, p.sampletime desc) as newvalue,
lag(p.sampletime,1) over (order by p.source, p.target, p.sampletime desc) as changedat
from INTERFACE_OPERSTATUS p
)
select *
from(
select
ROW_NUMBER() over (partition by source, target order by source, target, changedat desc) as therow,
source,
target,
samplevalue as oldvalue,
newvalue,
changedat,
DATEDIFF(MINUTE,changedat,GETDATE()) as time
FROM temp
where
newvalue <> samplevalue
and newvalue = 2
) a
where therow >= 1
上述查询的问题是:
- 即使链接已打开,它仍显示处于中断状态
- 无法考虑最新的链接条件
- 在链路断开和链路接通之间需要中断时间(无法考虑链路接通)
【问题讨论】:
-
样本的预期输出是什么?
-
什么是接口?例如是
Se2、Se2/0/2还是Se2/0/2(Serial2/0/2)? -
预期输出:已启动的链接 - 总运行时间和已关闭的链接 - 总停机时间。 @JulienVavasseur
-
是的,它们是接口@DmitryPolyakov
-
@harikumarmunjala 哪一个? :) 如果
target中的整个字符串代表一个接口,那么您的示例中没有一个接口会更改状态。
标签: sql-server networking network-programming