狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

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

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

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


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

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



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



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