我正在使用一个软件(HPE ALM,但这里并不重要)显示其每日峰值的许可证使用情况。许可证令牌用于每个会话,并在会话结束时释放。并且所有会话都存储在会话历史记录表中(在MS SQL Server上)。
当我运行这种查询时:
SELECT TOP 1 count(*) as CountSimultaneous
FROM td.SESSIONS_HISTORY T1, td.SESSIONS_HISTORY T2
WHERE td.SESSIONS_HISTORY.CLIENT_TYPE = 'Application Lifecycle Management Client UI'
and T1.START_TIME between T2.START_TIME and T2.END_TIME
/* Add here the start/end dates */
GROUP BY T1.SESSION_ID
ORDER BY CountSimultaneous DESC;
这些数字与“许可使用情况”选项卡略有不同(我的峰值高达10到20)。
据知情人士透露,差异是由于涉及一些轮询间隔这一事实。
如何处理轮询间隔方法?是否从会话历史表中随机抽取了一些样本。例如(START_TIME - x - 5分钟)和(END_TIME - x)之间的前10个会话;当x在考虑的时间段内变化(昨天,上周,上个月等)。
我对获得与供应商相同的结果并不感兴趣。目标是理解这个似乎在其他工具(Analytics,LoadRunner等)中使用的概念。
非常感谢使用伪代码/ SQL示例的答案(即使它是从其他工具中获取的)。
答案 0 :(得分:0)
绘制图片太多了,但我们假设您有(time, session count)
个数据,如下所示:
(0, 10)
(1, 10)
(2, 10)
(3, 50)
(4, 10)
(5, 10)
如果您的供应商每秒测量一次,他们会在时间= 3时看到50的峰值。
如果您每五秒钟进行一次采样或查询,您会看到峰值为10.您将错过50点的峰值。