Log in

No account? Create an account

Previous Entry | Next Entry

MS SQL vs PostgreSQL Round 1

Time to install server and all updates: MSSQL, 4 hours. PostgreSQL, 10 minutes.

Time to create first database: MSSQL, 10 minutes, PostgreSQL, 10 seconds.

Time to connect to first database: MSSQL, 1 hour, PostgreSQL, 10 seconds.

Time spent adjusting firewall rules: MSSQL, 30 minutes. PostgreSQL, 5 minutes.

Time spent figuring out how to read the middle part of a merged field separated with a delimiter: MSSQL, 4 hours. PostgreSQL, 1 minute.

Time to restart service after configuration changes: MSSQL, 1 minute, PostgreSQL, 1 second.

Ease of finding documentation: MSSQL, as terrible as trying to read a book online without hyperlinks, PostgreSQL, well-made online documentation with an interactive updates section.

Score: MSSQL, 0, PostgreSQL, 7. Looks like a win for open source.


( 6 comments — Leave a comment )
Dec. 17th, 2004 03:19 pm (UTC)
No offense, but that reflects more on your usage of MSSQL than on MSSQL itself. I'm all for both open source and bashing MS, but MSSQL is a remarkably well put together product, and there's also an absolutely free version for the masses. I can do everything you said in MSSQL at least as fast as you can do it in PostgreSQL, and the documentation on MSSQL is also superb...

In summary, ordinarily I agree with your MS-bashing, but the line's drawn here, bucko.
Dec. 17th, 2004 09:12 pm (UTC)
This is SQL Server 2000. It's unbelievably slow . . . On a database with 100,000 records, it can take tens of seconds to search a field. Postgresql is doing the same thing on the same machine with no indexes in two seconds.

There's no function to split a string.

There's no documentation in the package. Not even a URL.

The administration program takes forever to start and connect.

There's no logging to speak of when something goes wrong.

The osql tool is a joke compared to PostgreSQL 7 or 8's.

I'm honestly not finding much to love about SQL server. And I even tried!
Dec. 17th, 2004 09:39 pm (UTC)
Your database is fucked then. I run treestats off MSSQL, and have dbs with tens of millions of rows that are searched and joined in hundredths of a second. Don't know what to tell you there.

Splitting a string should be a job for the app reading the data, that has no place in the database language. MSSQL conforms to the SQL spec, and that doesn't have any advanced string splitting like that. If you wanted string splitting though, i'm sure there's a stored procedure to do it for you.

Documentation is all with enterprise manager. Hit f1, it's all there. The admin program is instantaneous... I think you did something wrong. There's full logging of everything, and it even has rollbacks, which mysql doesn't have (i don't know about postgre.) No idea what osql is.
Dec. 18th, 2004 11:59 am (UTC)
Heh. Done wrong, like run setup.exe and then run all the patches? Beh.

Enterprise Manager. So that's where they hide the docs.

And it's slow because there's no indexes. It should be able to deal, though. It's not that much data!

Splitting a string is so totally the realm of the database... how else would you do it when writing a report? CREATE TABLE new AS SELECT string_split(field1, '*', 1) as Partnum, string_split(field2, '*', 2) as MFGCode... Why should you have to write something in another language that's not included with SQL Server for that?

And a stored procedure is so totally not neccesary.
Dec. 17th, 2004 03:41 pm (UTC)
Don't forget "S-Q-L" vs. "sequel".
Dec. 17th, 2004 09:14 pm (UTC)
Gotta love that. It's not M. S., either, it's "Ms. Windows".
( 6 comments — Leave a comment )