读数据库然后写文件,速度很慢

deknight 2010-04-26 12:20:54
有个表,数据大概270多万,库是别人给的,由于里面的数据不规范,所以字段类型基本都是nvarchar(100)
现在我要把数据读出来然后写成excel,每次读1000行,然后放到ds里,由于我要知道那些我已经转了,哪些没转,所以我在表里加了个字段int1
当这行写完时,我就把int1置为1,我每次读数据都加了条件 where int1=0
在执行把int1置为1这个操作时,速度非常非常慢,我知道是因为表结构不合理造成的,现在表肯定是改不了了,还有什么办法可以快一些?
...全文
103 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
deknight 2010-04-26
  • 打赏
  • 举报
回复
没人帮忙吗
deknight 2010-04-26
  • 打赏
  • 举报
回复
不在本表操作了,新建个表,字段ID,主键,每写一个,往新表里插一条数据,取数据时选择ID不在新表中的,速度快很多,结了
guyehanxinlei 2010-04-26
  • 打赏
  • 举报
回复
设置一下表的主键及索引试试
deknight 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zdbb 的回复:]
新建个int类型的主键字段,如mid [int] IDENTITY (1, 1) NOT NULL
,设为标识,自动增长。用如下SQL更新:
update 表 set int1=1 where mid=当前行主键值
[/Quote]
这个我也试过,因为表比较大,建新字段时,会提示超时创建不了..
只在此山中 2010-04-26
  • 打赏
  • 举报
回复
新建个int类型的主键字段,如mid [int] IDENTITY (1, 1) NOT NULL
,设为标识,自动增长。用如下SQL更新:
update 表 set int1=1 where mid=当前行主键值
deknight 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hsghxm 的回复:]
把int1设置为PK(主键),其他字段都建立索引,速度绝对可以提高很多倍了,不是一点点!
[/Quote]
问题是,现在字段类型都比较大,建不了那么多索引,只能900K
deknight 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 teng_s2000 的回复:]
SSIS做吧

不过Excel2003对行数是有限制的,65000多

Excel2007好像是100W条记录
[/Quote]
恩,我是分文件的,循环写,每次只写1000条,然后建新文件
我试下SSIS
Teng_s2000 2010-04-26
  • 打赏
  • 举报
回复
SSIS做吧

不过Excel2003对行数是有限制的,65000多

Excel2007好像是100W条记录
hsghxm 2010-04-26
  • 打赏
  • 举报
回复
把int1设置为PK(主键),其他字段都建立索引,速度绝对可以提高很多倍了,不是一点点!

110,555

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧