Words-per-minute is a metric that matters for developers, right? :)
Monthly Archives: December 2008
Taking a break
The past week is probably the longest I have gone without booting up a computer. I was traveling, visiting friends and family, and celebrating Christmas. But I was also sitting on the couch watching TV doing nothing.
One thing that I realized is breaks from work are a good thing, especially when you love what you do. I love software development, so I tend to do it at work, as well as at home. Over time, it can wear a person out.
After taking an extended break, I feel re-energized. It’s hard to believe how much I missed work and wanted to get back today.
My advice to everyone is to take a break every now and again. It helps.
Showing environment variables in Powershell
For all the Powershell noobs out there, including myself. Here is how to retrieve all the environment variables.
get-item -path env:*
For more info, check out this Technet article.
Adapting and Changing
I wrote another post on the Mailtrust blog. Check it out.
For anyone developing a web or desktop app, there are a lot of challenges in UI design. This post tried to show how the Control Panel team dealt with some of those challenges and are constantly evolving into a better application.
Quick and Dirty SQL Server Slow Query Log
Optimizing SQL server can be a daunting task. There is a fairly large learning curve, and knowing where to start can be a problem. Over the weekend, I read over a great article on query optimization for SQL Server and found the greatest query ever.
SELECT TOP 20 SUBSTRING(qt.text, (qs.statement_start_offset/2)+1, ((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(qt.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2)+1), qs.execution_count, qs.total_logical_reads, qs.last_logical_reads, qs.min_logical_reads, qs.max_logical_reads, qs.total_elapsed_time, qs.last_elapsed_time, qs.min_elapsed_time, qs.max_elapsed_time, qs.last_execution_time, qp.query_plan FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp WHERE qt.encrypted=0 ORDER BY qs.total_logical_reads DESC
This query will list the top 20 most read intensive queries. What is great is it is based on total reads, so it is a quick and dirty way to find the worst queries in your system. Eliminating the top few queries on this list will give you the best bang for your buck.