With so many DBMS products out there, what makes SQL Anywhere stand out? Are there any exclusive features that SQL Anywhere has to offer? |
Another major feature of SQL Anywhere is the fact so many features are built-in to the database engine, with DDL to match, rather than implemented as external applications. External applications have to go through an interface to get at database data, and by definition the sum total will be fatter and slower: fatter because the external application must include interface logic that is not required if the feature was implemented inside the engine, and slower because no matter how fast an interface is, it is slower than no interface at all. For example:
Perhaps the most extreme example: SQL Anywhere has a built-in HTTP server. Does it work? You bet! iAnywhere Solutions eats its own dog food... iAnywhere Solutions built the SQL Anywhere Monitor using the engine's built-in HTTP server. And the documentation website uses the built-in HTTP server: DocCommentXchange 2.0 Rocks! This is not just an abstract benefit: Because these features are built-in, you can get at them easily from code you write that also runs inside the engine: your own stored procedures, triggers, events and web services. With other DBMS software, if you want to write a stored procedure that uses a feature implemented externally, you really face an uphill battle... shell out to the OS, anyone? And now on to another feature: Watcom SQL syntax, the favored dialect inside SQL Anywhere, is cleaner than, say Transact SQL [barf!]. Oracle's PL/SQL has its fans, it's certainly powerful, but AFAIK it is unique in all the world. Don't get me started on IBM DB2... it has the most feeble stored procedure SQL syntax on the planet. True story: I worked on a huge conversion from SQL Anywhere to DB2, and the folks on the DB2 side had enormous difficulties making things work (like nested triggers). When the DB2 code finally compiled, it just would not run, no matter how many gigabytes of RAM you threw at the engine. IBM Labs got involved, finally said "not yet available". The project was a failure: DB2 was abandoned, SQL Anywhere lived on (smells like success, but that's just my bias talking). I've looked at MySQL, really tried, failed... must be stupid... the sum total of my effort was this blog posting: Unpublished MySQL FAQ. Sadly, that is the most popular thing I've ever written... I certainly could make more money as a MySQL consultant, or Oracle, or MSS, or [kak] DB2, anything but SQL Anywhere. That way lies poverty. I did self-censor this answer: I removed mention of ANSI compatibility. I regularly offend important people, like respected ANSI committee members, by ranting about ANSI idiocies. Plus, I don't know nor do I care what is and what isn't compatible... SO, I will let other people talk about SQL Anywhere versus Other Stuff with respect to ANSI compatibility. To me, it is mostly an RFC checkpoint. Ooops, that should be "RFP checkpoint" or "RFQ checkpoint" as in Request For Proposal/Quotation: the pointy-haired boss reads about something in a magazine and then insists it is a "must-have feature" when evaluating vendor proposals, even though Dilbert, Wally, Alice and Asok all know it is ridiculous. |
Excellent support has to be a major reason. On the rare occasions that we have had serious issues, we have been able to get a lot of good quality support quickly, and new builds of the software etc. This is terribly important when you are the jam in the sandwich between the customer and the RDMS vendor. We are a very small customer of iAnywhere's and I really don't feel we would get support like that from the alternative suppliers. |
One of the important reasons that SQL Anywhere works so well as an embedded database with an application is our focus on self-managing features, that permit the server to function near-optimally with very little human or programmatic intervention. Here are a few examples of the self-managing database technology that is included in the server:
Two short papers [1,2] available on my blog explain these features in detail.
Many of the features Ivan and Glenn speak of are not obvious at all, to the average SQL Anywhere administrator or developer, unless they have experience with other database software... and then it's "wow, this is so easy, how can it possible be this easy?" The closest analogy I can think of is the introduction of cellular phones; new customers did not fully appreciate the revolution in their hands, and would complain about spotty coverage etc. Former mobile phone users, however, thought cellular was the answer to every dream: ease of use, reliability, flexibility, robustness and feature-set. I should have said "Former mobile radio telephone users", and anyone under 30 probably still doesn't know what I'm talking about unless they watch old movies. See en.wikipedia.org/wiki/Mobile_radio_telephone |
I have to agree with Justin. It's definitely the support. When issues come up we can deal directly with people that know. Which means we can support our customers better. |
This one's going to sound strange but the fact that, for all intents and purposes, NOBODY has heard of SQL Anywhere gives you a competitive advantage if you use it. It is marketed by stealth, on purpose... if you don't believe me, do this Google search: stealth kleisath All sorts of companies, large and small and REALLY LARGE, keep the fact they use SQL Anywhere secret; I can think of companies like F-d-x, C-s-o, I-tu-t and so on. Some of them keep the secret for competitive reasons ("if I use SQL Anywhere, and the other guy uses Oracle, he'll be spending more money and going to market late"). Some people keep it secret because they don't want to stand out, like someone at a cocktail party in San Francisco saying they voted Republican... if they say they voted for SQL Server or MySQL or Obama, they're more likely to fit in. I realize this doesn't answer your question, but I'm sure that will come shortly. 1
I am so tempted to self-censor, remove the joke about Republicans and Obama... but I am leaving it in as an example of protected free speech. That's not to say that discussions devoted to politics or religion are encouraged, they are not... no Rush-Limbaugh-versus-Daily-Kos arguments, please! |
Unique to SQL Anywhere, at least as far as I know: The database file is binary-compatible across machine architectures and operating systems; e.g., Windows to Linux to Solaris to Windows Mobile, etc., little-endian to big-endian and back. So you want to scale up or down? Stop engine on machine/OS #1, copy the file, start engine on machine/OS #2. |
I would simply state "The product continues to expand in the right direction." This is a really subjective experience: In my years of database development with SQL Anywhere from V 5.5 onwards, there have been several situations where I thought "I would/could really need this feature", and it came up just in time. Not in all cases, of course, but often enough to get the feeling that there's a really senseful interaction between Product Management and Development. And in cases I would like any enhancements, I feel ease to post them to the "product futures" news group. Though we're no big customer we know our requirements get attention, and in several cases have led to product enhancements (well, at least that's my strong belief...). A further advantage is the NNTP community - it's really a pleasure (and a honour) to get in contact with the folks who build the product. I would not expect anything comparable from the big database companies. I guess I would not even try to expect:) |
only SQLAnywhere, stored procedure behave as TABLE so that integrate with other table Am other database support it ? (Oracle, MS SQLSrv, MySQL, PostGreSQL tested) |