PL / SQL过程工作负载平衡

时间:2013-09-20 09:51:46

标签: sql stored-procedures plsql database-performance workload

在PL / SQL存储过程中实现工作负载平衡有哪些选项。我不是在谈论配置服务器来处理工作负载,而是在谈论将这样的功能实现到特定的存储过程中。

假设我有一个接收数据,读取数据,处理数据然后返回结果的过程。如果数据集非常大,当贪婪的用户发送要处理的大数据集时,系统的其他用户会感觉性能下降。

一种解决方案是每x次迭代使用一个等待命令(如果以类似循环的方式读取数据集),以允许其他用户在处理大型请求期间请求处理一点。

还有其他方法可以在单个PL / SQL过程/包中实现这种事情吗?

1 个答案:

答案 0 :(得分:1)

如果您提取的数据非常大,我们可以使用收集和批量收集,如下所示:

CREATE OR REPLACE

function employee_job return id_tabl as

 emp_table  id_tabl;

 begin

 select job_id 

 bulk collect into emp_table from employees;

 return emp_table;

 end employee_job;

使用这种类型的代码将减少上下文切换并提高性能。

如果您对答案不满意或者无法关注您的答案,请退回 问题正确。