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