Використання SQL як прославленого пакету ISAM (індексований метод послідовного доступу). Зокрема, вкладення курсорів замість комбінування заяв SQL в єдиний, хоч і більший, оператор. Це також розцінюється як "зловживання оптимізатором", оскільки насправді оптимізатор може зробити не так багато. Це може поєднуватися з не підготовленими заявами для максимальної неефективності:
DECLARE c1 CURSOR FOR SELECT Col1, Col2, Col3 FROM Table1
FOREACH c1 INTO a.col1, a.col2, a.col3
DECLARE c2 CURSOR FOR
SELECT Item1, Item2, Item3
FROM Table2
WHERE Table2.Item1 = a.col2
FOREACH c2 INTO b.item1, b.item2, b.item3
...process data from records a and b...
END FOREACH
END FOREACH
Правильне рішення (майже завжди) полягає в об'єднанні двох операцій SELECT в одне:
DECLARE c1 CURSOR FOR
SELECT Col1, Col2, Col3, Item1, Item2, Item3
FROM Table1, Table2
WHERE Table2.Item1 = Table1.Col2
-- ORDER BY Table1.Col1, Table2.Item1
FOREACH c1 INTO a.col1, a.col2, a.col3, b.item1, b.item2, b.item3
...process data from records a and b...
END FOREACH
Єдиною перевагою версії подвійного циклу є те, що ви можете легко помітити розриви між значеннями в таблиці1, оскільки внутрішній цикл закінчується. Це може бути фактором у звітах про перерви контролю.
Крім того, сортування в додатку зазвичай ні-ні.