La programación basada en conjuntos se basa en el concepto matemático de un conjunto, y tiene operadores que trabajan en un conjunto completo a la vez. La programación procedural (RBAR) se basa más en los conceptos informáticos tradicionales de archivos y registros. Así que para aumentar el salario de todos los empleados en el departamento de X en un 10%:
Conjunto basada en:
UPDATE employees SET salary = salary * 1.10 WHERE department = 'X';
Procedimiento (ejemplo extremo, pseudo-código):
OPEN cursor FOR SELECT * FROM employees;
LOOP
FETCH cursor INTO record;
EXIT WHEN (no more records to fetch);
IF record.department = 'X' THEN
UPDATE employees
SET salary = salary * 1.10
WHERE employee_id = record.employee_id;
END IF
END LOOP
CLOSE cursor;
En el procedimiento versión, solo una fila de empleados se actualiza a la vez; en la versión basada en conjunto, todas las filas en el "conjunto de empleados en el departamento X" se actualizan de inmediato (en lo que a nosotros respecta).
No estoy seguro de que esto agregue algo a lo que ya habrá leído en sus enlaces, ¡pero pensé que podría probarlo!
Por supuesto, la versión basada en conjuntos es casi siempre más rápida y generalmente por mucho. – HLGEM