对不起,这是我第一次使用这个论坛。显然人们可以编辑我的帖子,虽然有帮助,已经采取了一些信息。 我会尽量让它更容易理解。如何提高此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