欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

使用SQL Server2005觸發器做站點IP、PV預統計

admin
2011年3月13日 0:31 本文熱度 3056


上圖是一個WEB站點訪問日志表,記錄了訪問對象的相關信息。現在要求增加一個站點每天的IP、PV統計功能,數據量小時直接對Web_AccessLogTB表中的數據進行統計即可,若數據量比較大,這樣做就不合適了。解決方法是進行預統計:在用戶查看統計之前就已經預先統計好了,用戶查看時只是顯示下結果而已。

預統計的方式又可分成兩種:同步或異步。同步可以寫個存儲過程來完成,添加訪問日志的同時進行預統計;異步是將添加訪問日志和預統計兩個過程分開,后者可由其他程序來完成,例如Windows服務、觸發器等等。顯然異步比較合適,下邊我們就用觸發器來完成。



上圖為預統計表,記錄每天的IP和PV量。現在要解決的一個問題是IP的統計,到目前為止,每個IP都必須先掃描一次Web_AccessLogTB表,才知道它是不是首次訪問,是則IPCount字段加1,這樣效率太差了。我們再建一個輔助表(Web_IPLogTB)來解決這個問題:



Web_IPLogTB表記錄每天的訪問IP,一個IP只記錄一次,每天清空一次,這樣掃描就快多了。下邊是我們的觸發器:

 程序代碼
Create TRIGGER [Web_UpdateIPAndPVTG]
   ON  [dbo].[Web_AccessLogTB]
   AFTER Insert
AS
BEGIN
    IF @@rowcount>0
    BEGIN
        DECLARE @clientip nvarchar(50), @recdatetime datetime
        DECLARE @ipcount int
        Select @clientip=ClientIP,@recdatetime=RecDateTime FROM inserted
        SET @recdatetime=DATEADD(day,DATEDIFF(day,0,@recdatetime),0)
        
        IF NOT EXISTS(Select TOP 1 * FROM Web_AccessLog2TB Where RecdateTime=@recdatetime)
        BEGIN--新增
            Insert INTO Web_AccessLog2TB(RecDateTime,IPCount,PVCount) VALUES(@recdatetime,1,1)
            TRUNCATE TABLE dbo.Web_IPLogTB --每天清空
            Insert INTO dbo.Web_IPLogTB(RecDateTime,ClientIP) VALUES(@recdatetime,@clientip)
        END
        ELSE
        BEGIN
            Select @ipcount=count(1) FROM Web_IPLogTB Where RecdateTime>=@recdatetime AND ClientIP=@clientip
            IF @ipcount=0
            BEGIN--更新IP和PV
                Update Web_AccessLog2TB SET IPCount=IPCount+1,PVCount=PVCount+1 Where RecdateTime=@recdatetime
                Insert INTO Web_IPLogTB(RecDateTime,ClientIP) VALUES(@recdatetime,@clientip)                
            END
            ELSE--只更新PV
                Update Web_AccessLog2TB SET PVCount=PVCount+1 Where RecdateTime=@recdatetime
        END            
    END
END

該文章在 2011/3/13 0:31:21 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved