读书人

真心请问 For循环有关问题

发布时间: 2013-07-08 14:13:00 作者: rapoo

真心请教 For循环问题
数据库有个表,要求编码不重复
上传数据进行逐一比对
现在数据表大了,程序就慢了
如何优化
[解决办法]
循环大了改小一点不就可以了,写个分页循环
[解决办法]
var max = 1000000;
List<int> l =new List<int>();
for (int i = 0; i < max; i++)
{
l.Add(i+1);
}
var x = "";
var u = max/2;
var y = max % 2;
var t = u + y;
for (int i = 0; i < max; i=i+2)
{
x += l[i].ToString()+",";
if (y == 0)
{
x += l[i+1].ToString()+",";
}
else
{
if((i+1)<max)
x += l[t - (u - i)].ToString() + ",";


};
}

你看我循环走了几回
[解决办法]
为什么这里的回答都这么奇葩,难道是我理解的不对?

你所谓的对比,其实就是查询,保证新录入的数据不会重复,就像有的csdn用户名已被注册,你不能使用一样。对吗?

如果是这样的话。那就是你说的数据太多了,顺序查询效率太低,所以慢。那这样的话,跟你怎么写代码关系就不太大了,就一个条件(或几个)的查询,还能怎么着。你要做的是数据库的优化,表的优化,怎么做。加索引,提高查询效率。
[解决办法]
不重复? 建个主键 或者 唯一约束就可以了吗。真心请问 For循环有关问题
[解决办法]
首先你将导入数据中的编码 全部提取出来,用一个SQL去查询哪些重复,然后将重复的数据处理下或者是去除掉,然后再导入。
[解决办法]
用Linq,不过数据量大的话还是慢。
[解决办法]
要比对的列 添加索引吧,是加 单索引 还是加组合索引 就看你 你自己写的 查询语句的条件了
[解决办法]
如果你用sqlserver,可以用C#给写个函数然后返回结果
至于怎么循环还是其他的你自己多作实验,看看那个是你要的
要不就在说清楚些

读书人网 >C#

热点推荐