A lightweight video to explain the basics behind the Cost Threshold for Parallelism SQL Server setting, and how to change it:
Thanks for reading!
SQL Server Database Consulting
A lightweight video to explain the basics behind the Cost Threshold for Parallelism SQL Server setting, and how to change it:
Thanks for reading!
If you have been following this blog or my Twitter account long enough you are aware of the Apprentice.
I started teaching him SQL Server Database Administration a few hours a week back in January 2017. Literally, starting with “What is a database?”
Much of the material and ideas have now turned into SQL Saturday presentations all over the US, or YouTube videos.
In May of 2018, I hired the Apprentice as a part-time Junior DBA, and handed him 4 entry-level clients. These typically require no more than 15 minutes a day, but for him early on, each was an hour. Different monitoring tools, different scripts, different VPNs, etc. One has only 2 servers, others 20 or more between on-prem and Azure. One has a failover cluster, replication and a huge Integration Services deployment.
He’s handled it all like a champ. Knows the basics inside and out, and escalates to me with questions.
Fun stuff that happened in 2018:
Goals and fun things for 2019:
Feel free to drop a comment of encouragement or stalk him on Twitter!
Thanks for reading!
Dallas DBAs is proud to announce that we are a ?Diamond Sponsor? of SQL Saturday Cincinnati on March 30, 2019, being held at the University of Cincinnati. We will be presenting a lunch session: “Your SQL Servers Are Misconfigured!”
In addition, Dallas DBAs team members Kevin and Derek will present a pre-conference on Friday, March 29: “DBA Fundamentals: Give yourself a solid SQL Server foundation.” This all day session is targeted to Developers, Students, System Admins, Managers, Oracle DBAs, etc. Anyone that can benefit from knowing more about the Administration side of SQL Server. $75.
Please come Saturday for a free day full of training options. Register here.
This is first in what I hope will be a regular series of posts that highlight a problem my team encountered on a SQL Server, what the cause was, and how we fixed it.
We will of course anonymize the details. Part of this is to tell interesting stories, but a bigger part is to help future Googlers find how we resolved it.
IRL #1 – the Non-Yielding IOCP Listener
Problem: SQL Server running a major ERP system suddenly becomes non-responsive, effectively shutting down an entire retail company. Online sales, Distribution, Customer Service…all of it. 2 weeks before Christmas.
Background:
Investigation:
ERRORLOG (always go to the SQL Errorlog early in the process):
IO Completion Listener (0x1d8c) Worker 0x00000000056AC160 appears to be non-yielding on Node 1. Approx CPU Used: kernel 0 ms, user 15000 ms, Interval: 15002. Using 'dbghelp.dll' version '4.0.5' **Dump thread - spid = 0, EC = 0x0000000000000000 ***Stack Dump being sent to F:\MSSQL11.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt * ******************************************************************************* * * BEGIN STACK DUMP: * 12/14/18 12:43:38 spid 7328 * * Non-yielding IOCP Listener * * ******************************************************************************* * ------------------------------------------------------------------------------- * Short Stack Dump Stack Signature for the dump is 0x000000000000027C External dump process return code 0x20000001. External dump process returned no errors. IO Completion Listener (0x335c) Worker 0x00000000036AC160 appears to be non-yielding on Node 0. Approx CPU Used: kernel 0 ms, user 15000 ms, Interval: 15002. IO Completion Listener (0x1d8c) Worker 0x00000000056AC160 appears to be non-yielding on Node 1. Approx CPU Used: kernel 0 ms, user 23890 ms, Interval: 25005. ***Unable to get thread context for spid 0 * ******************************************************************************* * * BEGIN STACK DUMP: * 12/14/18 12:44:33 spid 13940 * * Non-yielding Scheduler * * ******************************************************************************* Stack Signature for the dump is 0x000000000000027C External dump process return code 0x20000001.
Note there are 2 different Non-yielding messages – Schedulers and IOCP Listener.
Also, stack dumps are being generated. I do not have the tools or skills to analyze a stack dump. I rely heavily on Microsoft for this when needed.
The stack dump .txt and .log files contained nothing other than what was in the ERRORLOG.
Resolution Attempts:
| NonYielding Call Stack |
| # Call Site 00 <non-SQL Server .dll> 01 0x0 02 0x0 |
Solution:
Lessons you can benefit from:
I am specifically leaving out the name of the offending .dll for two reasons:
If you enjoyed this post and want to see more like it, please leave a comment, or ping me on Twitter
Other posts in the IRL – In Real Life series:
https://dallasdbas.com/category/sql/irl/
Thanks for reading!
A quick video for the Accidental DBAs in the crowd:
Thanks for watching!
Happy New Year!
They say focus on the positive and make your goals public, so that’s exactly what I’m going to do here!
Dallas DBAs had a great 2018, by every measurable category. No formal goals were laid out, other than “don’t close the doors” and “help people”.
The stats:
The goals for 2019:
The things we put in place this year have worked well, so I may be fudging the number too conservatively for 2019. Check back next year…we may actually hit $14 net profit!
Thanks for reading!