处理大数据的性能问题
程序使用.NET,MSSQLSERVER2000
create table Procode
{
id int primary key,
f1 varchar(20),
f2 varchar(20),
f3 varchar(20),
f4 varchar(20),
state bit
}
create table codeCollection
{
id int primary key,
ProcodeID int ,
code varchar(200),
foreign key (ProcodeID) references Procode(id) on delete cascade on update cascade
}
Procode 表中大约有50-60W条记录,现在把Procode的数据处理插入codeCollection表中
应用程序是把Procode读出来循环处理 select * from Procode where f4 <>1
while(reader.read())
{
string code;
for(int i=reader["f2"],i<reader["f3"],i++)
{
string b=reader["f1"] +i +reader["f4"]
code+="insert into codeCollection(ProcodeID,code) values("+ reader["id"] +"," +b +")"
}
--执行code,插入codeCollection表中
}
但是执行效率非常慢,大约需要40min,所以考虑使用dataset貌似还是没有什么效果
现在打算使用mssqlserver2000存储过程,如何编写呢,详细代码 请各位大侠帮忙,小弟不胜感激!
------解决方案--------------------insert into 数据库名.表名(列名) select (列名) from 数据库名.表名 where 条件
这样不行么
------解决方案--------------------我也遇到了 类似的问题
------解决方案--------------------那就先放到一个table中
然后用SqlBulkCopy 存入数据库
------解决方案--------------------
------解决方案--------------------频繁的操作?
------解决方案--------------------SqlBulkCopy效率非常高
------解决方案--------------------SqlBulkCopy 这个不错
------解决方案--------------------