int totalCount = Convert.ToInt32(DBsource.ReturnID("SELECT count(UserEmail) CategoryID FROM tableName where isactive=1").ToString()); // 获取用户列表总行数 totalCount=100000
int Count = 0;
if (totalCount % 1000 == 0) /* 听说for 循环次数超过5000,就不能运行了。所以进行拆分,让循环
{ Count = totalCount / 1000; } 次数变为1000;
else
{
Count = totalCount / 1000;
Count = Count + 1;
}
int rowCount = 0;
for (int i = 0; i < Count; i++) // 外循环控制循环几个1000; {
for (int j = 0; j < 1000; j++) // 内循环空间循环1000次 {
rowCount++;
//得到用户列表为10万的其中一个用户 string useremail = DBsource.ReturnUserEmail("select U.UserEmail from (select UserEmail,ROWNUM RN from tablename where isactive=1) U where RN=" + rowCount).ToString();
//给查询出来的用户发信息 mesg = ad.AddMessages(conn, ad.PlusNumber(conn, "select MAX(MessageID) from tablename"), this.txtTitle.Text, this.txtContent.Text, useremail, Session["adminname"].ToString(), DateTime.Now.ToString());
//判断是进行到最后一个1000的 循环 if (i == Count - 1)
{
if (rowCount == totalCount) //如果等于总行数,循环完毕跳出循环 { break; }
}
}
}
现在就是这个代码在程序运行时,直接就卡到那了,不能运行!
问题补充:
谢谢您的回答, 准备采用批量从数据库取出用户列表。每次1500条! 使用OraclePreparedStatement 但是找不到这个类的引用啊? 请帮助
问题补充:
我用的是。net ! 现在可以从数据库取出全部用户列表。效率也很快! 现在给用户发信息 就相当于往数据库-表插入10W 行数据! 我写了存储过程! 但是还是需要10分钟啊! 存储过程里面是一条一条的插入数据!
create or replace procedure addMsg
(
msgid number,
msgtitle varchar2,
msgcontent varchar2,
useremail user_list,
sender varchar2,
sendtime varchar2
)
as
begin
for x in 1..useremail.count loop
insert into T_Messages values(msgid,msgtitle,msgcontent,useremail(x),sender,0,sendtime);
end loop;
end;
/
相关推荐
3. **流程控制**:包括IF-THEN-ELSE、CASE语句进行条件判断,以及WHILE、FOR循环进行迭代。 4. **集合类型**:PL/SQL提供VARRAYs(固定大小数组)、NESTED TABLES(嵌套表)和INDEX BY TABLES(索引表)等集合类型...
使用游标 9.1 显式游标 9.2 参数游标 9.3 使用游标更新或删除数据 9.4 游标FOR循环 9.5 使用游标变量 9.6 使用CURSOR表达式 9.7 习题 第10章 处理例外 10.1 例外简介 10.2 ...
3. **控制结构**:PLSQL提供了循环(FOR、WHILE)、条件语句(IF-THEN-ELSIF-ELSE)、CASE表达式等,使得能够进行条件判断和流程控制。 4. **异常处理**:PLSQL中的异常处理机制允许捕获和处理运行时错误,通过...
而当达到10万个以上时,性能将显著降低。 - **索引使用**: 不推荐建立索引,包括但不限于普通索引、唯一索引、主键等。 - **临时表管理**: 使用后的临时表应及时删除,以避免占用不必要的资源。 - **分区表策略**: ...
- **流程控制**:掌握if条件语句、switch选择语句、for、while和do-while循环结构。 2. **类与对象**: - **类与对象的概念**:学习如何定义类,创建和使用对象。 - **封装**:理解隐藏实现细节,提供公共接口的...
5. 为员工加薪10%,从最低工资开始,但不超过50万,展示了条件判断和计算操作。 6. 基于`DEPT`表返回的部门号,查询`EMP`表中的雇员信息,这里使用了带参数的游标。 7. 统计`EMP`表中工资大于3000的记录数,并为这些...
如一个表有100万记录,一个数值型字段A,30万记录的A=0,30万记录的A=1,39万记录的A=2,1万记录的A=3。那么执行A>2与A>=3的效果就有很大的区别了,因为A>2时ORACLE会先找出为2的记录索引再进行比较,而A>=3时...
ORACLE_SID=oral10g\ --变局部变量 export ORACLE_SID --变全局变量 unset ORACLE_SID --卸载环境变量 ORACLE_HOME=... --安装路径;直接用一句语句也可以,如下 export ORACLE_HOME=/oracledata/.../bin: ...
17、说明:随机取出10条数据 select top 10 * from tablename order by newid() 18、说明:随机选择记录 select newid() 19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from ...
17、说明:随机取出10条数据 select top 10 * from tablename order by newid() 18、说明:随机选择记录 select newid() 19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from ...
3. 控制结构:包括条件语句(if...else、switch)、循环语句(for、while、do...while、foreach)以及跳转语句(break、continue)。 4. 函数:PHP支持自定义函数,也有内置函数供开发者使用。 5. 类和对象:PHP5...
56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43 ...
然而,对于300万行的数据,这两种方法都可能面临性能问题。为了提高效率,可以考虑以下优化策略: 1. **索引优化**:在`tid`和`pid`字段上创建索引,以加速查询。 2. **批量处理**:分批处理数据,而不是一次性处理...
3.2.3 for循环 74 3.2.4 while循环 75 3.2.5 break、continue 77 3.3 重点复习 78 3.4 课后练习 79 chapter4 认识对象 83 4.1 类与对象 84 4.1.1 定义类 84 4.1.2 使用标准类 87 4.1.3 对象指定与...
56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43 ...
56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43...
56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 42 57、介绍Collection框架的结构 47 58、Collection框架中实现比较要实现什么接口 47 ...
56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 38 57、介绍Collection框架的结构 43 58、Collection框架中实现比较要实现什么接口 43 ...