Hacker News new | ask | show | jobs
by NotSammyHagar 3252 days ago
i was there, from 1995 on. It was a real rewrite. sybase's optimizer was the biggest piece of shit ever. losing predicates, functions that called each other multiple times to rewrite the tree. We didn't have docs on the page formats, we have to reverse engineer it. The only piece not completely rewritten in the first release in 7.0 shipping in 1998 was the tree/algebraizer that was the input to the query processor. it was so messy and horrible even our team of champions couldn't do it in the first release.
2 comments

It would seem a lot of the protocol was kept though, no? IIRC there wasn't much diff between the mssql 6.5 protocol and mssql 7 protocol. I had been working with the freetds project in 1999/2000 and spent way too much time learning about some of that, although... it was 17 years ago and details are fading!
Most of the new stuff was on ADO and ODBC drivers, if I recall correctly.

I only made use of TDS C library, because there were some DML features not yet exposed via ADO and ODBC.

I think it was backwards compat at the least but i didn't work on that area.
> sybase's optimizer was the biggest piece of shit ever

Sybase even in the 11.5 days was horrible. Even with updated stats, it would drop off the cliff and you would suddenly have queries that took less than a second go to multiple minutes. It was the database where I had to force a lot of indexes. It really got confused with simple reference tables. Temporary tables were just plain problematic unless you did the trick of declaring them in the outer procedure and then calling another stored procedure to actually use the temp table.