Hacker News new | ask | show | jobs
by jdright 3539 days ago
Nice, downvoted for what? facts?

This is a fact, I work with this thing for about 5 years (this is my karma) and there is not a single day where this doesn't cause a problem or makes somebody to lose 3-5 hours of work.

We have about 3000 people and this is overkill for our needs.

You know what the reason? Because people say that it is awesome, then a naive engineer decide to use it basically due to this propaganda in a LOCAL but central piece of our pipeline (something that SQLite would fit perfectly!) and then everything after becomes a problem.

Now we're stuck with it to day and nobody can change without a lot of work and trouble. I'm basically one of the people responsible in a strike team to fix SQL server issues in production.

3 comments

My team is managing around 500 production instances of SQL Server and few times that of non production environments. Various clients various configurations. SQL Server - when configured properly - isn't generally causing any problems. If it is, it's pretty easy to troubleshoot thanks to system views which allow you to see what is happening in sql engine internals with plenty of detail. Try this with Postgres. All our engineers working with both MSSQL and PG/MSSQL praise MSSQL for this visibility into system internals. Reboots? You can work around those. 2 hours for an upgrade? Boy what are you running this MMSQL on? Should take 20 min tops, and with cluster it's zero downtime (well, few seconds maybe). Express is capped at 10GB. Yes. For user databases (a hint). So sure, PG stack may be better for some uses, but MSSQL is simply too good overall to just dismiss it the way you're doing it. Also, did someone mention excellent BI stack which is included in price?
I have to say, I work for a bulge bracket bank ran entirely (well, mostly) on MSSQL 2008/2012, and I don't think I've ever had any issues with it, apart from the one set of DBs that someone decided to turn into a backend for an object store that seemingly didn't know anything about database design.
Yes, but as I said in my comment our use case is nothing like a Bank. See, using SQLExpress to build a desktop LOCAL database doesn't look like a smart move.
I suspect the downvotes (I didn't, but I can see why someone would) are related to the impression you're giving that this is useless in its entirety because it isn't something that is perfect for you.

     > But you need to reboot on install, updates and uninstall,   
this may be true, but can be mitigated with planning. MS's patch cycle is some predicatable multiple of "weekly" (I think it's either every thursday or every second thursday, whatever)

Our tech team schedules one member to work from midnight to 2 AM on "patch day"

As an alternative you could architect for rolling updates across load-balanced systems.

I'm not personally fussed about the drawbacks either way, the mitigation is easily planned for. It becomes a part of the cost-benefit analysis.

Now consider the world of containers, startup is actually ridiculously quick. In addition they need to be patched far less frequently. They have less "cruft" from the get go.

I'd recommend this entire video, but this graph highlights some of the advantages: https://youtu.be/XVtsw-uzovA?t=500

70% fewer reboots required on containers. 90% fewer critical patches.

     > all these operations that can take up to two hours for no reason. 
the workflow can be: spin up the newly pathed server while the old one is running, then "flip the switch" so new requests point to the patched machine.

They both point to the same physical files. When the old machine finishes its current cycle, it shuts down gracefully.

Fully mitigated by a container workflow.

     >  And the express edition is capped at 10gb db. 
yes, but this is not actually something that needs to be all things to all people, or even something specifically for you. It still has value.

The express edition is intended to be used by developers and "small data" applications.

I don't see what the express edition license is from this link, but I'm sure it is expressly not intended to be an enterprise database.

If I were downvoting you, it would likely be because you're throwing the baby out with the bathwater on this.

Once we get SQLSERVER running in containers, there's nothing to say we can't swap out to the enterprise edition virtually seamlessly.

     >  So, no, SQL server is nothing better than alternatives at least if you aren't in the big ones and DBA is your job.
Again, you're coming across as crapping on "a good thing" because it isn't the perfect thing for you. That comes across as petulant, selfish, and irrational ... all of which tend to be features that the Hacker News community prides itself on edit: discouraging.

So, with respect, I'd suggest you're not getting downvoted for "facts" but for "tone"

Even your follow up comes across as, I almost want to say "entitled"

I'm sorry, I don't want to start a flame war with you, but I'm letting you know what my "read" of your post comes across as.

If you're offended by it I'm happy to delete.

Thanks for your reply.

Yes, but we should be able to share personal experiences in comments doesn't? Or else how can we share each other points of view?

I still fail to see what is wrong with my tone in that wording, may be a language issue as English is my third language.

By that I mean mostly: To our experience, there are better alternatives if you're not a DBA as full day job or Google, Facebook, Microsoft, etc.

And, besides that, even with container and schedule and procedures, I fail to see how rebooting still something acceptable now-days. This is highly counter productive.

Absoloutely! We should 100% be able to discuss issues and our experiences.

English as a third language would explain the "tone" issue as the "nuance" (or subtlety) of you point would likely be harder to communicate.

I think acknowledging the good parts before delivering constructive criticism might help, but then, internet voting sites are also tremendously fickle and difficult to predict.

I think this post above does manage to communicate your point without sounding as negative.

In my case, I work at an agency - so our choice of database is in some ways driven by more than just the best tool for the job, but one that inspires our clients' trust AND is cost effective to work with. MSSQL does an excellent job of "inspiring trust" but it is also amazingly easy to develop for.

Our clients aren't worried about "overkill" or buying more database than they need. In the scope of a multi-million dollar project, the overpowered database is worth the piece of mind.

None of us on this end are "married" to SQL SERVER, but since we already own the license for one, and offer shared hosting of the database server or give a pass-through-cost for a dedicated server, it seems like a perfectly reasonable choice.

But we've both got our perspective and yours offers a good perspective. "As a DBA, SQLSERVER is often overkill" but if the client prioritises stability, recover-ability, maintainability, over cost (a "one time cost" of roughly 25% of one employee's salary) & two hours of downtime a week it's not such a bad choice.