1
我有這個速度優化的查詢(這就是爲什麼它可能看起來有點奇怪 - 一段時間後得到一些幫助)。SQL查詢在哪裏問題
想要得到確切的結果,因爲這只是我只想從最後一分鐘內的結果不老。
此查詢返回最後的100個,不管是什麼,而不僅僅是最後一分鐘的結果。
SessionGuid
不是唯一的 - 實際上它是這張表中多行中的一個鍵。
感謝您的幫助
SELECT TOP(@resultCount) * FROM
(
SELECT
[UserSessionSequenceID]
,[SessionGuid]
,SiteID
,IP
,UrlTitle
,Url
,Referer
,[Timestamp]
,ROW_NUMBER() over (
PARTITION BY [SessionGuid]
ORDER BY UserSessionSequenceID DESC)
AS sort
FROM [tblSequence]
where SiteID = @siteID
and [Timestamp] > DATEADD(mi, [email protected], (LEFT(GETDATE(),12)))
) AS new
WHERE sort = 1
and not exists (
select SessionGuid
from tblSequence
where SiteID = @siteID
and SessionGuid = new.SessionGuid
and [TimeStamp] < DATEADD(mi, [email protected], (LEFT(GETDATE(),12)))
)
ORDER BY [UserSessionSequenceID] DESC
我的表看起來像這樣
CREATE TABLE [dbo].[tblSequence](
[UserSessionSequenceID] [bigint] IDENTITY(1,1) NOT NULL,
[IP] [nvarchar](50) NULL,
[SessionGuid] [nvarchar](50) NOT NULL,
[Url] [nvarchar](1550) NULL,
[UrlTitle] [nvarchar](1550) NULL,
[Cords] [nvarchar](2550) NULL,
[SiteID] [int] NOT NULL,
[BrowserWidth] [int] NULL,
[BrowserHeight] [int] NULL,
[Browser] [nvarchar](550) NULL,
[BrowserVersion] [nvarchar](50) NULL,
[IsCrawler] [bit] NOT NULL,
[Referer] [nvarchar](1550) NULL,
[Timestamp] [datetime] NULL
) ON [PRIMARY]