使用PL/SQL中的bulk collect语句提高性能
2013-09-06 16:12
393 查看
记录有点多。可以通过使用limit语句来控制一次buck collect的记录数。
declare
cursor c is select ename, empno, hiredate from emp;
l_ename dbms_sql.varchar2_table;
l_empno dbms_sql.number_table;
l_hiredate dbms_sql.date_table;
begin
for i in 1 .. 5000
loop
open c;
loop
fetch c bulk collect into l_ename, l_empno, l_hiredate limit 500;
exit when c%notfound;
end loop;
close c;
end loop;
end;
/
Bulk collect主要用于批量获取数据的查询结果集,而forall主要用于数据的批量插入或者删除等操作。
有时需要把bulk collect和forall结合起来,比如某些ETL操作,如果这些操作不能使用直接路径加载,可以考虑使用bulk collect与forall结合的办法。
declare
cursor c is select ename, empno, hiredate from emp;
l_ename dbms_sql.varchar2_table;
l_empno dbms_sql.number_table;
l_hiredate dbms_sql.date_table;
begin
for i in 1 .. 5000
loop
open c;
loop
fetch c bulk collect into l_ename, l_empno, l_hiredate limit 500;
exit when c%notfound;
end loop;
close c;
end loop;
end;
/
Bulk collect主要用于批量获取数据的查询结果集,而forall主要用于数据的批量插入或者删除等操作。
有时需要把bulk collect和forall结合起来,比如某些ETL操作,如果这些操作不能使用直接路径加载,可以考虑使用bulk collect与forall结合的办法。
相关文章推荐
- 利用PL/SQL的nested table和bulk collect into方法提高性能
- 使用SqlBulkCopy提高批量插入数据库性能
- [.net] 使用SqlBulkCopy提高导入数据的性能
- 在SQL语句中使用索引提示提高SQL性能
- 使用SqlBulkCopy提高导入数据的性能
- 收藏:PL/SQL中使用Bulk Binds来提高性能
- 使用SQLBULKCOPY提高导入数据的性能
- 在PL/SQL中使用Bulk Binds对性能的提高
- 使用SqlBulkCopy提高导入数据的性能
- 从SQL语句的角度 提高数据库的访问性能
- sql语句性能提高
- c# 使用SqlBulkCopy 提高大数据插入数据库速度
- .NET批量大数据插入性能分析及比较(5.使用SqlBulkCopy)
- 在PL/SQL中使用SQL,动态SQL语句
- 利用pl/sql执行计划评估SQL语句的性能简析
- 使用SQL语句优化优化数据库性能
- [转]使用 Bulk Collect提高Oracle查询效率
- SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL
- 利用pl/sql执行计划评估SQL语句的性能简析
- 优化临时表使用,SQL语句性能提升100倍