LogParser 2.2 與討論 Url Rewriting 的副作用

LogParser 2.2 與討論 Url Rewriting 的副作用

如果不知道什麼是 LogParser 的人,請先參考以下文件:

  1. How To Use IIS Log Files In Performance Testing
    (如何設定 IIS 啟用 Log 記錄功能)
     
  2. W3C Extended Log File Format (IIS 6.0) 
    (介紹 IIS 6.0 W3C Log File 中各欄位意義)
     
  3. Log Parser 2.2 and ASP.NET 
    ( 介紹 LogParser 的應用:
      Scenario 3: Finding the 20 slowest pages in your Web site
      Scenario 4: Finding the 20 most commonly used .aspx pages in your Web site )
     
  4. Technet 巡迴講座-使用微軟工具來進行 IIS 6.0 除錯與資料探勘 
    (介紹如何使用 Log Parser 和 Debug Diagnostics 來找出 IIS 6.0 應用程式的問題與效能瓶頸,並介紹常見的使用情境。) 
      
  5. HOWTO use microsoft's logparser to analyze IIS logs with example sql/code
    (一些 sql 指令蒐集)
      
  6. 用 LogParser 將 IIS Log 匯入SQL Server 2005
    (將 IIS Log 匯入 SQL Server 2005 中)
     
  7. TIPS-Remove Invalid Characters From XML Document 

簡易的 Url Rewriting 隱藏 Querystring】、【簡易的 Url Rewriting 隱藏 Querystring (二) IIS 注意事項】、【簡易的 Url Rewriting 隱藏 Querystring (三) 隱藏副檔名】系列文章後,如果有在使用 LogParser 2.2 來分析 IIS Log 的話,UrlRewriting 可能會對你分析造成一些副作用,是你必須知道的。

做了一個小小實驗,利用 Logparser 2.2 分析網站網頁的點擊次數,指令:LOGPARSER -i:IISW3C file:C:\logParser.sql

logParser.sql 內容如下:

SELECT [cs-uri-stem] AS [網頁],
       COUNT(*) AS [點擊次數]
FROM   C:\WINDOWS\system32\Logfiles\W3SVC1\ex08041918.log
WHERE  TO_LOWERCASE (EXTRACT_EXTENSION(cs-uri-stem))
NOT IN ('ico';'axd';'/c$')
GROUP  BY [cs-uri-stem]    
ORDER  BY [點擊次數] DESC

執行結果:

LogParser_0000

仔細觀察執行結果,就會發現因為使用 UrlRewriting 的功能,原本都屬於 /TestSite35/Books.aspx 的資訊,多出紅色框框那些零散的資訊。(1) 就是說一筆網頁執行結果,會在 IIS Log 出現兩筆資料:/TestSite35/Books.aspx?BookId=xxx 與 /TestSite35/Books/xxx。(2) 多了 /TestSite35/Books/xxx 這些資訊,分析者可能腦筋必須繞一圈避開這些資料,才能 Select 出真正符合網站的分析結果。