我想通过SQL处理服务器日志,来统计网站访客的访问次数和所有访问的总停留时间(虽然很多网站统计工具可以实现,但是我很想知道通过SQL和服务器日志该如何解决。)Linux服务器日志格式如下:66.249.65.107 - - [08/Oct/2007:04:54:20 -0400] "GET /support.html HTTP/1.1" 200 11179 "-" "Mozilla/5.0 (compatible; xxxxxxxx)"我的思路是,通过IP来标识不同访客,同一访客(也就是同一IP)如果30分钟内没有访问行为,就算做访客已经离开,于是便算作一次访问。比如一个IP在10点进入网站A页面,开始访问网站,10点10分进入B页面,10点20分进入C页面,然后就再无访问行为。于是上述行为算作一次访问,总停留时间是10点20分 - 10点 = 20分钟;如果一个IP在10点进入网站A页面,开始访问网站,10点10分进入B页面,10点50分进入C页面,然后再无访问行为。那么上述行为算作两次访问,第一次访问停留时间是10点10分 - 10点 = 10分钟,第二次访问时间是 0。总停留时间是10分钟+0=10分钟
如果这个用SQL语句来处理的话,该怎么写,才能直接得出访客的访问次数和所有访问的总停留时间呢?
感谢~~~

解决方案 »

  1.   

    参考:
    http://topic.csdn.net/u/20110616/21/79d5ee2b-5d89-415b-988a-0947558f057f.html
      

  2.   

    如果你想通过SQL处理服务器日志,建议使用Log Parser Lizard 1.1,而不是MSSQL,谢谢!
      

  3.   

    仅举例:
    --查询某天
    Select cs-uri-stem as [RequestURI],count(cs-uri-stem) as VisitCounts,c-ip as [ClientIP]
    FROM D:Log\log_SQL\LogFiles\ex090829.log  --日志文件物理路径,日志已导出--查询所有日期
    Select cs-uri-stem as [RequestURI],count(cs-uri-stem) as VisitCounts,c-ip as [ClientIP]
    FROM D:Log\log_SQL\LogFiles\ex*.log  --日志文件物理路径,日志已导出