home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
moodle.waes.ac.uk
/
moodle.waes.ac.uk.zip
/
moodle.waes.ac.uk
/
TMG
/
SP1-TMG-KB981324-AMD64-ENU.msp
/
PCW_CAB_SHFx2
/
F2143_msfpcui.dll
/
BINARY
/
25206
< prev
next >
Wrap
Text File
|
2010-06-15
|
3KB
|
92 lines
CREATE PROCEDURE [dbo].[ISA_spSoftBlockSummary]
AS
BEGIN
SET NOCOUNT ON;
IF OBJECT_ID ('tblSoftBlockSummary', 'u') IS NOT NULL
DROP TABLE [tblSoftBlockSummary]
DECLARE @FromDate datetime
SET @FromDate = (SELECT [FromDate] FROM [tblSummaryParams])
CREATE TABLE #RowSummaryData
(
[Site] varchar(255),
[URLCategoryId] int,
[UserName] nvarchar(514)
)
IF OBJECT_ID ('WEB_LOGS', 'view') IS NOT NULL
BEGIN
INSERT INTO #RowSummaryData
SELECT
[DestHost] AS Site,
[UrlCategory] AS UrlCategoryId,
CASE
--TODO: should factor the following code out to a function (it is used in yet another place)
WHEN ([ClientIP] = '00000000-0000-0000-0000-FFFF7F000001') THEN N'-'
WHEN [ClientUserName] = N'anonymous' THEN '@\@' + CAST([ClientIP] AS nvarchar(500))
WHEN [ClientUserName] = N'-' AND [ClientIP] = '00000000-0000-0000-0000-000000000000' THEN
CASE
WHEN CHARINDEX('Check Upstream',[ClientAgent])<>0 THEN N'{[23140]}'
WHEN CHARINDEX('Member Ping',[ClientAgent])<>0 THEN N'{[23141]}'
WHEN CHARINDEX('Fetch API',[ClientAgent])<>0 THEN N'{[23142]}'
WHEN CHARINDEX('Delete API',[ClientAgent])<>0 THEN N'{[23143]}'
ELSE N'-'
END
ELSE [ClientUserName]
END AS UserName
FROM [WEB_LOGS]
WHERE [SoftBlockAction] <> '-'
END
-- Prepare to trimming
CREATE TABLE #RequestsCountedData
(
[Site] varchar(255),
[URLCategoryId] int,
[UserName] nvarchar(514),
[Requests] bigint
)
INSERT INTO #RequestsCountedData
SELECT DISTINCT
[Site],
[URLCategoryId],
[UserName],
COUNT(*) AS [Requests]
FROM #RowSummaryData
GROUP BY [Site], [URLCategoryId], [UserName]
-- Trim the result table to the maximum of 10000 records
SELECT
[Site],
[URLCategoryId],
[UserName],
[Requests],
@FromDate AS [Date]
INTO [tblSoftBlockSummary]
FROM (
SELECT
[Site], [URLCategoryId], [UserName], [Requests]
FROM
(
SELECT
[Site], [URLCategoryId], [UserName], [Requests],
ROW_NUMBER() OVER (ORDER BY [Requests] DESC) AS rownum
FROM #RequestsCountedData
) TopSites
WHERE rownum <= 10000
UNION ALL
SELECT
N'{[23124]}' as [Site],
0 as [URLCategoryId],
N' ' as [UserName],
SUM([Requests]) as [Requests]
FROM
(
SELECT
[Site], [URLCategoryId], [UserName], [Requests],
ROW_NUMBER() OVER (ORDER BY [Requests] DESC) AS rownum
FROM #RequestsCountedData
) OtherSites
WHERE rownum > 10000
) AllSites
WHERE [Requests] IS NOT NULL
-- register this summary to be committed to the RS
INSERT INTO [tblSummaryTables] ([TableName]) VALUES ('tblSoftBlockSummary')
END