對不起,這是我第一次使用這個論壇。顯然人們可以編輯我的帖子,雖然有幫助,已經採取了一些信息。 我會盡量讓它更容易理解。如何提高此SQL更新查詢的速度?
我正在使用SQL Compact 3.5作爲本地數據庫。該程序是用VB.NET編寫的。
問題是查詢我的一個表耗時過長。
播放器表有,除其他事項外,id
,skill
,school
,weight
,starter
。
id
是玩家的IDskill
是玩家的技能等級school
是一個外鍵指向校表的IDweight
是14個不同的數字
我想要做的是設置starter
value ='true',對於在給定的重量下技能最高的玩家ht給某所學校。 因此,如果一所學校有100名選手,則會有14名初學者,每名選手一名。
玩家桌上有170,000名玩家,每個玩家有14個不同的權重中的1個,每個玩家都屬於4500所學校中的1個。
有人在下面發表了看法,並表明這種說法似乎是正確的。我是新手,還沒有得到它的實施。
"UPDATE p " &
"SET starter = 'TRUE' " &
"FROM player p" &
"JOIN (" &
"SELECT DISTINCT school, weight, MAX(skill) AS MaxSkill " &
"FROM player " &
"GROUP BY school, weight" &
") q ON q.school = p.school AND q.weight = p.weight AND q.MaxSkill =
p.skill"
重量範圍還是數字?也就是說應該只將權重14與其他14或與13-15分組? – 2012-03-23 23:12:28
簡單的答案 - 一次不要做一次學校/體重。 – Bridge 2012-03-23 23:16:27
顯示你想要輸出的例子,你的問題不是很清楚。 – Sparky 2012-03-23 23:17:02