응용 프로그램이 시작된 시간, 응용 프로그램 준비가 완료된 시간 (즉,로드가 완료된 시간)을 저장하는 로그 파일이 SqlServer에 있습니다. 그것이 종료 된 시간. 이들 각각은 별도의 항목으로 발생합니다. 다음과 같이 형식 (샘플 데이터)입니다 :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
어떤 제안?
편집 : 좋은 소식은 응용 프로그램을 한 번만 시작할 수 있다는 것입니다. 하지만 로그는 이 아니며은 응용 프로그램이 손상된 경우를 고려합니다 (최종 조건으로 "종료"및 "손상됨"을 찾을 수는 있겠지만).
이것은 무시 무시한 것처럼 실제로 작동합니다. 그리고 서버를 잡는 데 2 초 밖에 걸리지 않았습니다. 감사. –
고맙습니다. 이 문제를 해결하기 위해 여러 가지 방법을 고안하려고 노력 중이었고 막상 손을 뻗어 프로그램을 작성하려고했습니다. 이것은 훨씬 쉽고 빠릅니다. –
우물 ... 끔찍한 코멘트 (농담 만하는 것)에 너무 감사드립니다! 당신은 매우 환영합니다! –