SQL'i yüceltilmiş bir ISAM (Dizinlenmiş Sıralı Erişim Yöntemi) paketi olarak kullanma. Özellikle, SQL deyimlerini daha büyük de olsa tek bir deyimde birleştirmek yerine imleçleri iç içe yerleştirmek. Bu aynı zamanda 'optimize ediciyi kötüye kullanma' olarak da sayılır, çünkü aslında optimize edicinin yapabileceği pek bir şey yoktur. Bu, maksimum verimsizlik için hazırlanmamış ifadelerle birleştirilebilir:
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
Doğru çözüm (neredeyse her zaman) iki SELECT ifadesini bir araya getirmektir:
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
Çift döngü versiyonunun tek avantajı, iç döngü sona erdiği için Tablo1'deki değerler arasındaki boşlukları kolayca tespit edebilmenizdir. Bu kontrol sonu raporlarında bir faktör olabilir.
Ayrıca, uygulamada sıralama genellikle hayır-hayır.