Alpha Software is focused on enabling developers to create robust, data-driven business applications that run on any PC, Tablet or Smartphone in the fastest, most efficient and cost-effective manner possible.

Share this blog:

Thursday, September 20, 2007

SQL performance: Alpha Five vs. Filemaker 9 benchmarks

Alpha Five Version 8 sorts over 1 million records more than 600 times faster than Filemaker 9.

If database performance matters to you, this is a blog post you won't want to miss.

You know the old saying that the best laid plans always go awry? Well they certainly did. A few weeks ago, Richard promised a continuation of the Alpha Five vs. Filemaker comparison.

So he asked me to set up a series of tests to pin Alpha Five Version 8 against Filemaker 9. It took a bit longer than expected because (besides the fact that we have a million things going on at Alpha Software right now) we wanted to make sure the tests were solid. And I believe the facts I am about to present to you are solid as rock.

When FileMaker 9 was released this summer, and described as the "Most Significant Upgrade" in the history of their company, we were, as a competitor, naturally curious to see what they were up to. We were especially taken with their strong claims in the area of SQL support.

To wit:

The new version also offers breakthrough, easy-to-use tools so FileMaker users and workgroups easily can connect to the world of company and Web data residing in external SQL data sources: MySQL, Oracle SQL, and Microsoft SQL Server.

Their original PR is here.

To investigate this claim, we decided to run some tests. The results were stunning, to put it mildly. Let's start with sorting.

When you build an application in Alpha Five in a SQL environment, and you use one of the Web component builders, Alpha Five is smart enough to let the back-end data source do the work for you.

And to a degree, FileMaker is smart, too, when it comes to searching for particular records. But when it comes to sorting records (for some unfathomable reason) FileMaker downloads ALL of the records to the client (i.e. the local machine). Then the local FileMaker database performs the sort.

It's as if FileMaker took the server out of client-server computing, and replaced it with an invention dubbed client-client computing. Clearly this is the wrong approach, and performance and scalability suffer considerably.

This, of course, is not an issue with tiny databases. But when people are connecting to Microsoft SQL Server, MySQL, Oracle, etc., they're typically working with thousands to millions of records.

We performed three benchmarks with FileMaker Pro 9 Advanced and Alpha Five Version 8.

Benchmark I:
We connected to a SQL Server database that contained zip codes, cities, and states for 42,000 locations in the United States. We then built a FileMaker form and an Alpha Five Web form that connected to this source. Both programs were then used to sort the records by city name. The processing took Alpha Five two seconds, and took FileMaker more than 15 seconds. That makes Alpha over seven times faster.

Benchmark II:
We sorted the same data set by the two-character state field. This should be an easier, higher-performing test for both databases. Indeed, Alpha Five finished the sort in just 1.33 seconds. It took FileMaker 20.66 seconds. Alpha comes out even faster --15.5 times faster.

I recorded these benchmark tests in Camtasia Studio, so I could perform exact measurements by playing back the video in slow motion. If you'd like to see the video, contact us at Marketing@AlphaSoftware.com for a look.

By dividing the number of records processed by the number of seconds it took to process, I was able to calculate and graph the results in terms of records processed by second. Check out the data:



Benchmark III:
Just for fun, I decided to run a third benchmark to see what would happen if we tried to process over 1 million records. I used our Web traffic logs for this, which are quite large.

I asked both FMP9 and A5V8 to sort by visitor ID, a 10-digit number. It took Alpha Five 8.86 seconds to process over 1 million records. FileMaker required more than an hour and a half; 5,400 seconds. That's over 600 times longer than Alpha Five.



In Alpha, the number of records per second actually increased when dealing with a larger set of records. In previous tests with the smaller data set, Alpha Five was processing 32,000 records per second. In this test with over 1 million records, Alpha processed 132,000 records per second.

These results illustrate fundamental architectural, design, and performance differences between the two popular database platforms. FileMaker is a wonderful product, and we respect them as a competitor, as we do Microsoft and many other desktop database vendors.

While Alpha Five is every bit as easy to use for beginners as FileMaker, the two products are not in the same league when it comes to tackling robust business requirements. FileMaker doesn't scale, in part because of its odd "client-client" architecture. Alpha Five scales, in part because it is a true client-server platform.

Now, in fairness to FileMaker, their technical documentation (unlike their press release) does offer a caveat:

It is important to note that "increasing the potential size and scalability of FileMaker Pro based solutions" is not an explicit design goal of the ESS (External SQL Sources) feature set. It may be possible to use ESS in that way, but the feature set is designed to favor transparency and ease of use, not raw speed. So it is probably not wise to expect that a good use of ESS would be to replace your largest and most complex FileMaker Pro based tables with SQL-based tables. This might work perfectly well, and might even solve certain problems for certain systems, but it would be wise to proceed with caution and to remember that the feature designers were trying to achieve "smooth, FileMaker Pro-like integration" not "bigger, faster FileMaker Pro-based systems." ESS is not designed as a means to allow a FileMaker Pro solution to scale beyond the limits of a purely FileMaker Pro based solution. The ESS feature set is designed to emphasize the seamless integration of SQL-based tables into a FileMaker Pro solution, rather than to take specific advantage of the high-scalability features of SQL back ends.


Clearly, the marketing and tech teams at FileMaker are not on the same page. The tech guys and gals are straight with developers, but the marketers are overpromising on FileMaker Pro 9's SQL abilities.

But that's not even the point. The point is, with FileMaker, SQL support appears to be a bolted-on afterthought. With Alpha Five, it's integral to the platform. And it shows, with far better runtime performance that developers, users, and clients alike will appreciate.

Now, perhaps FileMaker's abysmal SQL sorting performance is just the result of a bad design decision, or even a bug. I, for the life of me, can't figure out why they would design it to behave as a "client-client" application instead of client-server.

Then again, maybe there is some internal limitation that prevents FileMaker from taking full advantage of SQL server processing. Regardless, in its current incarnation, the SQL sorting performance is, put plainly, awful.

5 comments:

Anonymous said...

If your brake lines are cut tomorrow, Dave, we'll know who did it.

Good article!

Hope you and the Alpha crew are doing well.

Doug Ross

Martin Fairbairn said...

Dave, I believe that the Jet 4 engine in Access does the same - Even in Access 2007. At least, if they have changed that, they didn't tell anyone. Incomprehensible!

mysqlizer said...

filemaker stinks. it's a toy. you know it. i know it. they know it. and these tests show it.

Alex said...

FM9 makes it possible to combine columns from the internal db engine and external sql datasource in a same table. I imagine that in order to sort data residing in two disparate locations, it needs to be merged first - which is what FM9 appears to be doing here...

Taylor said...

The information provided is accurate and true, but possibly a wee bit misleading. First, FileMaker is not natively SQL and Alpha 5 is and this comparison is solely on SQL data. Secondly, of the connection with SQL, FileMaker had a choice of supporting its standard search capabilities or using SQL search rules, which are not the same. To remain compatible with the FileMaker search process, the only way to do it is to bring everything into FileMaker and let FileMaker apply the search criteria. Remember, FileMaker's goal is more to keep things simple than to be fully SQL compliant. Keep in mind, this is the weakest feature of FileMaker's connection with SQL's due to the search tools being different. So you are comparing FileMaker at its worst against something very native to Alpha 5 because Alpha 5 only does SQL. I think this gave the impression that FileMaker is always much slower than Alpha 5 and that is not true unless your criteria is just the SQL searches. If you compare FileMaker native searches against an Alpha 5 native SQL search, they are much more similar in speed even though we all know SQL is actually a little faster. What this does point out is that if FileMaker is not robust enough for your needs, then it making connections to external SQL databases will not increase FileMaker capabilities. If you really need the bigger power of SQL, then you need to move to a real client-server SQL platform.

Related Posts Plugin for WordPress, Blogger...