I have been scanning some blogs by different teams involved with SQLserver 2005.
Here is a short list:
- SQLserver 2005 Database engine tips
- SQLserver 2005 Query Optimizer
- SQLserver Query optimization – talking about SQL/TSQL optimization
- SQLserver storage Engine
There is a bit of cross linking happening so some articles are repeated on one or more blogs.
The database engine blog has an article about finding the top N worse SQL brought a (bemused) smile to my face. Finally SQLserver has views like Oracle, no more do you need to run SQL profiler 24×7 or some script which captures the SQL running every n secs to have an historical record of what has been running.
Guess this means I can start porting my Oracle scripts from using v$sql, v$sqlarea and in Oracle 10G R2 v$active_session_history to using sys.dm_exec_query_stats, sys.dm_exec_sql_text and sys.dm_exec_query_plan.
The trouble with plenty of relational databases has been that lack of exposure of the metadata/catalog of the database and the data within that catalog. Until recently plenty of the internal stuff in SQLserver had to be queried using various DBCC calls. Similarly, this is the same stuff that MySQL versions prior to 5 have with SHOW TABLE STATUS and SHOW FULL PROCESSLIST etc.
There is no nice way to see what the spread of data within a column is. It is good that these vendors are exposing this to the outside world via SQL rather than a tool with requires the output to be further parsed.