Category Archives: Meme Monday

Meme Tuesday – Improvements to SQL Server

Why So Serious?

Yesterday’s funny post was about Meme Monday.

Today’s post is the sequel: Meme Tuesday. This is a more serious post.

 

 

Here’s a list of features and changes I wish Microsoft would make:

  • Dynamic query re-optimization. If a query is doing badly, have the SQL engine detect that and re-optimized it on the fly for better performance.
  • Give the MVPs even more influence over which SQL Server products are developed.
  • Give DBAs the ability to create filegroups in tempdb, and assign different tempdb usages to each. I’d love to have user temp tables, sorts, hashes, RCSI data, and rollback data be separated, so I can tune them separately.
  • Make Enterprise features available in Standard edition. Table compression and backup compression are at the top of my list.
  • Object-level and index-level backups and restores. I would love to choose which of my nonclustered indexes to back up, because I don’t need most of them in emergencies.
  • Let companies build their own PDW instances. Very few companies can afford the multi-million dollar price tag attached to a PDW appliance. They’ll usually pay somebody to change the code rather than
  • Add built-in support for code libraries.
  • Change your SQL Server 2012 licensing scheme to be roughly on par with the old prices. The current increase in prices is going to encourage adoption of NoSQL and open-source alternatives.

Meme Monday – Presents from Microsoft

It is Meme Monday once again. The question this time is, “What should Microsoft leave under my tree this year?”

I want the ability to control my SQL Server databases using a Kinect. For example:

Kill that SPID! Kill it!

Hold a Knife = Kill a spid.

Point at the screen = sp_who2

Point and speak with a Boston accent = sp_whoIsActive

Kill a Kitten = Shrink a Database

Frown = Grant Permissions

Smile = Revoke Permission

Kick = Punish the developer who wrote LINQ on your production DB

Hold up a math book = Update Statistics

Meme Monday: I got 99 problems, but disks ain’t one

“I got 99 problems, but a disk ain’t one”

Re: Tom LaRock (b / t)

What are nine (9) problems that I have encountered, that have nothing to do with disks?

  1. Query plans based on out of date statistics. Auto-update-stats is useless for large tables. I can insert 35 million rows and auto update stats will not do anything, for a 200 million row table. Then the query optimizer thinks that those rows do not exist.
  2. Using linked servers to move data around. The overhead of MSDTC makes data movement via linked servers an exercise in pain.
  3. Bad table design. GUIDs and nvarchar(50) columns should not be in primary keys if possible. Especially not in composite primary keys. Querying and updating the table afterwards is very slow.
  4. People that use object-to-relational mappers (nHibernate, LINQ, etc) without knowing how to troubleshoot them. Then they blame the DB for poor performance, or for not ‘dealing well’ with their shiny new tool.
  5. Applications that use the wrong isolation level. Don’t use serializable by default.
  6. People who release broken code. Code is broken when it cannot roll back, does not have tests, will never scale, has insufficient error checking, or just plain doesn’t parse.
  7. Using databases as a hammer.
    SQL! Hammer Time!

    SQL Time != Hammer Time

    If you’re running a high-traffic website and using just ASP.NET and a database, you’re in trouble. Caching, XML, flat files, MSMQ, SSIS…they all have their place.

  8. Insufficient troubleshooting skills. Similar to #4, anyone who has to support production systems must know common troubleshooting techniques. Root cause analysis, tracing errors through different systems, asking what has changed…these are all basic skills that aren’t usually taught well.
  9. People who focus on features and never stability.

    Introducing Magnitude, er, Magneto, of Sin

    This is one of my banes. I usually hear a combination of, “We’re just making a prototype now, we’ll clean it up later” and “Oh, that’s already working in production, it doesn’t need our attention”. Those two excuses, paired together, hide a magnitude of sins. The result can be a shoddy system design held together using hacks, duct tape, and user workarounds.

Tag:

Kendra Little (b / t)
Mike Decuir (b / t)
Argenis Fernandez (b / t)