Skip to main content

MS SQL Server Query Performance

Our company have a rather complex add-in to Project Server. For some time we have been struggling with performance issues and no matter how much we tuned the SQL procedures, after some time they would always become slow in a production environment. 

Today I came across a tool in SQL Server Management Studio which very easily can pinpoint which queries are running slow. In our case we discovered that one query was very slow and slowed all other queries.
This tool is called Activity Monitor and is build into most versions of Management Studio.
Note: Activity Monitor requires SysAdmin permissions to be used.


The tool is very simple to use. Simply open SQL Server Management Studio and connect to your database.

  Click on the Activity Monitor icon.

Here you will see a number of sections showing different information about the server.  Overview shows IO, wait time, etc. Processes shows information about which processes/connections is using the server. Resources Waits can tell you where a potential bottleneck is. Data File I/O is shows which databases is using a lot of IO.

However, the one I find really interesting is the "Recent Expensive Queries". This tells you which queries are running slowly. The database, average process time, etc.
In a production environment it was very easy to pinpoint where our problem was.
Only regret is, we did not know about this tool earlier.


Comments

Popular posts from this blog

Azure DevOps - Gantt Chart

It's been a while since my last post - in the past couple of weeks I have played around with some videos of topics I find interesting. One of these topics are a very cool way of displaying a Gantt Chart upon your Azure DevOps board's. Check it out here!

Sharepoint/Project Server App with javascript and Web Part

Getting Project Server code to run in a AppPart Today I tried to get project server CSOM/javascript code to run within an app part. This caused a lot of troubleshooting and guessing to get it to work. By simply adding the ps.js library to the app part page I kept getting an error. Library: <script type="text/javascript" src="/_layouts/15/ps.js"></script> Error: "executeordelayuntilscriptloaded is undefined" Then I tried to use ScriptLink to load the library but got the same error. <SharePoint:ScriptLink runat="server" Name="ps.js" Localizable="false" OnDemand="False" LoadAfterUI="True"></SharePoint:ScriptLink> The code I was trying to run was very simpel and worked fine if I added it to a normal aspx page.  $(document).ready(function () {     var projContext = PS.ProjectContext.get_current();       var projects = projContext.get_projects();     projContext.load(projects...

PowerShell results size unlimited/truncated - $FormatEnumerationLimit/Width

Ever experienced the problem where you run a Powershell command and you cannot see the whole result because the result is truncated. Problem: If you for example run the Test-SPsite command you might see something like the following: Site : SPSite Url=http://atlas/pwa Results : { SPSiteHealthResult Status=Passed RuleName="Conflicting Content Types" RuleId=befe203b-a8c0-48c2-b5f0-27c10f9e1622, SPSiteHealthResult Status=FailedWarning RuleName="Customized Files" RuleId=cd839b0d-9707-4950-8fac-f306cb920f6c, SPSiteHealthResult Status=Passed RuleName="Missing Galleries" RuleId=ee967197-ccbe-4c00-88e4-e6fab81145e1, SPSiteHealthResult Status=Passed RuleName="Missing Parent Content Types" RuleId=a9a6769f-7289-4b9f-ae7f-5db4b997d284, SPSiteHealthResult Status=FailedError RuleName="Missing Site Templates" RuleId=5258ccf5-e7d6-4df7-b8ae-12fcc0513ebd, ...