LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

使用SQL Server2005觸發(fā)器做站點IP、PV預(yù)統(tǒng)計

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


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

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



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



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

 程序代碼
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 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲国产精品字幕 | 亚洲一区二区乱码 | 亚洲精品人成网线在线播放va | 一本丁香综合久久久久不卡网站 | 亚洲欧美日韩另类 | 又大又粗又爽的少妇免费视频 |