Vista Software
News Article: New Apollo SQL 6.1 Benchmarks - As fast as any SQL engine!

News Article

New Apollo SQL 6.1 Benchmarks - As fast as any SQL engine!

We wanted to share results of testing our new Apollo SQL 6.1 engine. We are happy to report that our new Apollo SQL 6.1 speed and stability results are impressive to say the least: Apollo SQL 6.1 is as fast as any SQL engine that we tested against.

Results for 25 SQL Statements

These tests included Apollo 6.1, Advantage 6.11 (ACE 6.11a Local Engine), DBISAM 3.12 and the BDE with Paradox 7.x. Except for Paradox, the results do vary with different products winning the overall test, except Paradox always finishes in last place. The important point to note is that Apollo SQL 6.1 has improved by leaps and bounds to become a world-class SQL engine.


Apollo SQL 6.1 Test Results

Note
The boxes showing the result times on this chart were enhanced for legibility.
Click on the chart above to see the full graphic, or click here.

Results

Apollo Total Time: 1192 (1.19 seconds)
Apollo Total Records: 1,029

Advantage Total Time: 1472 (1.47 seconds)
Advantage Total Records: 1,029

DBISAM Total Time: 1420 (1.42 seconds)
DBISAM Total Records: 1,029

BDE Paradox Total Time: 2443 (2.44 seconds)
BDE Paradox Total Records: 1,029

Individual SQL Statements and Times

  • SQL Statement executed. Some minor syntax changes were required for each product. Note each product ran properly and returned the correct number of records.
    • (0r = # of records ) (0.000ms = time) (Product Name)
  1. SELECT * FROM TABLE1 WHERE T1_KEY = :P_START
    • 1r 0.011ms Apollo
      1r 0.000ms Advantage
      1r 0.020ms DBISAM
      1r 0.010ms BDE Paradox
  2. SELECT * FROM TABLE1 WHERE T1_KEY BETWEEN :P_START AND :P_STOP
    • 101r 0.020ms Apollo
      101r 0.000ms Advantage
      101r 0.270ms DBISAM
      101r 0.010ms BDE Paradox
  3. SELECT * FROM TABLE1 WHERE T1_KEY BETWEEN :P_START AND :P_STOP AND (T1_SFLD1 = "Smith")
    • 0r 0.030ms Apollo
      0r 0.010ms Advantage
      0r 0.010ms DBISAM
      0r 0.010ms BDE Paradox
  4. SELECT * FROM TABLE1 WHERE T1_KEY BETWEEN :P_START AND :P_STOP AND (T1_SFLD1 LIKE "Sm%")
    • 0r 0.020ms Apollo
      0r 0.010ms Advantage
      0r 0.010ms DBISAM
      0r 0.020ms BDE Paradox
  5. SELECT * FROM TABLE1 WHERE T1_KEY BETWEEN :P_START AND :P_STOP AND (T1_SFLD1 IN ("Smith","Jones","Davies","Thompson"))
    • 4r 0.020ms Apollo
      4r 0.020ms Advantage
      4r 0.010ms DBISAM
      4r 0.010ms BDE Paradox
  6. SELECT * FROM TABLE1 WHERE T1_KEY BETWEEN :P_START AND :P_STOP AND (T1_SFLD2 = "STOKE-ON-TRENT")
    • 26r 0.040ms Apollo
      26r 0.010ms Advantage
      26r 0.090ms DBISAM
      26r 0.010ms BDE Paradox
  7. SELECT * FROM TABLE1 WHERE T1_KEY BETWEEN :P_START AND :P_STOP ORDER BY T1_SFLD1
    • 101r 0.020ms Apollo
      101r 0.100ms Advantage
      101r 0.020ms DBISAM
      101r 0.010ms BDE Paradox
  8. SELECT * FROM TABLE1 a WHERE ((a.T1_KEY >= :P_START) OR (a.T1_KEY <= :P_STOP)) AND (a.T1_SFLD1 IN ("Smith","Jones","Davies","Thompson"))
    • 321r 0.040ms Apollo
      321r 0.010ms Advantage
      321r 0.030ms DBISAM
      321r 0.101ms BDE Paradox
  9. SELECT AVG(T2_KEY2) FROM TABLE2 b WHERE (b.T2_KEY1 BETWEEN :P_START AND :P_STOP)
    • 1r 0.010ms Apollo
      1r 0.020ms Advantage
      1r 0.010ms DBISAM
      1r 0.010ms BDE Paradox
  10. SELECT T2_FKEY1, SUM(T2_KEY2) FROM TABLE2 b WHERE (b.T2_KEY1 BETWEEN :P_START AND :P_STOP) GROUP BY T2_FKEY1
    • 35r 0.030ms Apollo
      35r 0.020ms Advantage
      35r 0.020ms DBISAM
      35r 0.010ms BDE Paradox
  11. SELECT T1_KEY, T1_SFLD1, T1_SFLD2, T2_SFLD1 FROM TABLE1, TABLE2 WHERE (T1_KEY = T2_KEY1) AND (T1_KEY = :P_START)
    • 1r 0.030ms Apollo
      1r 0.030ms Advantage
      1r 0.010ms DBISAM
      1r 0.161ms BDE Paradox
  12. SELECT T1_KEY, T1_SFLD1, T1_SFLD2, T2_SFLD1 FROM TABLE1 JOIN TABLE2 ON (T1_KEY = T2_KEY1) WHERE ((T1_KEY BETWEEN :P_START AND :P_STOP) AND (T1_SFLD1 IN ("Smith","Jones","Davies","Thompson")))
    • 4r 0.050ms Apollo
      4r 0.050ms Advantage
      4r 0.010ms DBISAM
      4r 0.160ms BDE Paradox
  13. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_SFLD1 FROM TABLE1 a, TABLE2 b WHERE (a.T1_KEY = b.T2_KEY1) AND (a.T1_KEY BETWEEN :P_START AND :P_STOP) AND (b.T2_SFLD1 is Null)
    • 97r 0.050ms Apollo
      97r 0.020ms Advantage
      97r 0.040ms DBISAM
      97r 0.150ms BDE Paradox
  14. SELECT a.T1_SFLD2, COUNT(b.T2_SFLD1) FROM TABLE1 a, TABLE2 b WHERE (a.T1_KEY = b.T2_KEY1) AND (a.T1_KEY BETWEEN :P_START AND :P_STOP) GROUP BY a.T1_SFLD2
    • 15r 0.060ms Apollo
      15r 0.040ms Advantage
      15r 0.040ms DBISAM
      15r 0.130ms BDE Paradox
  15. SELECT a.T1_SFLD2, COUNT(b.T2_SFLD1) FROM TABLE2 b, TABLE1 a WHERE (a.T1_KEY = b.T2_KEY1) AND (a.T1_KEY BETWEEN :P_START AND :P_STOP) GROUP BY a.T1_SFLD2
    • 15r 0.051ms Apollo
      15r 0.050ms Advantage
      15r 0.030ms DBISAM
      15r 0.130ms BDE Paradox
  16. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_SFLD1, c.T3_FLD1 FROM TABLE1 a, TABLE2 b, TABLE3 c WHERE (a.T1_KEY = b.T2_KEY1) AND (b.T2_FKEY1 = c.T3_KEY) AND (b.T2_KEY1 BETWEEN :P_START AND :P_STOP) AND (c.T3_KEY = "101000")
    • 0r 0.060ms Apollo
      0r 0.020ms Advantage
      0r 0.010ms DBISAM
      0r 0.130ms BDE Paradox
  17. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_SFLD1, c.T3_FLD1 FROM TABLE3 c, TABLE2 b, TABLE1 a WHERE (b.T2_FKEY1 = c.T3_KEY) AND (a.T1_KEY = b.T2_KEY1) AND (b.T2_KEY1 BETWEEN :P_START AND :P_STOP) AND (c.T3_KEY = "101000")
    • 0r 0.050ms Apollo
      0r 0.020ms Advantage
      0r 0.010ms DBISAM
      0r 0.140ms BDE Paradox
  18. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_KEY2 FROM TABLE1 a LEFT OUTER JOIN TABLE2 b ON (a.T1_KEY = b.T2_KEY1) WHERE (a.T1_KEY BETWEEN :P_START AND :P_STOP)
    • 101r 0.050ms Apollo
      101r 0.020ms Advantage
      101r 0.030ms DBISAM
      101r 0.140ms BDE Paradox
  19. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_KEY2 FROM TABLE1 a LEFT OUTER JOIN TABLE2 b ON (a.T1_KEY = b.T2_KEY1) WHERE (a.T1_KEY BETWEEN :P_START AND :P_STOP) AND (b.T2_KEY2 is Null)
    • 4r 0.050ms Apollo
      4r 0.030ms Advantage
      4r 0.180ms DBISAM
      4r 0.151ms BDE Paradox
  20. SELECT DISTINCT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2,b.T2_KEY2, c.T3_KEY FROM TABLE1 a LEFT OUTER JOIN TABLE2 b ON (a.T1_KEY = b.T2_KEY1) LEFT OUTER JOIN TABLE3 c ON (b.T2_FKEY1 = c.T3_KEY) WHERE (a.T1_KEY >=:P_START) AND (a.T1_KEY <=:P_STOP)
    • 101r 0.060ms Apollo
      101r 0.060ms Advantage
      101r 0.050ms DBISAM
      101r 0.160ms BDE Paradox
  21. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_KEY2, c.T3_KEY, d.T4_SFLD1 FROM TABLE1 a LEFT OUTER JOIN TABLE2 b ON (a.T1_KEY = b.T2_KEY1) LEFT OUTER JOIN TABLE3 c ON (b.T2_FKEY1 = c.T3_KEY) LEFT OUTER JOIN TABLE4 d ON (a.T1_SFLD1 = d.T4_KEY) WHERE (a.T1_KEY BETWEEN :P_START AND :P_STOP) ORDER BY a.T1_KEY, a.T1_SFLD1,a.T1_SFLD2, b.T2_KEY2, c.T3_KEY, d.T4_SFLD1
    • 101r 0.070ms Apollo
      101r 0.541ms Advantage
      101r 0.060ms DBISAM
      101r 0.170ms BDE Paradox
  22. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_KEY2, c.T3_KEY, d.T4_SFLD1 FROM TABLE3 c, TABLE2 b, TABLE1 a, TABLE4 d WHERE (a.T1_KEY = b.T2_KEY1) AND (b.T2_FKEY1 = c.T3_KEY) AND (a.T1_SFLD1 = d.T4_KEY) AND (a.T1_KEY BETWEEN :P_START AND :P_STOP) AND (d.T4_KEY = "Smith")
    • 0r 0.070ms Apollo
      0r 0.040ms Advantage
      0r 0.020ms DBISAM
      0r 0.150ms BDE Paradox
  23. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_KEY2, c.T3_KEY, d.T4_SFLD1 FROM TABLE3 c, TABLE2 b, TABLE1 a, TABLE4 d WHERE (a.T1_KEY = b.T2_KEY1) AND (b.T2_FKEY1 = c.T3_KEY) AND (a.T1_SFLD1 = d.T4_KEY) AND (a.T1_KEY BETWEEN :P_START AND :P_STOP) AND (d.T4_KEY IN("Smith","Jones","Davies","Thompson"))
    • 0r 0.070ms Apollo
      0r 0.040ms Advantage
      0r 0.020ms DBISAM
      0r 0.180ms BDE Paradox
  24. SELECT a.T1_KEY, a.T1_SFLD1, a.T1_SFLD2, b.T2_KEY2, c.T3_KEY, d.T4_SFLD1, e.T5_SFLD1 FROM TABLE3 c, TABLE2 b, TABLE1 a, TABLE4 d, TABLE5 e WHERE (a.T1_KEY BETWEEN :P_START AND :P_STOP) AND (b.T2_FKEY1 = c.T3_KEY) AND (a.T1_KEY = b.T2_KEY1) AND (a.T1_SFLD1 = d.T4_KEY) AND (a.T1_SFLD2 = e.T5_KEY) AND (d.T4_KEY IN ("Smith","Jones","Davies","Thompson") AND c.T3_KEY LIKE "1%")
    • 0r 0.110ms Apollo
      0r 0.141ms Advantage
      0r 0.020ms DBISAM
      0r 0.180ms BDE Paradox
  25. SELECT a.T1_KEY, SUM(b.T2_KEY2) as SUMMARY FROM TABLE1 a, TABLE2 b WHERE (a.T1_KEY BETWEEN :P_START AND :P_STOP) AND (a.T1_KEY = b.T2_KEY1) GROUP BY a.T1_KEY HAVING (SUM(b.T2_KEY2) > 100000)
    • 0r 0.120ms Apollo
      0r 0.170ms Advantage
      0r 0.400ms DBISAM
      0r 0.110ms BDE Paradox

Test Settings

Iterations: 1
SQL Paramater P_START: 100
SQL Paramater P_STOP: 200
SQL Prepared: Yes
Table Apollo Speedmode: Yes
Table Exclusive: Yes
Table Controls Disabled: Yes
Table Recs inserted: 500
Table Traversed: 5
Table Range Start: D
Table Range End: M
Table Range End (2): N
Apollo Table Version: SDE 6.0.0.11, Apollo VCL 6.1.0.0, 6/15/2002
Apollo Query Version: ApolloQuery 6.1.0.0, 6/15/2002
Advantage Table Version: 6.11 (ACE 6.11a)
Advantage Query Version: 6.11 (ACE 6.11a)
Advantage CDX or Native: CDX
DBISAM Table Version: 3.12
DBISAM Query Version: 3.12


Disclaimer

These results will vary from machine to machine. The results presented here are intended to give customers a good indication of the performance they can expect with Apollo SQL 6.1. In conducting these tests, we have strived to maintain a high degree of fairness in using all competing products.


Apollo Database Engines