0
我有一個SQL查詢數據集,包含開始和結束時間戳以及運行的特定查詢。我想使用這些信息來顯示在任何給定時間執行的併發查詢的數量。從瞬時數據集中繪製瞬時時間總和
即與像這樣的數據集來說:
StartTime,StopTime,SQLStatement
10/11/2012 08:17:18.060,10/11/2012 08:17:19.221,DELETE FROM foo WHERE bar = ?;
10/11/2012 08:17:19.036,10/11/2012 08:17:19.911,SELECT * FROM users WHERE user_id = ?;
10/11/2012 08:17:19.661,10/11/2012 08:17:19.810,SELECT * FROM users WHERE user_id = ?;
...
我想其中,水平軸表示時間,垂直軸代表運行的查詢的瞬時數目,以產生曲線圖。在上例中,有一個查詢在08:17:19.000運行,兩個查詢在08:17.19.100運行。
我最初的方法是迭代大約100萬個離散時間值,對具有跨越每個值的StartTime和StopTime的行進行計數。這是緩慢的,並不會特別好 - 並且看起來好像R會有更好的方式來做到這一點!
該數據的15分鐘樣本包含約170,000行,精確到毫秒 - 可合理縮放到一天數據量的方法將值得讚賞,但任何解決方案都是值得歡迎的!
所以,你基本上希望在十分之一秒的時間點運行查詢的流行? –
第一行將有助於計數12個這樣的間隔?第二行爲9個區間,最後一行爲2個區間?在談論擴展性好之前,你需要爲小案例定義正確的答案。 –
對不起,我正在尋找毫秒間隔(雖然間隔,我敢肯定,對於一般的解決方案來說是不重要的)。 在上面的次要子集中,從08:17:18.060到08:17:19.035的所有點將是1,08:17:19.036到08:17:19.221將是2,08:17:19.222到08:17 :19.660將是1,08:17:19.661到08:17:19.810將是2,08:17:19.811到08:17:19.911將是1。 – Motoma