My finger of suspicion is pointing at SQL because the links are: An ASP.NET
Web Forms at the top -> which calls a Windows Service in the middle ->
which runs the SQL queries at the bottom. Both the app and service are
rather "thin" and have a good track record for the last 15 years, which
leaves the suspect. I did see some SQL timeout exceptions in the service
log.

However, spying on the GC is a good idea anyway. I'll do a practice run to
remember how it works, so when they next report a slow-down I can hop in
and have a look.

*Greg*

On Mon, 31 Jul 2023 at 10:34, David Kean <david.k...@microsoft.com> wrote:

> How confident are you that it’s a SQL query? Unpredictable “stalls” smells
> like garbage collection, likely a Gen2 blocking. A dump during the stall or
> better ETL trace using PerfView will quickly rule that out.
>
>
>
> *From:* Dr Greg Low via ozdotnet <ozdotnet@ozdotnet.com>
> *Sent:* Monday, July 31, 2023 10:27 AM
> *To:* 'ozDotNet' <ozdotnet@ozdotnet.com>
> *Cc:* 'Greg Keogh' <gfke...@gmail.com>; Greg Low <g...@sqldownunder.com>
> *Subject:* RE: SQL Server Performance monitoring
>
>
>
> Hi Greg,
>
>
>
> The performance trace procedures in SDU Tools have duration as one of the
> summaries provided.
>
>
>
> Duration is a curious one though. In so many cases, it's meaningless, yet
> it's the one that the Microsoft tooling often worries about most.
>
>
>
> For example, if you have a query that executes, and then the client takes
> forever to retrieve the rowset that was produced (e.g. by reading it a row
> at a time and doing other things in between each row), the duration shows
> the entire time. But it could be a very light query.
>
>
>
> In your case though, that might well help, particularly if you find
> queries with long durations, but few pages read. That means that the query
> can't get its work done for some reason. Whenever you have that, it's
> blocked waiting on something else.
>
>
>
> If you can catch it while it's blocked, even Activity Monitor in SSMS can
> show you what's at the head of a blocking chain. sp_whoisactive (from Adam
> Machanic) will do a better job of that again. But that only helps if you
> can catch it while it's happening. That's why tracing usually helps.
>
>
>
> The other thing I've done in the past, if it becomes very hard to find, is
> to just leave a proc running in the background that every 5, 10, or 20
> seconds, finds any process that's at the head of a blocking chain, and
> writes details of it out to a table. That's more work, but it shows clearly
> what the regular culprits are. The "Show Current Blocking" code in SDU
> Tools should provide an example to help get something like that going.
>
>
>
> Regards,
>
>
>
> Greg
>
>
>
> Dr Greg Low
>
>
>
> 1300SQLSQL (1300 775 775) office | +61 419201410 mobile
>
> SQL Down Under | Web: https://sqldownunder.com | About Greg:
> https://about.me/greg.low
>
>
>
> *From:* Greg Keogh via ozdotnet <ozdotnet@ozdotnet.com>
> *Sent:* Monday, July 31, 2023 10:15 AM
> *To:* ozDotNet <ozdotnet@ozdotnet.com>
> *Cc:* Greg Keogh <gfke...@gmail.com>
> *Subject:* SQL Server Performance monitoring
>
>
>
> Folks,
>
>
>
> We have a problem on a live server where web users experience occasional
> unpredictable "stalls". There are a few links in the chain where the
> problem could be, but based on some clues in logs, I suspect that it's the
> last link at the bottom of the chain ... SQL Server that's the source of
> the problem.
>
>
>
> But I need evidence. Is there some feature of SQL Server or perhaps some
> tool that can detect queries that are suspiciously long running? This is
> SQL Server full standard edition. I haven't had to poke deeply into SQL
> Server's machinery before, so I'm in unfamiliar territory.
>
>
>
> Cheers,
>
> *Greg Keogh*
>
-- 
ozdotnet mailing list 
To manage your subscription, access archives: https://codify.mailman3.com/ 

Reply via email to