社区
数据库相关
帖子详情
简单的程式,海量的数据,速度问题求解!
jay_lizj
2009-10-30 03:16:05
加精
系统要求扫描产品的条码,保存进数据库,条码不能重复。
系统很简单,但每天的数据量非常大,基本要7万条/天,所以当数据总量达到200万的时候,系统插入记录时就会非常慢,我目前的检查重复是通过设置条码栏位为唯一索引,在程式中捕捉sql返回的错误来判断,这样比传统的用语句判断是否唯一已经快很多,但在数据量大时还是十分缓慢。数据库采用的sql2000.现在没办法只能定期转移数据,实在是非常麻烦。
请教是否有更好的方法处理,谢谢!!!
...全文
1612
104
打赏
收藏
简单的程式,海量的数据,速度问题求解!
系统要求扫描产品的条码,保存进数据库,条码不能重复。 系统很简单,但每天的数据量非常大,基本要7万条/天,所以当数据总量达到200万的时候,系统插入记录时就会非常慢,我目前的检查重复是通过设置条码栏位为唯一索引,在程式中捕捉sql返回的错误来判断,这样比传统的用语句判断是否唯一已经快很多,但在数据量大时还是十分缓慢。数据库采用的sql2000.现在没办法只能定期转移数据,实在是非常麻烦。 请教是否有更好的方法处理,谢谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
104 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
woshixinghuo
2010-07-11
打赏
举报
回复
haohao xuexi ya
huobr
2009-11-11
打赏
举报
回复
[Quote=引用 85 楼 dd_zhouqian 的回复:]
条形码基本对每个商品都是唯一的,也可能一个商品有多个条形码,
每天7W,也就是7W种商品。
30天210W,也就是210W种商品。
[/Quote]
如果是商品的条码,我在想什么行业每天都有这么多种新商品交易?
ERR0RC0DE
2009-11-06
打赏
举报
回复
楼主应该将表设计(结构,索引,[不会还有触发器吧?]写出来,
然后再写些关键代码(怎么insert表)贴出来让大家分析,而不是靠大家猜。
yjsyyy
2009-11-06
打赏
举报
回复
数据库索引可以使查询变快,但会让插入变慢,数据量大时影响更大。
所以应该把查询和插入分开,建缓冲表应该是个好办法:
缓冲表和持久表都按条码建索引
在缓冲表中只放一天的数据,新数据都插入缓冲表(数据量小,插入快),插入前按‘缓冲表、持久表’的顺序判断重复
每天在数据库服务器空闲时将缓冲表数据转入持久表(耗时操作在后台执行)
查询时综合两张表
还有一个办法就是分区了,分区其实就是:
将所有记录按条码的前n(需规划n的值以控制分区大小及数据量均衡)个字符分类,分别放在多个分区(分表)中,插入或查询时先按前n个字符确定分区(分表),然后再在小数据量的分区(分表)中操作。
patckchen
2009-11-06
打赏
举报
回复
1.一秒之内都应该可以接受
2.并发输入在30台电脑左右
3.数据库服务器的配置志强2.8双核CPU两个,内存2G
4. 条码不能重复是指表中任意时期记录的条码都不能重复
5. 应用系统是局域网
可以开sql跟踪,看慢在哪里啊,cpu,IO,哪里慢解决哪里问题
数据库服务器CPU足够了, 条件允许的话再加2G内存, 硬盘加满;
如果有6个硬盘1,2硬盘RAID1(操作系统,数据库软件); 3,4,5,6硬盘RAID10; 数据库文件放在RAID10盘上
如果有8个硬盘1,2硬盘RAID1(操作系统,数据库软件); 3,4硬盘RAID10(数据库使用文件组,放索引文件);
5,6,7,8硬盘RAID10放数据文件
操作系统和数据库可以升级到X64版本,数据用sql server 2005或2008版本
定期做碎片整理及重建索引工作;
数据记录的表用条码字段做主键,聚集索引,如果要写入快表的索引尽量少.
是否对表分区看具体应用了,条码字段是全局索引,如果只考虑对条码字段唯一性,分区没什么意义.
写表使用存储过程.
你的这种要求insert的sql也能满足,使用绑定变量方法,减少sql的解析时间.
aassdd
2009-11-05
打赏
举报
回复
看完了。学习中,幸好没用sqlserver2000搞这种大数据量。
阿三
2009-11-05
打赏
举报
回复
写个存储过程,用这个去判断,然后客户端去调用。
hehaiyi2008
2009-11-05
打赏
举报
回复
[Quote=引用 75 楼 zyxip 的回复:]
先检查程序,将和这个表有有绑定的数据感知控件全部去掉。
在估算一个数据的最大量,总不至于每天七万,无限的增加下去吧
将条码的长度保存起来,先用条码的长度进行过滤,如果80%以上的长度都是一个长度,则不用这个方法
将条码中的偶数个数保存在一个独立的数字字段中,先进行比较,应该先能排除一半
将条码的最后几位数据独立保存在一个数字字段中,先进行比较,数字比较速度应该比字段比较快
在根据业务看是否能用时间来划分,每天或每周,每月建立一张表
增加一int类型的主键。撤销条码的主键。
总的原则是将数据分类来查,不要每将都在一大堆中查找,就象在书店一样,可以按出版商,按书类型进行
书架分类,然后找书的时间才能快速定位。
[/Quote]
losehum
2009-11-05
打赏
举报
回复
[Quote=引用 3 楼 sz_haitao 的回复:]
7万条/天,每次是多少条,如果多的话,插之前先批量查询是否有重复,没有就批量插入,有重复就先剔除重复的,再批量插入
不过,估计慢在插入后的索引维护上,分区表可以减低维修开销
[/Quote]
统一, 存在索引的话, 绝对的太浪费时间. 如果只是想讲所有条码在数据库中不重复存在, 那干脆直接先把所有索引,外键等删除, 然后等数据全部进入后, 在去重复, 重建索引.
lhslktg
2009-11-05
打赏
举报
回复
h
Yizero
2009-11-04
打赏
举报
回复
很热闹,进来学习一下!
lw_China
2009-11-04
打赏
举报
回复
如果其他地方没问题的话
我认为瓶颈就在比较的过程。
那么是不是可以这样:
1.在做比较的时候统计每一个条形码的重复次数。
2.将经常重复的条形码(比如说前20W个)拿出来做
第一次比较,不重复再进行后续比较。
PS: 当然,如果条码的重复数分布很平均的话,这个方法无效。
dd_zhouqian
2009-11-04
打赏
举报
回复
条形码基本对每个商品都是唯一的,也可能一个商品有多个条形码,
每天7W,也就是7W种商品。
30天210W,也就是210W种商品。
爱技术的山野村民
2009-11-04
打赏
举报
回复
1、楼主的应用场景描述不够清晰。
2、条码建主键索引,使用捕捉sql错误还做程序错误处理,都是正确的。
分析:
3、你的数据每天7万,那么按月分表是可以做的。
检查过你的数据库主机性能没?忙的时候消耗CPU多少、内存多少,是否满足应用需要?
有多少程序在并发处理这个表,是否有锁表的产生,都要看看。
4、我在工作中应用的都是千万级以上的数据,并发的用户量很多,当然数据库主机也很强劲(IBM16CPU,32G内存)。你的问题该不难解决。
jin20000
2009-11-04
打赏
举报
回复
关注
贝隆
2009-11-04
打赏
举报
回复
学习
wzpwork
2009-11-04
打赏
举报
回复
数据库索引查询快,但会影响插入速度,它有两面性。
在内存中实现一个HASH。现在的服务器都四个G以上的内存,每天7万记录没问题。
检查时从内存HASH中查询,插入时存到数据库中,按月建表。一个月下来也只有向几千万的记录。
evenfun
2009-11-04
打赏
举报
回复
在SQL2000中,几百万条数据是不算多的,
如果产品条码是主键或者有索引的话,
查询的速度应该是很快的.
我做过测试, 在五千万条数据中检索一条(where条件是主键或者是索引,用的是"=")
时间不会超过几百毫秒.
你的表是不是索引过多.请确认.
建议先检索是否存在,然后再插入.
不会出现那样的问题
cuidenghong123
2009-11-04
打赏
举报
回复
学习
flowingdream
2009-11-04
打赏
举报
回复
mark & ding.
加载更多回复(82)
matlab常微分方程
求解
matlab常微分方程
求解
,通过编程实战掌握具体应用。包括matlab常微分方程
求解
前、matlab常微分方程
求解
中、matlab常微分方程
求解
后。
【发车优化】基于改进蚁群算法
求解
列车发车优化
问题
附Matlab代码
基于改进蚁群算法的列车发车优化
问题
建模:将列车发车优化
问题
抽象为一个图论模型,其中车站作为节点,列车运行路径作为边。定义列车发车优化
问题
的目标函数,即最小化列车运行总时间。确定列车发车优化
问题
的约束条件,包括列车运行时刻、列车运行
速度
、车站停靠时间等。改进蚁群算法的具体步骤:初始化蚁群算法,包括蚁群规模、信息素浓度、启发因子等参数。构造蚁群算法的解空间,即所有可能的列车发车方案。定义蚁群算法的转移概率函数,即蚂蚁选择下一条路径的概率。更新蚁群算法的信息素浓度,即蚂蚁在路径上留下的信息素数量。
【VRP
问题
】基于免疫优化遗传算法
求解
考虑续驶里程、额定载重量、数量、起始点和带时间窗的电动汽车配送最小成本路径规划EVRP
问题
附Matlab代码
电动汽车配送最小成本路径规划 (EVRP)
问题
是一种复杂的组合优化
问题
,涉及考虑续驶里程、额定载重量、数量、起始点和带时间窗等因素的配送路径规划。本文提出了一种基于免疫算法 (IA) 的方法来
求解
EVRP
问题
。该方法将 EVRP
问题
编码为抗原,并使用免疫算法进行进化计算,以寻找最优解。实验结果表明,该方法能够有效地
求解
EVRP
问题
,并获得较好的解。
基于改进蚁群算法
求解
列车发车优化
问题
附Matlab代码
基于改进蚁群算法的列车发车优化
问题
建模:将列车发车优化
问题
抽象为一个图论模型,其中车站作为节点,列车运行路径作为边。定义列车发车优化
问题
的目标函数,即最小化列车运行总时间。确定列车发车优化
问题
的约束条件,包括列车运行时刻、列车运行
速度
、车站停靠时间等。改进蚁群算法的具体步骤:初始化蚁群算法,包括蚁群规模、信息素浓度、启发因子等参数。构造蚁群算法的解空间,即所有可能的列车发车方案。定义蚁群算法的转移概率函数,即蚂蚁选择下一条路径的概率。更新蚁群算法的信息素浓度,即蚂蚁在路径上留下的信息素数量。
【微电网】基于非支配排序的蜣螂优化算法NSDBO
求解
微电网多目标优化调度附MATLAB代码
微电网是一种分布式发电系统,具有分布式、可再生、低碳等特点。微电网的多目标优化调度
问题
涉及经济性、可靠性和环境保护等多方面的目标,是一个复杂的多目标优化
问题
。本文提出了一种基于非支配排序的蜣螂优化算法(NSDBO)
求解
微电网多目标优化调度
问题
。该算法融合了非支配排序和蜣螂优化算法的优点,能够有效地
求解
微电网的多目标优化调度
问题
。
数据库相关
2,497
社区成员
88,445
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章