PL/SQL 过程工作负载平衡


有哪些

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

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

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

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

如果您要获取的数据非常大,我们可以像这样使用收集和批量收集:

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;

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

如果您对答案不满意或无法遵循您的答案,请回复问题正确。

最新更新