挑战大富翁!!!!!!!!!!! (300分)

  • 主题发起人 主题发起人 wzs
  • 开始时间 开始时间
没有试验,只是有点怀疑,sys_guid的值不是随机的吧,
他可能是不停增长的吧(越来越大,不是忽大忽小),那还有随机选取的作用吗?
 
sys_guid的值不是随机的吧,
我也是这样认为的。
 
newid 恐怕也是顺序出来(越来越大)的吧
 
对不起大家,写错了。
 
SELECT top 1 f.*
FROM f,
(SELECT COUNT(*) AS cou
FROM f) b
WHERE (id <= CAST((RAND() * b.cou AS int))+min(id))
order by id desc
 
to wzs:
我想问一下你的表结构,id是如何定义的?是否以GUID为主键?
 
我的方案中利用了数据库自增字段,不过这种字段很讨厌,如果删除的不均匀,
随机数的分布就不均匀,可以设id为增长字段,是手动增长,可以利用随机记录的方式,
正如你的问题中所提的那样,据库很庞大,我们有必要在设计时动些脑筋。按照算法的
原理,我改自天真的方法与你的方法总的执行时间是一样的。但我把时间分摊到了每条记录
的产生时,效率比你的高。
给天真我俩加分吧。
 
如此多的记录有primaray key吗?
否则删除或更改不当机?
 
呵,李衍智,想到一块儿:)
 
哦~ 原来数据库竟然还有效率这一说的丫——SQL这种连VB都不如的解释型语言有效率可谈??
程序算法都是以时钟周期或者毫秒数来衡量的,SQL呢???
何必那么斤斤计较呢?如果这个随机取记录的过程调用一次即可或者很少被调用,就根本用不着
计较这计较那——大不了多等1秒嘛。如果要经常被调用,还不如(把索引)取回本地以后再随机。
 
老兄,你怎么反着说话,越是这样,越应该讲效率。
 
to 情系天涯:
我就是这个意思——我根本不指望SQL的速度出现奇迹。应该采用别的、固化的方法。
——数据库的like 和 全文索引,哪个快?
 
creation-zy:
固化的方法?除非你改动数据库体系,否则你怎么适应数据不断变化的要求?
上面的老兄都是用索引的。要不还讲什么效率?
你不指望sql出现奇迹,但好的方法可使效率提高很多倍,这应该是事实吧?
 
>>好的方法可使效率提高很多倍
Right!
如果你“改动数据库体系”的话,有可能将效率再次提高好几倍!——Right?
例子: http://www.delphibbs.com/delphibbs/dispq.asp?lid=555596
为什么一定要抱着数据库死死不放呢?
 
我看了你的例子,很出色,虽然我没看完。
但你偷换了概念,例子问题属于算法问题,数据库解决是不行的。
而这个问题是技巧问题,你算法再好,把所有东西拿家来自己折腾,
传输就会累死你。
 
不同问题应用不同的办法解决,你才是一条道跑到黑。
 
呵呵,数据库我还没有跑过(因此没有当成程序员)。
>>不同问题应用不同的办法解决
同意!我对楼上的同志们还是十分敬仰的,说不定以后还会问一些数据库的问题。
 
to wzs
I agree with creation-zy
 
佩服!佩服!佩服!
 

Similar threads

后退
顶部