Yeah so I missed the boat by a
few days week. That’s pretty much my M.O. This month’s T-SQL Tuesday #100 is hosted by the author of
sp_WhoIsActive and the creator of T-SQL Tuesday himself, the legendary, the incomparable, Adam Machanic.
The Year is 2026
Despite IT’s best efforts to kill the relational database, it’s still alive and kicking. Sure, it’s mostly in the cloud, and we’ve largely solved the problems of scalability, availability, and “traditional” maintenance, but the DBA still plays a critical role in the IT organization. He/she is more of an architect and an automator, someone who understands the business and development needs as they relate to data — its storage, availability, security, and performance — and can leverage cohesive data platform technologies to provide those services and meet those needs. But the fundamental issue of data quality still haunts even the best environments, because at the end of the day, when you rely on a human to enter text into a field, you’re gonna get
garbage inconsistency. Thus, we’re still fighting that fight, if only to appease our “data scientists” and machine-learning models so that they stop whining about it.
SQL Server itself has evolved. After realizing that it was pretty silly to bolt-on a hacky “graph db” component to what is, at its core, a relational engine, MS broke that off into its own product, “Microsoft GraphDB Server”. But the good news is, SQL & GraphDB talk to each other seamlessly; in fact all of the data-platform products integrate and inter-operate much more smoothly than 10 years ago.
We finally have a single unified CE (Cardinality Estimator), which is intelligent enough to know which paths/plans to use for a given query, so we don’t need to mess with those awful trace-flags anymore. Indexes and Statistics are all but self-maintaining; the DBA rarely has to step in and mess with them. Part of the reason for this is that SQL Server yells at you if you try to make a GUID the clustering-key, or other such nonsense. =D
Columnstore is everywhere; traditional row-store (b-tree) indexes barely exist. JSON storage & indexing inside SQL Server is much better, but it’s still preferable to use a document-store DB if you can. Hierarchical structures (not to be confused with graphs) are easily implemented and supported, without having to resort to old hacky models. And user-defined functions (all types) perform nearly on-par with stored procedures.
sp_who2 with the code from
sp_WhoIsActive, and made SSMS Activity Monitor suck less & actually be semi-useful as a basic first-response monitor. Profiler was officially killed off, and XEvents has come into general widespread usage — largely because MS finally dedicated some hard-core dev time to improving its GUI & making it much easier to use. Native Intellisense finally works, and works well, for all but the most obscure/weird things, and is much less chatty in terms of network traffic to/from the server.
And finally. FINALLY. Each database has its own TempDB.