hege 发表于 2015-11-14 16:15:48

使用SQL进行IIS日志中的访问记录统计

  背景:需要给客户查询哪些IP访问了软件。并查出IP的地址。只能通过查IIS的日志数据了。
  以下方法需要知识:SQL
  
            IIS日志中记录了,网站页面的所有访问记录,包括时间、获取方法、文件的URL、访问者IP,以及协议状态(200是正常)。(更多信息可查看百度百科 IIS日志)
           具体方法为:将IIS日志导入数据库中,使用SQL查询语句分析日志中统计数据。方法很简单,仅供参考。
一、      获取表结构
将少量数据复制到excel表中,删除无效数据,然后使用SQL导入向导,导入少量数据,然后将数据删除。注意导入的excel的第一行数据会被判断为列字段。
二、      使用bulk insert语句导入完整日志数据
打开日志文件ex120629.log(举例),将无用的说明数据和第一行数据删除,执行下面的语句

BULKINSERT test.iis29
   FROM'd:\ ex120629.log'
   WITH
      (
         FIELDTERMINATOR='',
         ROWTERMINATOR=' \n'
      )
  

注:导入过程中,有可能会会提示数据超出格式范围,手动修改相关的字段类型为nvchar(MAX),即可。BULK Insert 详细请参考微软知识库
三、      查询访问记录的统计结果
1.         查询每个IP的访问次数,并按照访问次数排序,执行下面的SQL语句:

select ,COUNT()bfromiis29
groupby
orderby b desc
  
  


2.         查询每个IP访问单个页面的数据统计,按照访问次数排序,执行下面的SQL语句:

select ,,count()bfromiis29
groupby ,
  orderby b desc
  
  同时也编写了一个工具,可以到下载中心下载《IIS日志查看器》。
  
         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: 使用SQL进行IIS日志中的访问记录统计