我在SqlServer中有一個日誌文件,用於存儲應用程序啓動的時間,應用程序準備就緒(即完成加載)的時間以及它退出的時間。這些都是作爲單獨的條目出現的。格式(和樣本數據)如下:Set-theory通過SQL確定「組」記錄之間的時間差的方式
Date/Time User Type Application Message
2009-11-03 12:26:12.403 uname1 Info app1 Started
2009-11-03 12:26:22.403 uname1 Info app1 Loaded
2009-11-03 12:27:15.403 uname2 Info app1 Started
2009-11-03 12:27:16.401 uname1 Info app1 Exited
2009-11-03 12:27:18.403 uname2 Info app1 Loaded
2009-11-03 12:29:12.403 uname2 Info app1 Exited
我想找到答案,每個應用程序和每個用戶,花費的時間爲應用量去就緒狀態和量應用程序運行的時間。如果每個日期/時間都在同一條記錄中,這將是小菜一碟,並且將每條記錄作爲光標加載並篩選數據也很容易(雖然很乏味),但我認爲必須存在某種方式以集合論的方式「正確地」做到這一點。
因此,要重申的是,下面的輸出(來自從上述樣本數據)將被預期(數量單位爲秒,四捨五入):
User Application Ready Uptime
uname1 app1 10 64
uname2 app1 3 117
任何建議?
編輯:好消息是應用程序只能啓動一次。但是,日誌確實而不是考慮到應用程序崩潰(儘管我想我可以查找「exited」和「crash」作爲最終條件)。
雖然這是可怕的,但它確實有效。它只需要2秒的服務器時間來抓住它。謝謝。 –
非常感謝你。我試圖設計出許多方法來解決這個問題,並且正要拋出我的手並編寫一個程序來做到這一點。這更容易和更快。 –
wellll ...非常感謝這個可怕的評論(只是在開玩笑!)你非常歡迎! –