Four Things I Have Learned About Sybase

April 1, 2004 5:12 PM

Four things I have learned about Sybase Adaptive Server Enterprise in the last two weeks:

  1. It (or its JDBC driver) really doesn't like you putting 'null' in a CLOB column.
  2. It (or its JDBC driver or it's Hibernate dialect) is far less forgiving than many other databases of you using java.util.Date in queries in place of the java.sql.* equivalent
  3. It is far less forgiving than many other databases of you referring to a column in an order-by clause in lower-case when you used upper-case in the select part
  4. It seems to be designed to keep certified Sybase DBAs in full employment, and not run at all without one around to hold its hand. For example, rather than defaulting to grabbing disk space when it needs it like most sane databases, Sybase requires that you learn how to manually assign static chunks of disk to the database before you can create a database bigger than 2Mb.

4 Comments

Point 1 - that will be a bug in the driver then.

Point 2 - That will be a feature request for the JDBC driver then, that's what translates between Java types and the database data types.

Point 3 - This is probably because object names are case sensitive, which can bite one rather hard. It's the same in SQL Server but not in Oracle, DB2 or any other *sensible* database ;-)

Point 4 - Try DB2.

In fact, if you want to really slow down your whole development, testing and deployment process I can't recommend DB2 UDB highly enough. You can't change any database object (with a few minor exceptions) and whenever you want to change your schema you are forced into the copy data, drop table, recreate table, copy data back pattern.

Sybase is much nicer to the developer in comparison but doesn't really have the revenue base to improve its overall usability to late twentieth century levels like, say, Oracle.

Heh. I actually worked at an IBM shop for three years. I've done DB2 on Linux, Windows and AS/400 and lived to tell the tale.

My favourite DB2 gotcha was the fact that its Windows incarnation prior to v7 only supported eight-character usernames. As such, if you installed it as, say, the standard Windows Administrator user (thirteen characters), it would refuse to function, and require a full reinstall.

That said, I didn't have any more problems with schema-migration under DB2 than I've had with any other database.

I used to work for a sybase partner selling solutions based on IQ-Multiplex (before that was its name) and ASE.

We very quickly learned that ASE (what most people call sybase) was not worth the hassle, and consequently all our clients had ASA (SQL Anywhere) installed instead. It's cheaper, easier to use and pretty much self administering. For something like a confluence setup it's pretty much perfect.

Most of this probably has to do with the fact that Sybase bought it from someone else.........

Re (4): Since Sybase has such a massive penetration into the Financial industry, where full time DBAs are the norm, Sybase doesn't have that much incentive to improve their GUI admin tools or add features that reduce need for DBAs. At the place where I work (which has the largest number of Sybase instances in the world) devs are not given DBO access and nearly all changes are done by DBAs.

Comments are no longer being accepted for this blog entry. If you really want to make your voice heard, you can always email me.

Previously: Three Minor Velocity Peeves

Next: Penny Arcade's Greater Internet Fuckwad Theory