sql 生成100W条指定位数的随机数的方法(只花费了不足1分钟)(整理)

 应用例子:比如饮料的中奖号码,N多瓶每瓶有个随机号码o觉得有些地方值得学习:1.一次性插入尽可能多的记录(不判断是否已经存在该随机数),而不是一次插入一条记录(插入前要判断是否已经存在该随机数).这里重复记录通过设置忽略重复记录的索引来实现的. "一次性的插入尽可能多的记录"和"忽略重复记录的索引"节约的时间简直太多了....我使用建立索引后的循环插入50W记录都花了2-3个小时..
摘要由CSDN通过智能技术生成

 

应用例子:比如饮料的中奖号码,N多瓶每瓶有个随机号码
o觉得有些地方值得学习:

1.一次性插入尽可能多的记录(不判断是否已经存在该随机数),而不是一次插入一条记录(插入前要判断是否已经存在该随机数).这里重复记录通过设置忽略重复记录的索引来实现的.
 "一次性的插入尽可能多的记录"和"忽略重复记录的索引"节约的时间简直太多了....我使用建立索引后的循环插入50W记录都花了2-3个小时....

2.SET NOCOUNT ON 这样也可以节约时间 ,但测试发现设置为OFF或ON,其时间几乎相同的都是47或46秒左右

3.这里虽然也使用了循环,但它的循环次数是不固定的.其次数取和每次插入失败的记录数有关.失败的记录数为0的时候,任务也就完成了.我测试需要循环50次左右就可以了.

4.syscolumns和sysobjects两个表的作用是获得足够数量的随机数,两个表的交叉查询记录大于100W就可以了.

-- 生成8位长度的100W条记录的随机数,插入数据库.
USE  tempdb
GO
CREATE   TABLE  tb(id  char ( 8 ))
CREATE   UNIQUE   INDEX  IX_tb  ON  tb(id)
WITH  IGNORE_DUP_KEY   --  --忽略重复记录的索引
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值