[英]SQL Server Performance Query
我對此查詢有一些麻煩(查看)。
我使用的是SQL Server2012。記錄很少,查詢速度很快,但是此后,我僅添加了1000條記錄(鏈接),查詢速度變得非常慢(超過23秒)
我必須為數據庫中的每個主機獲取一個隨機鏈接,因此我使用了Row_Number和partition by。
鏈接表有1000條記錄,主機表有10條記錄,但是查詢是如此緩慢
對提高性能有什么建議嗎?
更新我需要讓foreach主機獲得一個隨機鏈接(可以是1或2或3,具體取決於Host.numLinksPerWork)
;WITH MyCte As
(
SELECT DISTINCT link.namUrl, host.uidHost, host.namHost AS Hostname,
[user].uidUser, usrProfile.UserName AS Username, host.numLinksPerWork,
referer.namUrl AS refererLink,host.Min, host.Max,ROW_NUMBER()
OVER (PARTITION BY host.numLinksPerWork, host.uidHost ORDER BY newid()) AS Number
FROM Links link JOIN
Users[user] ON [user].uidUser = link.codUser JOIN
Profile usrProfile ON usrProfile.UserId = [user].uidUser JOIN
Hosts host ON host.uidHost = link.codHost JOIN
Referers referer ON referer.codHost = host.uidHost JOIN
Referers referer2 ON referer.codUser = [user].uidUser
WHERE [user].flgBanned = 0
)
SELECT MyCte.uidHost, MyCte.uidUser, MyCte.namUrl, MyCte.refererLink,
MyCte.Hostname, MyCte.Username, MyCte.Min, MyCte.Max FROM MyCte
WHERE MyCte.Number <= MyCte.numLinksPerWork!
我解決了問題...在同一張表上的兩次聯接是錯誤的OFC,它減慢了查詢速度!
Referers referer ON referer.codHost = host.uidHost JOIN
Referers referer2 ON referer.codUser = [user].uidUser
刪除無用的Join很快!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.