zoukankan      html  css  js  c++  java
  • IIS日志分析

    IIS日志分析工具:LogParse、sqlserver 2008

    1.从将IIS日志转换到数据库表中

    logparser "SELECT TO_LOCALTIME(TO_TIMESTAMP(ADD(TO_STRING(date, 'yyyy-MM-dd '), TO_STRING(time, 'hh:mm:ss')),'yyyy-MM-dd hh:mm:ss')) AS RequestTime, * FROM 'D:phone.log' to phonelog" -i:IISW3C -o:SQL -oConnString:"Driver={SQL Server};server=.;database=iis;uid=sa;pwd=pwd;Integrated Security=SSPI" -createtable:ON

    2.使用sql分析语句分析结果

    --去除url参数并保存到指定表中
    alter table phonelog add url nvarchar(200)
    go
    update phonelog set url=case when Charindex('/',csUriStem,CHARINDEX('/',csUriStem,2)+1)>0 then SUBSTRING(csUriStem,0,Charindex('/',csUriStem,CHARINDEX('/',csUriStem,2)+1)) else csUriStem end
    
    --分析时间占用
    select scStatus, count(*) AS count, sum(timetaken * 1.0) /1000.0 AS sum_timetaken_second from phonelog with(nolock) group by scStatus order by 3 desc
    
    --统计网络级别错误
    declare @recCount bigint;
    select @recCount = count(*) from phonelog with(nolock)
    select case when scWin32Status=64 then '客户端连接已关闭' when scWin32Status=121 then '传输超时' when scWin32Status=1236 then '本地网络中断' else Convert(varchar,scWin32Status) end as scWin32Status , count(*) AS count, (count(*) * 100.0 / @recCount) AS [percent]
    from phonelog with(nolock)
    where scWin32Status > 0
    group by scWin32Status
    order by 2 desc
    
    --查询每个用户的最大最小请求次数
    select cIp,COUNT(*) as count from phonelog group by cIp order by 2 desc
    
    --查询日志最大最小时间
    select MAX(l.date) as maxdate,MIN(l.date) as mindate from phonelog l
    
    --查询耗时最大的请求
    select top 1000 l.csUriStem,(timetaken * 1.0) /1000.0 as timetaken_second from phonelog l order by l.timeTaken desc
    
    --查询标准请求中请求最多的url
    select top 1000 l.csUriStem,sum(timetaken * 1.0) /1000.0 as sum_timetaken_second,COUNT(*) as count from phonelog l group by l.csUriStem order by 3 desc
    
    --查询发杂请求中请求最多的接口
    select ll.url,ll.count,ll.sum_timetaken_second,ll.sum_timetaken_second/ll.count as avg_timetaken_second from (
    select l.url,sum(timetaken * 1.0) /1000.0 as sum_timetaken_second,COUNT(*) as count from phonelog l group by l.url)ll order by 2 desc
    
    --查询平均耗时最大的请求接口
    select ll.url,ll.count,ll.sum_timetaken_second,ll.sum_timetaken_second/ll.count as avg_timetaken_second from (
    select l.url,sum(timetaken * 1.0) /1000.0 as sum_timetaken_second,COUNT(*) as count from phonelog l group by l.url)ll order by 4 desc
    
    
    select * from phonelog l where l.csuristem like '%GetClassDynamicPager%'

    3.其它数据库操作和分析可以随自己的意愿去写sql语句。

    4.根据分析结果和业务,查找性能瓶颈,有针对的对当前的程序进行优化修改。

  • 相关阅读:
    Merge Sort
    important在css中的作用
    Quick Sort
    Shell's Sort
    2019年7月22日~28日 第四周学习记录
    eclipse安装心得和环境变量配置的体会
    2019年7月15日~7月21日 第三周学习记录
    2019年7月1日~7月7日 第一周学习记录
    程序为本,代码方式仅是语言 ———《大道至简软件工程实践者的思想》
    2019年7月8日~7月14日 第二周学习记录
  • 原文地址:https://www.cnblogs.com/maomao999/p/5744098.html
Copyright © 2011-2022 走看看