tag:blogger.com,1999:blog-44026641279603345472024-03-12T21:07:16.283-05:00Nebraska SQL from @DBA_ANDY@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.comBlogger158125tag:blogger.com,1999:blog-4402664127960334547.post-34724941011584017972022-11-18T22:26:00.014-06:002022-11-18T22:50:47.885-06:00PASS Summit 2022 - Day 3 in Pictures<p>Other PASS Summit 2022 Days - <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-pre-cons-were-amazing.html" target="_blank">Pre-Cons</a> | <a href="http://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-1-in-pictures.html" target="_blank">Day 1</a> | <a href="http://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-2-in-pictures.html" target="_blank">Day 2</a></p><p>--</p><p>Day 3 of Summit 2022 was "Community Day" with a "community keynote" given by the amazing Kimberly Tripp (<a href="https://twitter.com/KimberlyLTripp" target="_blank">@kimberlyltripp</a>) with help from her lovely assistant Paul Randal (<a href="https://twitter.com/PaulRandal" target="_blank">@paulrandal</a>). The keynote was sponsored by Amazon AWS (<a href="https://twitter.com/AWS" target="_blank">@aws</a>) but because it was community day the keynote did not include any sponsor content - a nice touch and a big thank you to AWS for supporting the concept.</p><p>Before the keynote Steve Jones (<a href="https://twitter.com/way0utwest" target="_blank">@way0utwest</a>) introduced some warm-up entertainment, KillaDBA (<a href="https://twitter.com/KillaDBA" target="_blank">@killadba</a>) who rapped his way through <a href="https://www.youtube.com/watch?v=C2z3be4hdeo" target="_blank">#HugADBA</a> getting the crowd ramped up for the final day.</p><p>Kimberly and Paul were up next, and Kimberly chose to take us all through "30+ Years of Innovation: How Do We Keep Up with Technology?" - a tour back to the start of her career and all of the changes in SQL Server and the world of data along the way. She and Paul displayed their inner hoarders with an array of memorabilia, old software, and giant boxes of documentation from versions long past, and also discussed the sheer volume of data being produced in our modern world, including the fact that while we made it to the Moon with 64 kilobytes of memory, today we generate over 333 *billion* emails every day (of course 2/3 of them are probably spam!)</p><p>Kimberly wrapped up with comments about the community and how amazing it is, especially compared to many other technologies that don't have anything like the <a href="https://twitter.com/search?q=%23sqlfamily&f=live" target="_blank">#sqlfamily</a> - I have to admit I teared up a couple of times hearing the comments of some of my friends as to how the family has helped them in the careers and their lives. She also talked about how sharing and teaching were the best ways to learn yourself - as she told us, "Learn-Share-Grow!"</p><p>Paul tweeted the following while I was writing this post:</p><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghIGPyiUEDUA1VdY7oAhnHFpSwICEbUqNAstgajLNahVlmiOKJrhN3EVyHXDBxrNo2q1LChRtExsDhxjvRdcPpkdJTPxH99vgN1WP8vK1qmRhjfno7n4iTqLM6zSPJSj7r1DzYf_kyAL0POL8BfZYd-dwqED5vP3V-eqDUmeLR8ATXho9PbcynIHM1ow/s571/PaulTweetSQLFamily.JPG"><img border="0" data-original-height="270" data-original-width="571" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghIGPyiUEDUA1VdY7oAhnHFpSwICEbUqNAstgajLNahVlmiOKJrhN3EVyHXDBxrNo2q1LChRtExsDhxjvRdcPpkdJTPxH99vgN1WP8vK1qmRhjfno7n4iTqLM6zSPJSj7r1DzYf_kyAL0POL8BfZYd-dwqED5vP3V-eqDUmeLR8ATXho9PbcynIHM1ow/w640-h302/PaulTweetSQLFamily.JPG" width="640" /></a></div><p>Exactly.</p><p>--</p><p>My first session was "Performance Monitoring, Tuning and Scaling Azure SQL Workloads" by Deepthi Goguri (<a href="https://twitter.com/dbanuggets" target="_blank">@dbanuggets</a>) and Surbhi Pokharna (<a href="https://twitter.com/Surbhi_Pokharna" target="_blank">@Surbhi_Pokharna</a>). They were first-time Summit speakers and came through their talk in amazing fashion - even with a network hiccup causing problems in one of their Azure demos, they recovered well and handled questions and comments from the audience like champs.</p><p>Next I went to "Built-In Query Intelligence in SQL Server 2022" by Kate Smith and Bob Ward (<a href="https://twitter.com/bobwardms" target="_blank">@bobwardms</a>) from Microsoft. I had already seen some of the material from Bob in his workshop earlier this week, but during the workshop he told us we should come see this talk to get Kate's insights, and it was worth it - as a Senior PM in the area she added extra info beyond the base presentation.</p><p>After lunch I went to see my buddy from Chicago Frank Gill (<a href="https://twitter.com/skreebydba" target="_blank">@skreebyDBA</a>) - I first met Frank at a SQL Saturday in Chicago years ago, and he is a great DBA and member of the community. He talked about backups in Azure SQL and Managed Instance, and I definitely learned some things I didn't know before.</p><p>The last session of Summit 2022 for me was "SQL Server in Azure Virtual Machines - Configuring for Price-Performance" by Pam Lahoud (<a href="https://twitter.com/SQLGoddess" target="_blank">@sqlgoddess</a>) and Aditya Badramrajo (<a href="https://twitter.com/Aditya_Feb22" target="_blank">@aditya_feb22</a>) of the Microsoft Azure team. I have seen Pam speak several times before but had not seen Aditya, and the two of them presented very well together. I learned the nuts and bolts of Azure VM sizing and the different models, especially as it relates to capacity constraints (any given model only gets a certain amount of SPU, a certain amount of RAM, of I/O, etc.), along with some recommendations on the best models and configurations to use for SQL VM's inlcuding Pam's favorite VM model for SQL Server, the Ebdsv5, aka the <a href="https://twitter.com/search?q=%23DoubleSprinklesVMS&src=typed_query&f=live" target="_blank">#DoubleSprinklesVMs</a></p><p>Summit 2022 in-person has been awesome - Redgate and the event staff did an outstanding job recreating the magic that was the PASS Summit from before the pandemic, and I can't wait to come back next year!</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFihDQ3-bWMDPH3GD1O33EFhq9hwuhPcd9Vm4OfGfcLOwPm8CG5OPC6trqvwRLnftBN1R_AhoADefYhTZspEmVBxTOubbEgLFykButXmERRyV9OPfac7jbHU57X_3eYx2KtgPFzjGNTeGyCyZJ2dWoJMZWna0rBkNYSSXABDKJUNi-hZq3Ih8RCitzhA/s4000/20221118_080208.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFihDQ3-bWMDPH3GD1O33EFhq9hwuhPcd9Vm4OfGfcLOwPm8CG5OPC6trqvwRLnftBN1R_AhoADefYhTZspEmVBxTOubbEgLFykButXmERRyV9OPfac7jbHU57X_3eYx2KtgPFzjGNTeGyCyZJ2dWoJMZWna0rBkNYSSXABDKJUNi-hZq3Ih8RCitzhA/w480-h640/20221118_080208.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHWSqWyqQpIa5jigDBEPo2WveK0s3T6sU1I6JUDhGz6JV1Wwpj-kjygaoksr5ARp20Lyx4PGDzbLQ68oE9r1EFMGTsPH9rc5gRGBQ0HFLLcFY5ljbc4rbuyIRWoAGJU1XLmZJioIrvPRirpXtCIiYEBH8Vk_4r8PuD1r93043rHDebCtYLiE2A_gG0Ew/s4000/20221118_080517.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHWSqWyqQpIa5jigDBEPo2WveK0s3T6sU1I6JUDhGz6JV1Wwpj-kjygaoksr5ARp20Lyx4PGDzbLQ68oE9r1EFMGTsPH9rc5gRGBQ0HFLLcFY5ljbc4rbuyIRWoAGJU1XLmZJioIrvPRirpXtCIiYEBH8Vk_4r8PuD1r93043rHDebCtYLiE2A_gG0Ew/w640-h480/20221118_080517.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaFakUnMMR6nLX_ykywFaXZZriJi228kssdw0AvaMyfm49Nf0vva5QVH7J5cUuaur-xaQ1z0Ej_bJIToKySoTiIR9d3vCCkIhbxjx48uQOj_fLSObUatKE-U49Bgg_pC6Banx6P5A2LPdNBMDi41r64Kiu5khx0pWl4I9MG1y0H1MCukff7DkgW3MJQQ/s2319/20221118_080757.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2319" data-original-width="1739" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaFakUnMMR6nLX_ykywFaXZZriJi228kssdw0AvaMyfm49Nf0vva5QVH7J5cUuaur-xaQ1z0Ej_bJIToKySoTiIR9d3vCCkIhbxjx48uQOj_fLSObUatKE-U49Bgg_pC6Banx6P5A2LPdNBMDi41r64Kiu5khx0pWl4I9MG1y0H1MCukff7DkgW3MJQQ/w480-h640/20221118_080757.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu9w-1LCk23BlWiX6t1eZxM80WGR8zu3_0DW8ziLQYtN2GedZFZr6j27dt7COebHo_3TJO4vxZvte9rKmvc4fbzcHhcHLqcdBSttMY4E9v6069HMqVtbDmU7vk65lqr-uwQTS-n0MMQX3kVqQ7V-grqcr_FIIKRcls5CWV3x8HwKbvfRHvr0zoAD3i7Q/s3000/20221118_081334.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2250" data-original-width="3000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu9w-1LCk23BlWiX6t1eZxM80WGR8zu3_0DW8ziLQYtN2GedZFZr6j27dt7COebHo_3TJO4vxZvte9rKmvc4fbzcHhcHLqcdBSttMY4E9v6069HMqVtbDmU7vk65lqr-uwQTS-n0MMQX3kVqQ7V-grqcr_FIIKRcls5CWV3x8HwKbvfRHvr0zoAD3i7Q/w640-h480/20221118_081334.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7acXNHPN6dCmlizJy039SXWGBQvjvE6XNhZJXi8_cwpJhN6c4OiiqqmNACERbkbcw_h34lyqkulsQSx5rUEvYW1-J9EO7qPFGWnQmaEhxGVmFv4IFYUeamUgCTQk5W-N2660y3WdvVfLEv37WmPRbs5bQ_xHDFDElHOZLTM5ImaMjgcyY_YF6YhgZRQ/s4000/20221118_081555.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7acXNHPN6dCmlizJy039SXWGBQvjvE6XNhZJXi8_cwpJhN6c4OiiqqmNACERbkbcw_h34lyqkulsQSx5rUEvYW1-J9EO7qPFGWnQmaEhxGVmFv4IFYUeamUgCTQk5W-N2660y3WdvVfLEv37WmPRbs5bQ_xHDFDElHOZLTM5ImaMjgcyY_YF6YhgZRQ/w480-h640/20221118_081555.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz8onHT3eT4ydcvLyd98Go1Vb8FuxJw2JZQBN93rZLbGlX7MXbbmlAqB1PP2GlkaNrCu-0_LZEK4idxsUpvNDNQi1tjpxfcY93LOWEj21r_--ySvkis6jORegSt2jqPlpFjjCHXHolNt5m0OrSZnPxjo0bVCVdktGKcOTCSAksWbuf7M_tT0azRPpMFg/s4000/20221118_081739.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz8onHT3eT4ydcvLyd98Go1Vb8FuxJw2JZQBN93rZLbGlX7MXbbmlAqB1PP2GlkaNrCu-0_LZEK4idxsUpvNDNQi1tjpxfcY93LOWEj21r_--ySvkis6jORegSt2jqPlpFjjCHXHolNt5m0OrSZnPxjo0bVCVdktGKcOTCSAksWbuf7M_tT0azRPpMFg/w640-h480/20221118_081739.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxHprD_uy7-nCMSXc3AqzHOvXMHdI7bA0_Xw71UQqBuoHbWq9MQTdXOKsxWB7ZMJUvft_TjFsb-Yz0mMnrG58n4MAxveuwXmwd9KEAEIHYct1gVY8d3r-Q-_62RPBCeV8Im6RsHSSCJ2lAud-XVhAB2_On0nF4Xzu8s5Xya_gaWkrLycS4fz-R-P6ECQ/s4000/20221118_082239.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxHprD_uy7-nCMSXc3AqzHOvXMHdI7bA0_Xw71UQqBuoHbWq9MQTdXOKsxWB7ZMJUvft_TjFsb-Yz0mMnrG58n4MAxveuwXmwd9KEAEIHYct1gVY8d3r-Q-_62RPBCeV8Im6RsHSSCJ2lAud-XVhAB2_On0nF4Xzu8s5Xya_gaWkrLycS4fz-R-P6ECQ/w480-h640/20221118_082239.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQMbxYqGP8a-NhEAiEaq7pk9yQLQPrQsD0djUUHGRaLlUJr4nbSmWCNsQWYg7wBJdQ1Pkm6_FLoVPBCvUkmhDnaq_oIT9HzFeLcUE5YeUJfK_FIO_ANuDQxOTknwxs4iw5RKHKZZzt_x6r8gDv4fKgj4EN0PGSFtriuaX_t8LNfmTJ_e0jvVEjKwzBTQ/s4000/20221118_083306.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQMbxYqGP8a-NhEAiEaq7pk9yQLQPrQsD0djUUHGRaLlUJr4nbSmWCNsQWYg7wBJdQ1Pkm6_FLoVPBCvUkmhDnaq_oIT9HzFeLcUE5YeUJfK_FIO_ANuDQxOTknwxs4iw5RKHKZZzt_x6r8gDv4fKgj4EN0PGSFtriuaX_t8LNfmTJ_e0jvVEjKwzBTQ/w640-h480/20221118_083306.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj46VKEfWo7wqbHzVd8Jl0o1NLtSyNIalZEkCN4g6BJAnILjYTcNs6z-LGRZjudRQp1Y5ksBAeR1dDnWa-Ypog0fNZLQIoPjtsUalFLrVpMHFVx71gPNhb4gMHJt80VNC7mJFtun8vyMc-LlKu4aZ3iCB4GWuE4BgH2Tjuz12x457aeQt86dAPNNijug/s4000/20221118_083638.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj46VKEfWo7wqbHzVd8Jl0o1NLtSyNIalZEkCN4g6BJAnILjYTcNs6z-LGRZjudRQp1Y5ksBAeR1dDnWa-Ypog0fNZLQIoPjtsUalFLrVpMHFVx71gPNhb4gMHJt80VNC7mJFtun8vyMc-LlKu4aZ3iCB4GWuE4BgH2Tjuz12x457aeQt86dAPNNijug/w640-h480/20221118_083638.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh77qcaD4Uzfdv6Bilp5EAhEwbDL3DpQyQUgHzBNiHF9fR0Xp9uxcYhcsE_dWizpvTY3cW1b3wmb_SyZar4cpyC7oYyzPryqaX_vLvQa3cfawfvy7DhnbtZDiG5d1mmA9PpocokzbgYyrfi-3CHet_jmz_sW6N302UkMyWLTgrMU74kOEuOVDbq5I160A/s4000/20221118_083704.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh77qcaD4Uzfdv6Bilp5EAhEwbDL3DpQyQUgHzBNiHF9fR0Xp9uxcYhcsE_dWizpvTY3cW1b3wmb_SyZar4cpyC7oYyzPryqaX_vLvQa3cfawfvy7DhnbtZDiG5d1mmA9PpocokzbgYyrfi-3CHet_jmz_sW6N302UkMyWLTgrMU74kOEuOVDbq5I160A/w640-h480/20221118_083704.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHJHt23dcizQXbITEIb_bGa3S4B0Sxhhm3zyIztWg3KfUTQegP7VkzexaoiJznFD33Dz_Bj8sxUyn4GG8WGT4s5tsoE1gRUKHK6Mk8jJwEEajDuUI8pUe76aTuCCr64IECuwiOpliykcP37F_f1oZL9MnMGFKs1L9Q1w53AjmdeHDl4NGWBy227m_Gw/s2245/20221118_083834.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1684" data-original-width="2245" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHJHt23dcizQXbITEIb_bGa3S4B0Sxhhm3zyIztWg3KfUTQegP7VkzexaoiJznFD33Dz_Bj8sxUyn4GG8WGT4s5tsoE1gRUKHK6Mk8jJwEEajDuUI8pUe76aTuCCr64IECuwiOpliykcP37F_f1oZL9MnMGFKs1L9Q1w53AjmdeHDl4NGWBy227m_Gw/w640-h480/20221118_083834.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHLOuuaJ24Q7GfWiNiHCZJOS9WD5OnNsVU8qda-Q7wEFLSvA9ssBKnuhEAc3k4s8iNv6Mgt6O5YhSDiFc6xv0-OJcWaVGdvFwPTekfWTnlFRhFgCD5Nn0bvG5CsFE81nbe5hNFqFrCpEJ4QEvaTzBalSzxTnf8FSREPfVyH_6z89pBjNIff9255h2TpA/s4000/20221118_084456.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHLOuuaJ24Q7GfWiNiHCZJOS9WD5OnNsVU8qda-Q7wEFLSvA9ssBKnuhEAc3k4s8iNv6Mgt6O5YhSDiFc6xv0-OJcWaVGdvFwPTekfWTnlFRhFgCD5Nn0bvG5CsFE81nbe5hNFqFrCpEJ4QEvaTzBalSzxTnf8FSREPfVyH_6z89pBjNIff9255h2TpA/w640-h480/20221118_084456.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuyAwPvv13H_2yocf3nnWOI2JhNG08hxyhwleHTG2x2noHtMBZXauRHZfGJjNqe2wYKTha6bijNwiNu8660xhMcFPJgsWUz9RtWDKaKdEsgfsQm9LgSZ62ZyGmECmLk-WdbygZUYkjDaBdTwpb2tSsL2vHY_62pAYYsbj4iIEeSk_WhbIaW1QfEfNotA/s4000/20221118_084504.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuyAwPvv13H_2yocf3nnWOI2JhNG08hxyhwleHTG2x2noHtMBZXauRHZfGJjNqe2wYKTha6bijNwiNu8660xhMcFPJgsWUz9RtWDKaKdEsgfsQm9LgSZ62ZyGmECmLk-WdbygZUYkjDaBdTwpb2tSsL2vHY_62pAYYsbj4iIEeSk_WhbIaW1QfEfNotA/w640-h480/20221118_084504.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj40UIvJqg8ZRlmRzGBCqJl-tOIiVQlr4b65BcRey3EhQxfcBBdhwSU2wJSob21bC3Ufp2Q7TTDNG1OcG_ZwNFG4qel_zWncp1R48Vrz0WylfQlEqZg_CstUSY1RJn4_jyg891eN2yWso1cV3k9AOfs4_ARcx_VHdW931pu4c--j6szHD9dfI9tTZQs9w/s4000/20221118_084513.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj40UIvJqg8ZRlmRzGBCqJl-tOIiVQlr4b65BcRey3EhQxfcBBdhwSU2wJSob21bC3Ufp2Q7TTDNG1OcG_ZwNFG4qel_zWncp1R48Vrz0WylfQlEqZg_CstUSY1RJn4_jyg891eN2yWso1cV3k9AOfs4_ARcx_VHdW931pu4c--j6szHD9dfI9tTZQs9w/w640-h480/20221118_084513.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFSR1GDad1c0zlzvEL1aiODOVrk9PQPwytwRv988XYAKe87XEGBVUSxrusQ6F8WuLfYGh-rNrwgzFj1ljBPza2D189UIi5v8C3IB3ntoHnfGEEGBHxi-hAwrQGCQ5Knfa6SxtFI-iDnQ7r-lEeMydhM7rT7M-9wzciIUvpDaLIA1tMm-TMVxL3Ou3Tmw/s4000/20221118_090022.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFSR1GDad1c0zlzvEL1aiODOVrk9PQPwytwRv988XYAKe87XEGBVUSxrusQ6F8WuLfYGh-rNrwgzFj1ljBPza2D189UIi5v8C3IB3ntoHnfGEEGBHxi-hAwrQGCQ5Knfa6SxtFI-iDnQ7r-lEeMydhM7rT7M-9wzciIUvpDaLIA1tMm-TMVxL3Ou3Tmw/w640-h480/20221118_090022.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsq6_kXe-jSZpubG-DVb9aev772HMhN1E4-zZt-SgCNNwwS6PP_IOicJrhloKSrKTCLrE1fpipjjKwLnewb1lSNHn8eYClYqPhCgNJihoseIroAC-iVJoceGaR5xUJfPfoJxiAyQp6YTFa69s7wSkfdUgcxu3FT-LCIlL8Ip6SrQmr2CjabjrqFXN-zA/s4000/20221118_090421.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsq6_kXe-jSZpubG-DVb9aev772HMhN1E4-zZt-SgCNNwwS6PP_IOicJrhloKSrKTCLrE1fpipjjKwLnewb1lSNHn8eYClYqPhCgNJihoseIroAC-iVJoceGaR5xUJfPfoJxiAyQp6YTFa69s7wSkfdUgcxu3FT-LCIlL8Ip6SrQmr2CjabjrqFXN-zA/w640-h480/20221118_090421.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDJ3lGhGycAYkvpIigYlMsv1zbwuQSCjvANmFLuV2yqj4XYy7_k2VY4WxeJcqrPn17X6AznP4Flv_T31V_f9bD1adAPUQUZGNmxXdoYHQyeRK9T0SV5WZ2ftl-wuhwsr8H3Gb5irZ45-tfcHRViJTuDQccTena6DeebUaewM6H3SutI8ZgTK2mendYCA/s4000/20221118_090502.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDJ3lGhGycAYkvpIigYlMsv1zbwuQSCjvANmFLuV2yqj4XYy7_k2VY4WxeJcqrPn17X6AznP4Flv_T31V_f9bD1adAPUQUZGNmxXdoYHQyeRK9T0SV5WZ2ftl-wuhwsr8H3Gb5irZ45-tfcHRViJTuDQccTena6DeebUaewM6H3SutI8ZgTK2mendYCA/w640-h480/20221118_090502.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgklJxOV2xXDGHcsHYBnZbC-As9jPApCdZDp4tOFmrat_FqmsleWoivvfYjRWzMVH-3MN8D2Z_AZy7upG3xvrdNpo7d5h4DIaV1WL6W03MIlN9aky1VjvNjczxdqt6jKruBAMq-Hr9aws3LCybPySI31dGirROf_6g_gAVd64F4lhERirowBh38V8lulw/s4000/20221118_091411.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgklJxOV2xXDGHcsHYBnZbC-As9jPApCdZDp4tOFmrat_FqmsleWoivvfYjRWzMVH-3MN8D2Z_AZy7upG3xvrdNpo7d5h4DIaV1WL6W03MIlN9aky1VjvNjczxdqt6jKruBAMq-Hr9aws3LCybPySI31dGirROf_6g_gAVd64F4lhERirowBh38V8lulw/w640-h480/20221118_091411.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii7oNf8Wf7lzPcGm9GZ0cp2wxhIig1-Hw3PLZG3e_53pd6ZNwx9dpp81WfYIMw8_Bj9WIdC2JZBHAijgnD7EcClo5MV6sqRUdVG_gLQHCcOUGJt0CTl4IuJrYAU22G4vvyhKVPWMgLuw-mpETdgsWg1GES3YdVsVhJfC8uIpx7-5bWC0SZV0q4arXi2w/s2813/20221118_094748.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2111" data-original-width="2813" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii7oNf8Wf7lzPcGm9GZ0cp2wxhIig1-Hw3PLZG3e_53pd6ZNwx9dpp81WfYIMw8_Bj9WIdC2JZBHAijgnD7EcClo5MV6sqRUdVG_gLQHCcOUGJt0CTl4IuJrYAU22G4vvyhKVPWMgLuw-mpETdgsWg1GES3YdVsVhJfC8uIpx7-5bWC0SZV0q4arXi2w/w640-h480/20221118_094748.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpHhDtffJOwJNWEXyxFDJIaZEhtNvI-eCnkMzP1uG-iJPVDOMeUrrOVzL2ISoNDIFcchCBmeLUTXhD1T5_5HwkPwEWgRXrhmoXFhbbwtLEO03qlPgoc4411eddjxwKpRcEyG1YfsYI4bH3hI4R_OIRi6oAcGMgDNWq2UZ2hxQtA6IB8ziqrUv7h1qtzw/s2541/20221118_095230.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1906" data-original-width="2541" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpHhDtffJOwJNWEXyxFDJIaZEhtNvI-eCnkMzP1uG-iJPVDOMeUrrOVzL2ISoNDIFcchCBmeLUTXhD1T5_5HwkPwEWgRXrhmoXFhbbwtLEO03qlPgoc4411eddjxwKpRcEyG1YfsYI4bH3hI4R_OIRi6oAcGMgDNWq2UZ2hxQtA6IB8ziqrUv7h1qtzw/w640-h480/20221118_095230.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1__Q1litKf2S_8JPP6belSmGgTMVFMJR2HQJHZ3EbweLZe67ElwC50y0Z71kIxL4k8ZMveDo1wi8bx7qVqdEUvvAQ2qUT7S0Hyq9AUhIujUC2j11nkVXVgNnx0NNNOD01kJamGPBWK9ecdg7gf3aOoZ2vuRhkfjdg3BJvf2_Iot_VCAIT2OzA40DT6Q/s4000/20221118_111706.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1__Q1litKf2S_8JPP6belSmGgTMVFMJR2HQJHZ3EbweLZe67ElwC50y0Z71kIxL4k8ZMveDo1wi8bx7qVqdEUvvAQ2qUT7S0Hyq9AUhIujUC2j11nkVXVgNnx0NNNOD01kJamGPBWK9ecdg7gf3aOoZ2vuRhkfjdg3BJvf2_Iot_VCAIT2OzA40DT6Q/w640-h480/20221118_111706.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1WEwLhAym5360fItBt6n9ZOC3Snj6krmSiouoyoQuGOz8wrnFnrDdJaeuEXzrb6IGIuOMoAx3VFntqEj-kD36HCSNnQnV1CvlvSerV48r5BoJ5XK9reRNIqgaRjoqD1Iyqo-Ci-VEt64yKg3lys4zdWCYDEvQbvDxbrOjYtI4Xs3a5fbAPBToPUf8DQ/s3000/20221118_112631.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2249" data-original-width="3000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1WEwLhAym5360fItBt6n9ZOC3Snj6krmSiouoyoQuGOz8wrnFnrDdJaeuEXzrb6IGIuOMoAx3VFntqEj-kD36HCSNnQnV1CvlvSerV48r5BoJ5XK9reRNIqgaRjoqD1Iyqo-Ci-VEt64yKg3lys4zdWCYDEvQbvDxbrOjYtI4Xs3a5fbAPBToPUf8DQ/w640-h480/20221118_112631.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmGsUss48qO1bcQl6RBiq2_Zh9KRSmN-FA5HF4YF77VaQctAEiJaeIh9v6tWNZT0CD8ZNl9ugwOJk_JoTOadfa4cymUgxxGKRdb70h76cKuKCN_UVqIKGfUNRaj5Tw9eijmGXsh6ZISsmlof_zChKiS-BkXC__nAPuNIsnyO2ntC69o2l8C5tp5m63g/s4000/20221118_143309.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmGsUss48qO1bcQl6RBiq2_Zh9KRSmN-FA5HF4YF77VaQctAEiJaeIh9v6tWNZT0CD8ZNl9ugwOJk_JoTOadfa4cymUgxxGKRdb70h76cKuKCN_UVqIKGfUNRaj5Tw9eijmGXsh6ZISsmlof_zChKiS-BkXC__nAPuNIsnyO2ntC69o2l8C5tp5m63g/w480-h640/20221118_143309.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNS6Urb5T9RzIcIKKu4gBaC654BDlFoXhDBWOZA4C5ylpok9avzD0mjiXl5DM7DKjdTWN4cOZpis-iR5lbQ0F1wm0rsQsgKp0P6tJExj6_pgnVORsPXyoZ_5qtpnHjTD203ZwTttHy6ateHCUCFF1Qr2DYk-ZLnNhtvjG-HkUyufu1xqKhjSBfVJ2BVQ/s4000/20221118_161755.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNS6Urb5T9RzIcIKKu4gBaC654BDlFoXhDBWOZA4C5ylpok9avzD0mjiXl5DM7DKjdTWN4cOZpis-iR5lbQ0F1wm0rsQsgKp0P6tJExj6_pgnVORsPXyoZ_5qtpnHjTD203ZwTttHy6ateHCUCFF1Qr2DYk-ZLnNhtvjG-HkUyufu1xqKhjSBfVJ2BVQ/w640-h480/20221118_161755.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlJ6zyahCSDM86TdLhSAqUccdj08mLBV5pDTDwkmGYYxqtXwH41AsDHWl8vLKDuXUIyV8c8lMWytenb00TtZfVNVX_wc-YA6qdhGne9kgMlzn7BQ9tNMZNJFfjtrZMX_lPJ2sF5gQwYD1tdI2Mm4iis3e9_9JQyTSWO0oA5bf8x0EyM0B76RtxtdAtoA/s3737/20221118_164646.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2845" data-original-width="3737" height="488" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlJ6zyahCSDM86TdLhSAqUccdj08mLBV5pDTDwkmGYYxqtXwH41AsDHWl8vLKDuXUIyV8c8lMWytenb00TtZfVNVX_wc-YA6qdhGne9kgMlzn7BQ9tNMZNJFfjtrZMX_lPJ2sF5gQwYD1tdI2Mm4iis3e9_9JQyTSWO0oA5bf8x0EyM0B76RtxtdAtoA/w640-h488/20221118_164646.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfdOMF6ZLeVfQ924ctpe6rYmOgo9uCnqKdJDUQaYRD9SA0uMNTolHz6vHx0OTum5xzZjaujVgBKkcRU1iRg_0MjFpCelIod_VWM3a1m-6RPP2kQVBEq-ytASKy1Zvwy2jtHhjFfHl1jkJdrZ_bQ9IMmKYn_RQWlqUIML9y02C6j4BYhyhCIaOPf6TOFg/s2901/20221118_170047.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2175" data-original-width="2901" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfdOMF6ZLeVfQ924ctpe6rYmOgo9uCnqKdJDUQaYRD9SA0uMNTolHz6vHx0OTum5xzZjaujVgBKkcRU1iRg_0MjFpCelIod_VWM3a1m-6RPP2kQVBEq-ytASKy1Zvwy2jtHhjFfHl1jkJdrZ_bQ9IMmKYn_RQWlqUIML9y02C6j4BYhyhCIaOPf6TOFg/w640-h480/20221118_170047.jpg" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-5085017708219243632022-11-17T22:24:00.010-06:002022-11-18T22:51:55.031-06:00PASS Summit 2022 - Day 2 In Pictures<p>Other PASS Summit 2022 Days - <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-pre-cons-were-amazing.html" target="_blank">Pre-Cons</a> | <a href="http://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-1-in-pictures.html" target="_blank">Day 1</a> | <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-3-in-pictures.html" target="_blank">Day 3</a></p><p>--</p><p>Day 2 of Summit 2022 started earlier than usual with the "Breakfast with the Microsoft team: SQL Futures and Strategy" - the food was good and the conversations with the <a href="https://twitter.com/AzureSQL" target="_blank">@AzureSQL</a> Team were great, outlining why some features make it into the product faster than others as well as commenting on future directions for the product. </p><p>Next was the Day 2 keynote "Doing More with Less: The Challenges Ahead for Every Data Professional" by the event sponsor Redgate (<a href="https://twitter.com/redgate" target="_blank">@redgate</a>) - Steve Jones (<a href="https://twitter.com/way0utwest" target="_blank">@way0utwest</a>) gave some nostalgic history of the PASS Summit as well as some history of Redgate, and then a string of Redgate people demonstrated a cool-looking database migration product they acquired called Flyway (<a href="https://twitter.com/FlywayDb" target="_blank">@flywaydb</a>), and finally Kathi Kellenberger (<a href="https://twitter.com/auntkathi" target="_blank">@auntkathi</a>) wrapped up with the many ways Redgate supports the community and ways to do so in the future.</p><p>My first two sessions of the day were a Denny Cherry and Associates Consulting (<a href="https://twitter.com/DCACco" target="_blank">@DCACco</a>) doubleheader, with Denny Cherry (<a href="https://twitter.com/mrdenny" target="_blank">@mrdenny</a>) presenting "How to Maintain the Same Level of utilities in Cloud Deployments" where he discussed the "Security, Reliability, and Scalability" of moving to Azure, and then Joey D'Antoni (<a href="https://twitter.com/jdanton" target="_blank">@jdanton</a>) following him with "Deep Inside Azure SQL High Availability."</p><p>It's Thursday, which brings the annual Women in Technology (<a href="https://twitter.com/search?q=%23passwitnetwork&src=typed_query&f=live" target="_blank">#passwitnetwork</a>) Luncheon, which is inspiring (and as a straight white male, also sobering) every year. The topic this year was "Women as Tech Leads - Tackling the Challenges" and the panel this year was awesome, made up of Shabnam Watson (<a href="https://twitter.com/ShbWatson" target="_blank">@ShbWatson</a>), Jen McCown (<a href="https://twitter.com/MidnightDBA" target="_blank">@MidnightDBA</a>), Anna Hoffman (<a href="https://twitter.com/AnalyticAnna" target="_blank">@AnalyticAnna</a>), Blythe Morrow (<a href="https://twitter.com/blythemorrow" target="_blank">@blythemorrow</a>) and Leslie Andrews (<a href="https://twitter.com/landrews5807" target="_blank">@landrews5807</a>). The conversation was amazing as usual with special emphasis on taking ownership of your own career and paying attention when others need help - a great overall message for everyone.</p><p>My afternoon sessions were Kimberly Tripp (<a href="https://twitter.com/KimberlyLTripp" target="_blank">@kimberlyltripp</a>) on "VLTs: Very Large Tables - Problems, Options, THE Solution!" and then first-time Summit speaker Josh Handler (<a href="https://twitter.com/gt1gt1" target="_blank">@gt1gt1</a>) covering "PowerShell and dbatools Tips and Scripts for the DBA." Kimberly is always an amazing speaker, and the back and forth with her husband Paul (<a href="https://twitter.com/PaulRandal" target="_blank">@paulrandal</a>) always adds that little extra touch; Josh did a great job as a first-timer in front of a pretty full room - he kept a good pace through his material, and when he didn't know the answer to a question he didn't stumble but rather told the person he would find out, or probed the other attendees to see if anyone knew an answer - a great first of what I am sure will be many more outings of Josh speaking at Summit.</p><p>One of the sad points of this year's in-person Summit are the people who *can't* be here for some reason, and for me personally the most painful is the absence of David Klee (<a href="https://twitter.com/kleegeek" target="_blank">@kleegeek</a>) - David helped me quite a bit to escalate my community involvement during the time we actually worked together, pushing me to speak and write and also going out of his way to introduce me to some of the MVP's who make up a big part of my <a href="https://twitter.com/search?q=%23sqlfamily&f=live" target="_blank">#sqlfamily</a> now. Klee can't take the COVID vaccine for medical reasons, so he is still quarantining at home with his wife. Fortunately, someone had the idea to bring a <a href="https://twitter.com/search?q=%23flatklee&f=live" target="_blank">#flatklee</a> with them to SQL Saturday Portland last weekend and then to Summit this week, and I finally ran into the person with #flatklee today during my last session of the day - it made me happy to be able to take a picture with #flatklee although it does also remind me that *REAL* Klee isn't physically here.</p><p>Thanks to everyone and I need to get some sleep before the final day of Summit 2022 tomorrow!</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO2YUZEZs3Zu8xrPzudhjaYnjeiEofLRWQBGXDg1Gln85OvrUfTFRNxqNSBD5NFWpSvDB9s0NlCOoSBQDNfYUAEps7vrfG8iwSaK-eFuOh-x3IPORkwGxAJODWyPSoRBcES3cpOP1pXLaHgEerVQFDt2NybevgIbV1jBJex77T3_w-RKdVA57NBXDUMA/s4000/20221117_071007.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO2YUZEZs3Zu8xrPzudhjaYnjeiEofLRWQBGXDg1Gln85OvrUfTFRNxqNSBD5NFWpSvDB9s0NlCOoSBQDNfYUAEps7vrfG8iwSaK-eFuOh-x3IPORkwGxAJODWyPSoRBcES3cpOP1pXLaHgEerVQFDt2NybevgIbV1jBJex77T3_w-RKdVA57NBXDUMA/w640-h480/20221117_071007.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ORQSZ_uYinMOMS4QBVh9nWyWrK-LqHRN8hGKWqDXVFx-mM18b0S3vb9rVB4C3E6HUtaGv0XEZt3iYd8juvzJsKOhfuwkBXuDG9NS15-GTV7UaDJfC_Wdre3nTgyJTK7k8u32lMJrgC4Yj9WmXJznHhj2w2gVZA0Ob0f65ZE8f-x2cadppdiUoXRH1g/s2400/20221117_074201.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="2400" height="288" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ORQSZ_uYinMOMS4QBVh9nWyWrK-LqHRN8hGKWqDXVFx-mM18b0S3vb9rVB4C3E6HUtaGv0XEZt3iYd8juvzJsKOhfuwkBXuDG9NS15-GTV7UaDJfC_Wdre3nTgyJTK7k8u32lMJrgC4Yj9WmXJznHhj2w2gVZA0Ob0f65ZE8f-x2cadppdiUoXRH1g/w640-h288/20221117_074201.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU_9LdRPGSGwFRrtPnkNhhnntPyPNX8oftQQYQz5pU_Mc2mJdkTKROvK-_ox8uCUL1TDTlFXFGu6AXXvJf9yKJlQxUYNYqHMVYDp5EiK-nfrNhG15Ae6juIRWp6OnWTxIMBSuiez7CW1kMWvC8CJxi6mkEoHzVDREys84Q4Qa19-szj10Gs61bXWYFUA/s4000/20221117_081135.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU_9LdRPGSGwFRrtPnkNhhnntPyPNX8oftQQYQz5pU_Mc2mJdkTKROvK-_ox8uCUL1TDTlFXFGu6AXXvJf9yKJlQxUYNYqHMVYDp5EiK-nfrNhG15Ae6juIRWp6OnWTxIMBSuiez7CW1kMWvC8CJxi6mkEoHzVDREys84Q4Qa19-szj10Gs61bXWYFUA/w480-h640/20221117_081135.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXzWDvoEo-oK-x5iLTsXqlXcRX8qil6rO9BcWRLHB_Cx0j9Xb1RRFwHSlhKtDKIp0U8JrZ20Mh1Awf55vfZibMwN1fhG61Xzd-A-53cHJskUAe4caYnGZb1m4GG-V2sHdnFBZ6yByTXaret_HZ1IqrbfQn-9UOZGHw7nZJbZsh9thbucKZM96Z2g33g/s2637/20221117_082341.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2637" data-original-width="1977" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXzWDvoEo-oK-x5iLTsXqlXcRX8qil6rO9BcWRLHB_Cx0j9Xb1RRFwHSlhKtDKIp0U8JrZ20Mh1Awf55vfZibMwN1fhG61Xzd-A-53cHJskUAe4caYnGZb1m4GG-V2sHdnFBZ6yByTXaret_HZ1IqrbfQn-9UOZGHw7nZJbZsh9thbucKZM96Z2g33g/w480-h640/20221117_082341.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGbOJ1Pk7FJJkSY7fbPkOiSSrgpQYqAvAGRehoV3n0OC_7U_CIMCjfvuAETdOXZXxgoLHATOQoJ-fVkkgjum7oIWPj83R5kSomQXzXhOdKAHE0HwfGgs0NgzHqgLDPm46g2qYyVM_K7IMBh_oRAXJs68lUjca1wZxHeVA0i8OJaeK_3oxteKWGEDFIfA/s4000/20221117_082908.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGbOJ1Pk7FJJkSY7fbPkOiSSrgpQYqAvAGRehoV3n0OC_7U_CIMCjfvuAETdOXZXxgoLHATOQoJ-fVkkgjum7oIWPj83R5kSomQXzXhOdKAHE0HwfGgs0NgzHqgLDPm46g2qYyVM_K7IMBh_oRAXJs68lUjca1wZxHeVA0i8OJaeK_3oxteKWGEDFIfA/w640-h480/20221117_082908.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimjG40PY8ZKwPoIpgNQLVkFrZYBJBhIdVNygcYmlUgXNbr_aCeOmBBmXShN5oaVBgQ0hFAQL6EbirV2Zx7UmmHZqkJXFYoHcDqJ7UcR9vGfv0meo7VNtzy09xtjWdMKo6WQMh_2GcOwb0OpzCLY-AqGnN8BmoRseOEKikrdDBPTGlYwVBfmZlYHVO9yg/s4000/20221117_083320.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimjG40PY8ZKwPoIpgNQLVkFrZYBJBhIdVNygcYmlUgXNbr_aCeOmBBmXShN5oaVBgQ0hFAQL6EbirV2Zx7UmmHZqkJXFYoHcDqJ7UcR9vGfv0meo7VNtzy09xtjWdMKo6WQMh_2GcOwb0OpzCLY-AqGnN8BmoRseOEKikrdDBPTGlYwVBfmZlYHVO9yg/w480-h640/20221117_083320.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhjDbJ-di_91FJuCGh0ce-geai7QM_tQotSheiJVC5w6INhQi8ghZRMrXjSozpmoDcwFBAW6PtqB8s-Zdd9BrbI27d6VMVV8A-CUP-ic5VaKy0hQ5i4wLPo3osysRCP5v3cdRHliCBf9-s7ZqMoN7e1zVd93MXvT9H4yL0ynt0tqVRfB_tu9Yw0NLhMg/s4000/20221117_085907.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhjDbJ-di_91FJuCGh0ce-geai7QM_tQotSheiJVC5w6INhQi8ghZRMrXjSozpmoDcwFBAW6PtqB8s-Zdd9BrbI27d6VMVV8A-CUP-ic5VaKy0hQ5i4wLPo3osysRCP5v3cdRHliCBf9-s7ZqMoN7e1zVd93MXvT9H4yL0ynt0tqVRfB_tu9Yw0NLhMg/w480-h640/20221117_085907.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2BxLiN9gU_IP0u1Zdygn-CWgetaorIXh9GUaNbSweMNCKqP8Wjz-G8Ucn35gU_-1VRk0J3PECl0xDT1hOeOBPdOf-rrtBiqoFBpXOuc4A-OLkK4jYQfXq2dwKSi8Z10N_dCjCGjUg_jy0HYJzUbnoMIy1JtyP63cu6WtX-_W2JUWEIQUMj_a8pCoZOg/s3266/20221117_090151.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2189" data-original-width="3266" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2BxLiN9gU_IP0u1Zdygn-CWgetaorIXh9GUaNbSweMNCKqP8Wjz-G8Ucn35gU_-1VRk0J3PECl0xDT1hOeOBPdOf-rrtBiqoFBpXOuc4A-OLkK4jYQfXq2dwKSi8Z10N_dCjCGjUg_jy0HYJzUbnoMIy1JtyP63cu6WtX-_W2JUWEIQUMj_a8pCoZOg/w640-h428/20221117_090151.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCJ2BDwJx28CqnQ4w4zDeVk7oyKLouEL68i3umWEiV8Tqpgo9PE9CNGU1HRVpQzQTfuGZmaiLliU5x-vmgpK_DZZCU-6_LQ7R-ZBBdldvKQ_uIkz2X-gt4A-zN_frOvVrM0ltkPBXJX673vFpYeNkHu8VpgNMWsxVYqfv00PF3Z1g3B5TEO7DZvLkNhg/s2585/20221117_093720.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2585" data-original-width="1939" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCJ2BDwJx28CqnQ4w4zDeVk7oyKLouEL68i3umWEiV8Tqpgo9PE9CNGU1HRVpQzQTfuGZmaiLliU5x-vmgpK_DZZCU-6_LQ7R-ZBBdldvKQ_uIkz2X-gt4A-zN_frOvVrM0ltkPBXJX673vFpYeNkHu8VpgNMWsxVYqfv00PF3Z1g3B5TEO7DZvLkNhg/w480-h640/20221117_093720.jpg" width="480" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUxBTeqPj-dRBKztHAHJ6zUVruu5-YO3AADGhvb5ENsdBWgdwFAdp7BKV2Hc3zMGbzLpgAqGrAQOdpwJN9GVGOz5KpMYQ2GcoAovwone8P8MkvN-ivGIhMHV0n6-K8ma9An5aXTzjdt8wndumNxbxWVe2NZbNVZzmM9OyMaL3LPpsU2i7-B2u39ps8sg/s4000/20221117_111641.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUxBTeqPj-dRBKztHAHJ6zUVruu5-YO3AADGhvb5ENsdBWgdwFAdp7BKV2Hc3zMGbzLpgAqGrAQOdpwJN9GVGOz5KpMYQ2GcoAovwone8P8MkvN-ivGIhMHV0n6-K8ma9An5aXTzjdt8wndumNxbxWVe2NZbNVZzmM9OyMaL3LPpsU2i7-B2u39ps8sg/w480-h640/20221117_111641.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFaSE3IVVXRJDGYhCglbZcWNP_EX4ph3egBoCSzmq9r44KVHIdz_mM7_CtcrFue4bIhcD2DM3b62F9M14BuBGcwGbPH0c4JON4-UKtYYzcggfqdey8yWrmO-DSBlF0lZqYlQP1JDitWM3UOPls4Rx3dTIrR5PZk2C2gKyJSyaBnzuDtK_S00-72_uHwg/s4000/20221117_114806.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFaSE3IVVXRJDGYhCglbZcWNP_EX4ph3egBoCSzmq9r44KVHIdz_mM7_CtcrFue4bIhcD2DM3b62F9M14BuBGcwGbPH0c4JON4-UKtYYzcggfqdey8yWrmO-DSBlF0lZqYlQP1JDitWM3UOPls4Rx3dTIrR5PZk2C2gKyJSyaBnzuDtK_S00-72_uHwg/w640-h480/20221117_114806.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBxAtJeXLhUcGGG_2iyGYbda2QU8bzBxH3IHm58jqq0hg0gCtYMVPLXbyo70rS4JlJS7sUEu7Zij6DKRVCm0lK_oAuNazGkl7YQi-bkHKIi3PMy9N9jxfmA3AtSNl5cpriQngggeG2Etz1HYVjbS4uRzmmVL6HNxT6E5Lb0Liax4n94AYfgOQdfWEUmQ/s4000/20221117_131552.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBxAtJeXLhUcGGG_2iyGYbda2QU8bzBxH3IHm58jqq0hg0gCtYMVPLXbyo70rS4JlJS7sUEu7Zij6DKRVCm0lK_oAuNazGkl7YQi-bkHKIi3PMy9N9jxfmA3AtSNl5cpriQngggeG2Etz1HYVjbS4uRzmmVL6HNxT6E5Lb0Liax4n94AYfgOQdfWEUmQ/w640-h480/20221117_131552.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYFEExEt5SFzdxhX7OnyTHJEKYO9ySAHAcN2ufLnK8N8lNsEHDLPkhOTLBrprHH-P4L9Ezo0ZSmaVvNGeTUFqr6mkQcriscSEnVLmTM5VjXa0AwV0MCSmyThQYfXpq6aB-LcO9lXtnFtbfRkELkDrAK0W1Vwko6YwksD_OpLCHH6Sk4UI5LCUWyEwF8A/s4000/20221117_143021.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYFEExEt5SFzdxhX7OnyTHJEKYO9ySAHAcN2ufLnK8N8lNsEHDLPkhOTLBrprHH-P4L9Ezo0ZSmaVvNGeTUFqr6mkQcriscSEnVLmTM5VjXa0AwV0MCSmyThQYfXpq6aB-LcO9lXtnFtbfRkELkDrAK0W1Vwko6YwksD_OpLCHH6Sk4UI5LCUWyEwF8A/w480-h640/20221117_143021.jpg" width="480" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVHHbBqY-e2X52f2SN9ezY_dsdArcRZ1tc0uTHiza8sJv4P8lWP-wbIAHsXsOb3WH3GHs2iQwSuAdXYwcuC0zSFg00qCOxg2_y9zzuX58CgwBG6URo456kdRUOW0dBvxBRc60LlwhCViH83BgMhypiREf7TLB5EShDStbGAcf6l8MGbEhj3IROJ2oaZQ/s4000/20221117_161414.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVHHbBqY-e2X52f2SN9ezY_dsdArcRZ1tc0uTHiza8sJv4P8lWP-wbIAHsXsOb3WH3GHs2iQwSuAdXYwcuC0zSFg00qCOxg2_y9zzuX58CgwBG6URo456kdRUOW0dBvxBRc60LlwhCViH83BgMhypiREf7TLB5EShDStbGAcf6l8MGbEhj3IROJ2oaZQ/w480-h640/20221117_161414.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuMjVonjuG5vQGWdBO3AcWkZA28wkaJ3TQrdATLIU9QHQ8eNkJOs9vEfZzPxTRMX8LwmvAZ-wTOCGuc_S9cM1KmwUVCQgWB-jwoKajWR6rQIgqrrr3THEhN8KMS7NzX-wJxA3fPtGp_yRIpZuMeJbqp6qfSAbUfzRItEGSBmD0GBQVvqWIrw9UQ-P4Mw/s2486/20221117_160223.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2486" data-original-width="2486" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuMjVonjuG5vQGWdBO3AcWkZA28wkaJ3TQrdATLIU9QHQ8eNkJOs9vEfZzPxTRMX8LwmvAZ-wTOCGuc_S9cM1KmwUVCQgWB-jwoKajWR6rQIgqrrr3THEhN8KMS7NzX-wJxA3fPtGp_yRIpZuMeJbqp6qfSAbUfzRItEGSBmD0GBQVvqWIrw9UQ-P4Mw/w640-h640/20221117_160223.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCs0ZZ_Y-A-_vafvn338ZTWAZjEU4B_sjOVOZM2ZbQnQFIV-4LZPAavk0mdGc3dQCPmz5h6kXwEy6k6ov5znSO46_86PhGZRMy_bpAjfTnzpWPQjTdm5Xni1_qKfe3TrkAHrjn4TzJxrCWpS9aE_OOIGIOyK4mIJDQ2wAV3mGlsw6tJ-GdyfjQujR7xw/s4000/20221117_160429.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCs0ZZ_Y-A-_vafvn338ZTWAZjEU4B_sjOVOZM2ZbQnQFIV-4LZPAavk0mdGc3dQCPmz5h6kXwEy6k6ov5znSO46_86PhGZRMy_bpAjfTnzpWPQjTdm5Xni1_qKfe3TrkAHrjn4TzJxrCWpS9aE_OOIGIOyK4mIJDQ2wAV3mGlsw6tJ-GdyfjQujR7xw/w480-h640/20221117_160429.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-6570315034312246312022-11-17T01:49:00.005-06:002022-11-18T22:52:40.908-06:00PASS Summit 2022 - Day 1 In Pictures<p>Other PASS Summit 2022 Days - <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-pre-cons-were-amazing.html" target="_blank">Pre-Cons</a> | <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-2-in-pictures.html" target="_blank">Day 2</a> | <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-3-in-pictures.html" target="_blank">Day 3</a></p><p>--</p><p>The first "full" day of PASS 2022 kicked off with a bang when Rohan Kumar (<a href="https://twitter.com/RohanKData" target="_blank">@RohanKData</a>) stepped out on the keynote stage to announce SQL Server 2022 was GA (generally available) and then the day continued full throttle to the end of the day when I won a free copy of a book at the Amazon booth written by one my favorite SQLPeople Kevin Kline (<a href="https://twitter.com/kekline/" target="_blank">@kekline</a>).</p><p>Along the way we had an amazing Microsoft Keynote including a fun competition between Anna Hoffman (<a href="https://twitter.com/AnalyticAnna" target="_blank">@AnalyticAnna</a>) and Bob Ward (<a href="https://twitter.com/bobwardms" target="_blank">@bobwardms</a>), and another episode of the classic "Bob and Conor Show" featuring Bob Ward and Conor Cunningham (<a href="https://twitter.com/SQLConor" target="_blank">@sqlconor</a>). There was a live episode of the Data Exposed show featuring Anna Hoffmann and a swarm of Microsoft SQL leaders, and more SQL 2022 content with Bob and Ajay Jagannathan (<a href="https://twitter.com/AjayMSFT" target="_blank">@AjayMSFT</a>). I got Bob Ward to sign my new copy of his SQL 2022 book, and then went to the Redgate lunch on learning and managing your career. After lunch I saw Erik Darling (<a href="https://twitter.com/erikdarlingdata" target="_blank">@erikdarlingdata</a>) threaten to throw stickers at his audience while he demonstrated query plan gotchas and performance hacks, and then exposed my <a href="https://twitter.com/search?q=%23LegoSteveAtSummit&f=live" target="_blank">#LEGOSteveAtSummit</a> to caffeine overload. I wrapped up my session day learning about Upgrading SQL via Distributed Availability Groups from Stacey Kyrylova, and then went to the Exhibitors Reception for food and friends, where I won a copy of Kevin's book - signed by the author himself.</p><p>--</p><p>As an aside - Kevin was one of the first SQL "celebrities" I met in person long ago - at least more than 15 years ago - when he came to speak at our Omaha User Group. He was in town on a job from what was then Quest Software and came to speak to our group while he was in town. I remember being star-stuck to a degree - I used to read SQL Mag (remember SQL Mag?) and some blogs, but had never imagined actually talking to one of "those people" that wrote for the magazine - but I was also amazed at how *nice* Kevin was to everyone - he smiled at everybody and no question was stupid (even the stupid ones!)</p><p>That experience has shaped a lot of how I eventually ended up sharing in the community via blogging, speaking, and participating at events - the firm belief that we all should share what we know to make everyone better together.</p><p>Thanks, amigo!</p><p>--</p><p>It was an AWESOME day - what's going to happen tomorrow?</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwmvR1I4fAXzWRz9P_0VkzppPbI-J46S3-TGfY5DH42Rm4S9VaZ_Dkfg-RHwpasGLnLNqGQspbtDd9id5MK9Xd_rl-P1i-C2oZivjuN1DRPpGvb2XSRylkmaqWni_Nbirrq0h2pDT4hO33itC3dZdReBHExB2XYcFhjSQglXjo2MwkLMAQkBStFEN7zA/s4000/20221116_075647.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwmvR1I4fAXzWRz9P_0VkzppPbI-J46S3-TGfY5DH42Rm4S9VaZ_Dkfg-RHwpasGLnLNqGQspbtDd9id5MK9Xd_rl-P1i-C2oZivjuN1DRPpGvb2XSRylkmaqWni_Nbirrq0h2pDT4hO33itC3dZdReBHExB2XYcFhjSQglXjo2MwkLMAQkBStFEN7zA/w640-h480/20221116_075647.jpg" width="640" /></a> </div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsqqMQpIg_wShJ1nk3Rqtu3OchJI0LLAN7xiWE8bdYE_lI9miJuhn3Z7ArhlQ3JyW1KcWHPTYRXEqqUkNJCiswJV0BR2L_9wt_MXlxrzsv9id2yi42tHSVP7PzsgA-gvBPyC67u7to131zr4WYuCYdTWBlGxEKY-dGJhx-mnM8DKjkriElnkC29MtCoA/s4000/20221116_082043.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsqqMQpIg_wShJ1nk3Rqtu3OchJI0LLAN7xiWE8bdYE_lI9miJuhn3Z7ArhlQ3JyW1KcWHPTYRXEqqUkNJCiswJV0BR2L_9wt_MXlxrzsv9id2yi42tHSVP7PzsgA-gvBPyC67u7to131zr4WYuCYdTWBlGxEKY-dGJhx-mnM8DKjkriElnkC29MtCoA/w480-h640/20221116_082043.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtOMycLqTylZ7nl8qjkC1DZifGKwqKK4Pa8tQbFViUqeAh8ciGZwoCIT3I9Hci9XkoAWFwoCkUgZeCuDOosesSzIjRVDfe80VXhghcRJUpt0_0gbwswWgSUlW6ZJUH56NauXCG2YYvGjtmqyB__TKpWLtM5mKDJVYOpO_almlTahckQJMb_t0Xe28AmA/s4000/20221116_083424.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtOMycLqTylZ7nl8qjkC1DZifGKwqKK4Pa8tQbFViUqeAh8ciGZwoCIT3I9Hci9XkoAWFwoCkUgZeCuDOosesSzIjRVDfe80VXhghcRJUpt0_0gbwswWgSUlW6ZJUH56NauXCG2YYvGjtmqyB__TKpWLtM5mKDJVYOpO_almlTahckQJMb_t0Xe28AmA/w480-h640/20221116_083424.jpg" width="480" /></a></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2EbBmrxDyJoUJoq3F3p6N-TeuqsMQ237DBPxMbEio3lry__FYH75ThertPFNsHIwGeTgyRspBpjHn2mkWfm85Djz37IVuTp2qVweXr-DN1_1NVtx7ZK-m27A946Jn7fm40MWaDoTXPcE14cP2bXQ1Je7IHSg9gzce_9BWt8J1MPj9aIW7MRV5_8dXxA/s4000/20221116_084203.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2EbBmrxDyJoUJoq3F3p6N-TeuqsMQ237DBPxMbEio3lry__FYH75ThertPFNsHIwGeTgyRspBpjHn2mkWfm85Djz37IVuTp2qVweXr-DN1_1NVtx7ZK-m27A946Jn7fm40MWaDoTXPcE14cP2bXQ1Je7IHSg9gzce_9BWt8J1MPj9aIW7MRV5_8dXxA/w640-h480/20221116_084203.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnKjSqnBkrNDeJ2vFYTKcYPzASWXf5P_23JA8ovC_QgIDoXEP73YlOCD9dxvq9xlL2tLHc8BPEMRv0ArsYot0jjWwjrOkiWjiHLfLV9S58WVPydaRUqt8MdychFTPFQi9gKDPcYHw--AvUQs6k8o3qJLSeTl_X8vey9g0CRB4L2EZAjiDNjUdJHJ08lw/s4000/20221116_084246.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnKjSqnBkrNDeJ2vFYTKcYPzASWXf5P_23JA8ovC_QgIDoXEP73YlOCD9dxvq9xlL2tLHc8BPEMRv0ArsYot0jjWwjrOkiWjiHLfLV9S58WVPydaRUqt8MdychFTPFQi9gKDPcYHw--AvUQs6k8o3qJLSeTl_X8vey9g0CRB4L2EZAjiDNjUdJHJ08lw/w640-h480/20221116_084246.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNjmBXqXjXneYab0tdpiyUNsqA0ikaCdLGDa0i8dPpAz5-mpE0Dxahf5CRgR6646HM7KP6a-JRR91VPuslG2oBUem-5RHsqWqnCMyqmp_DCydDfvUEswsqjiOJfUtO9EjHrDaFAEcqiFW8Owm3PC4GcJ2DBC2kSwiRQgZKscLvwD3wtaQ070gPZlIfgw/s2016/20221116_085422.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2016" data-original-width="2016" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNjmBXqXjXneYab0tdpiyUNsqA0ikaCdLGDa0i8dPpAz5-mpE0Dxahf5CRgR6646HM7KP6a-JRR91VPuslG2oBUem-5RHsqWqnCMyqmp_DCydDfvUEswsqjiOJfUtO9EjHrDaFAEcqiFW8Owm3PC4GcJ2DBC2kSwiRQgZKscLvwD3wtaQ070gPZlIfgw/w640-h640/20221116_085422.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj07_iL67UOJbR4Z0S2b2Gp3mca__bTYNxC1Lr-7uizYqokgVEpdvQlveLFzpicnSIoyCPlkrsSjKnV4mbhA9ryKj0ccOlREHRUDxR8HiBa5M-IkDes3QNifLuN3oK1rZ1ZO-jRH5CY-9jtB2kQ0EYj-XhaGkJtkVJtkb7GMFggoj69IV870YqQqkpu-w/s4000/20221116_085847.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj07_iL67UOJbR4Z0S2b2Gp3mca__bTYNxC1Lr-7uizYqokgVEpdvQlveLFzpicnSIoyCPlkrsSjKnV4mbhA9ryKj0ccOlREHRUDxR8HiBa5M-IkDes3QNifLuN3oK1rZ1ZO-jRH5CY-9jtB2kQ0EYj-XhaGkJtkVJtkb7GMFggoj69IV870YqQqkpu-w/w640-h480/20221116_085847.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNHOx_yNYIhfVWt3BqEreXI3IagophPIK77h-scAn9qToAYOufPR9479de4h8QPoNH79ri6HxfE0Juh2CpG6S_fmIU9pLs2OKmi1UczdZqA_UhxFpFKeeLaelk9VpslzB6OvViYHA0wMXNiXWyjZCUNPXfvwIb8Xd4rQ5f2LJKHUZG7tA-6szlpU5t2g/s4000/20221116_094107.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNHOx_yNYIhfVWt3BqEreXI3IagophPIK77h-scAn9qToAYOufPR9479de4h8QPoNH79ri6HxfE0Juh2CpG6S_fmIU9pLs2OKmi1UczdZqA_UhxFpFKeeLaelk9VpslzB6OvViYHA0wMXNiXWyjZCUNPXfvwIb8Xd4rQ5f2LJKHUZG7tA-6szlpU5t2g/w640-h480/20221116_094107.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja76bFv8Z2hNQ9mc0bZAhGRs3e888T1UECwCL3ED6NZFZv9ubr8HtLhinz2bBrbpHnQChochlQsiGspOaLnfnLkM40aVdn9pwxUsFJgGNrLeZtdJ3yX5eUMPD_T7kUS2pAqtLzLj0BDDSxVYdbwZNyfbqUGhIIRSLR6j7Iuow4dx_GTC_pH59noEdyog/s4000/20221116_095121.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja76bFv8Z2hNQ9mc0bZAhGRs3e888T1UECwCL3ED6NZFZv9ubr8HtLhinz2bBrbpHnQChochlQsiGspOaLnfnLkM40aVdn9pwxUsFJgGNrLeZtdJ3yX5eUMPD_T7kUS2pAqtLzLj0BDDSxVYdbwZNyfbqUGhIIRSLR6j7Iuow4dx_GTC_pH59noEdyog/w640-h480/20221116_095121.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8eyb-qllxtWuDRF_cYYguc9IaQPmz9-ZhjHKwcpkIgrkzZHWrxrAL7s6ZIw2n4HFRa50_dGKjdiqi-1K9PvLTKFnGCmfVLnRs5ONU_lS6GiANH8fgbZ8DPlatzQYSLpSwhLDG0R46XEecTN7fEqDR2nhUh0tAV4-h-MJ8KaRc0c_RTwFJoTwxnWUxUg/s4000/20221116_095258.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8eyb-qllxtWuDRF_cYYguc9IaQPmz9-ZhjHKwcpkIgrkzZHWrxrAL7s6ZIw2n4HFRa50_dGKjdiqi-1K9PvLTKFnGCmfVLnRs5ONU_lS6GiANH8fgbZ8DPlatzQYSLpSwhLDG0R46XEecTN7fEqDR2nhUh0tAV4-h-MJ8KaRc0c_RTwFJoTwxnWUxUg/w640-h480/20221116_095258.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAYFrHs5mYf5zFpTZYdIgEgpaA8hlQOXPbfkN6UKOIKyG6cs-hhpL47C2mGnjG73kPLJmKxEeEEaStuOCyW_QL5u8ZSeqhFWqw9tcb35YRricxVVTvEQLBcPVntUO1lioncLFXPrLORakUuWJxvU5577dYIgz4RtAtdwDpHQtOZPurfz4v5GcSz90a6Q/s4000/20221116_101634.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAYFrHs5mYf5zFpTZYdIgEgpaA8hlQOXPbfkN6UKOIKyG6cs-hhpL47C2mGnjG73kPLJmKxEeEEaStuOCyW_QL5u8ZSeqhFWqw9tcb35YRricxVVTvEQLBcPVntUO1lioncLFXPrLORakUuWJxvU5577dYIgz4RtAtdwDpHQtOZPurfz4v5GcSz90a6Q/w640-h480/20221116_101634.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU2ZOd8fM4CUE0QA7tdthJ2_-SHIH7ATz8nAStP2bkz0H_JzUmLbw3YMz33N6ltHsO4p7-dAvHMt7-N5GONqVMfuBjmsvP1SfSYDjbdncnK_zHbxtym6XPLRlWGcNGyh5U84R_k5ro26azyiJO5qj0ZBllwyosIT2G9Xwsi3j6Hz5f_eiuJuvi3YfAIA/s4000/20221116_102641.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU2ZOd8fM4CUE0QA7tdthJ2_-SHIH7ATz8nAStP2bkz0H_JzUmLbw3YMz33N6ltHsO4p7-dAvHMt7-N5GONqVMfuBjmsvP1SfSYDjbdncnK_zHbxtym6XPLRlWGcNGyh5U84R_k5ro26azyiJO5qj0ZBllwyosIT2G9Xwsi3j6Hz5f_eiuJuvi3YfAIA/w640-h480/20221116_102641.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwMsILW-EufCmO-K0H2aiZXEHM7KCAItq7uToqlGd1okfpLq3ZpORs13vxmFDFWnA5PWYzIvWGXQNfjgSAwfbI1FPHmEQoG2H87umY3Ex1Iud0M0Y0jGLaU2yctyVNRRjI5LEFGMS3EGH7qGHUa0OOvfadMHyQYwHQQRbz945HI-ZhVmxs6j9GPzbE-g/s4000/20221116_103929.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwMsILW-EufCmO-K0H2aiZXEHM7KCAItq7uToqlGd1okfpLq3ZpORs13vxmFDFWnA5PWYzIvWGXQNfjgSAwfbI1FPHmEQoG2H87umY3Ex1Iud0M0Y0jGLaU2yctyVNRRjI5LEFGMS3EGH7qGHUa0OOvfadMHyQYwHQQRbz945HI-ZhVmxs6j9GPzbE-g/w640-h480/20221116_103929.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD8TWWLAs7aq4GEJCzqvBcd90K0UOyzVnNu05geOPsnSlm7j3D-uFLel53G_HDhRzq4fg-vEmsmIQDOVM53I7nZgPLurZCPh28nisYitoUUHy-jG7u4zh9iFojU935x7IkENFaD1UOHNYPwc2Stl3Gj9uje2dL7GCaTBl2EksLFzl_WywlD4c7zO1fMQ/s2496/20221116_111628.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1872" data-original-width="2496" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD8TWWLAs7aq4GEJCzqvBcd90K0UOyzVnNu05geOPsnSlm7j3D-uFLel53G_HDhRzq4fg-vEmsmIQDOVM53I7nZgPLurZCPh28nisYitoUUHy-jG7u4zh9iFojU935x7IkENFaD1UOHNYPwc2Stl3Gj9uje2dL7GCaTBl2EksLFzl_WywlD4c7zO1fMQ/w640-h480/20221116_111628.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDc3PuV7h2XWor26Rb6gkeaDHHYd4bOYj8vU918iD30VEAviWlfcbIA5Q2b72dSKBCsXJ2g2rM0yYqg60C64nPJgbmHE6_79uQxHm1VCyc1rwi4VoxsHIpcDiROgNhFy8ZN2LFVupm9wi2T2yw_GKglBc8leCZQjPExxVS25eB1d51jD4qf6vnYAeIg/s4000/20221116_133722.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMDc3PuV7h2XWor26Rb6gkeaDHHYd4bOYj8vU918iD30VEAviWlfcbIA5Q2b72dSKBCsXJ2g2rM0yYqg60C64nPJgbmHE6_79uQxHm1VCyc1rwi4VoxsHIpcDiROgNhFy8ZN2LFVupm9wi2T2yw_GKglBc8leCZQjPExxVS25eB1d51jD4qf6vnYAeIg/w480-h640/20221116_133722.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ki8NcknDmvwEIMtywkuGc00Nu_SoE0qCX0mzaArSc9ZqIuRDfzXU_r39nC35LeH4KyAgKaN8uwY5WSrgGSkPAxJ3DkSUJkcWd8VrIishUBXjv-S0MSjxt0aUkPx73J1AzWu8AfiIMWdLaTVhYjtqnqAuhgqnLkpPi_9TUIiCO-Ldir3SnIM4MmvTdg/s1654/20221116_141909.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1654" data-original-width="1654" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ki8NcknDmvwEIMtywkuGc00Nu_SoE0qCX0mzaArSc9ZqIuRDfzXU_r39nC35LeH4KyAgKaN8uwY5WSrgGSkPAxJ3DkSUJkcWd8VrIishUBXjv-S0MSjxt0aUkPx73J1AzWu8AfiIMWdLaTVhYjtqnqAuhgqnLkpPi_9TUIiCO-Ldir3SnIM4MmvTdg/w400-h400/20221116_141909.jpg" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFKSaKBOVGlTKnAlw6tMYmif_WOsLxtKD1oq0W8HHlFIqRsVSRhTJElmASZVRecqRG-A-1ZLkOhMWkdjORg6SO1rETJ4CR9sX4jpXJtUwlrX1gXWeMl6AHzNHcrqqQXpmplH3luetoQDqd4bOhuKNkJGkekgeHA4ge14qruRkPa6e0rkvcb_pjIXbcLA/s4000/20221116_144644.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFKSaKBOVGlTKnAlw6tMYmif_WOsLxtKD1oq0W8HHlFIqRsVSRhTJElmASZVRecqRG-A-1ZLkOhMWkdjORg6SO1rETJ4CR9sX4jpXJtUwlrX1gXWeMl6AHzNHcrqqQXpmplH3luetoQDqd4bOhuKNkJGkekgeHA4ge14qruRkPa6e0rkvcb_pjIXbcLA/w640-h480/20221116_144644.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7nNtKJZ27YDYb4-U9PLETFI4b0LlZKdRNrWO1L5KQjXTsRvh-6Pca7ALcHYeH7ql4h4e15-dhE69GYTrsMO4nSXXx3lZeWjcuQ16W6FWu54q1TgKLny9XMP4bJC46EY0boAQtbAXbS2NHYvonb93CoPi3lsogbwtl2dsbaBn7BlgRbxFug9lQttJwHg/s3477/20221116_160206.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3477" data-original-width="1957" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7nNtKJZ27YDYb4-U9PLETFI4b0LlZKdRNrWO1L5KQjXTsRvh-6Pca7ALcHYeH7ql4h4e15-dhE69GYTrsMO4nSXXx3lZeWjcuQ16W6FWu54q1TgKLny9XMP4bJC46EY0boAQtbAXbS2NHYvonb93CoPi3lsogbwtl2dsbaBn7BlgRbxFug9lQttJwHg/w360-h640/20221116_160206.jpg" width="360" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SHIBsYeab21i_Jjn7KDHBILcHw9ykIX9QlwDbIzaezZ0O-9Wv3HeFulTjyF8kgaoOYJBhgENWcwabZdT4iCDROEkmpK7P6j93X0pUXobg9ysszQXRkxv_c9KTK2JtK7faSnCQg7Kq5eZN0hOH8B97SPYo-sY7dwoswygVWY70MdxSfIOtC4UJMOaMA/s4000/20221116_162539.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SHIBsYeab21i_Jjn7KDHBILcHw9ykIX9QlwDbIzaezZ0O-9Wv3HeFulTjyF8kgaoOYJBhgENWcwabZdT4iCDROEkmpK7P6j93X0pUXobg9ysszQXRkxv_c9KTK2JtK7faSnCQg7Kq5eZN0hOH8B97SPYo-sY7dwoswygVWY70MdxSfIOtC4UJMOaMA/w480-h640/20221116_162539.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1coxMJ0XlHEswmaAbcDsEqkgKoyS2SJt-b8E1Nb2gMsJu7eFjjU6TnfQe1rOU1NrD0Le6g0l__0xKxQCx3d65aApSx_KiiS-aJGz78NDTbf2t4JVXig8gkUkW9sKbaVbwMleX1cqnO1aAkabxrmcpq-UhmMn0lGp528axEsmf4_9dhLOEykWazgrJaw/s4000/20221116_162035.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1coxMJ0XlHEswmaAbcDsEqkgKoyS2SJt-b8E1Nb2gMsJu7eFjjU6TnfQe1rOU1NrD0Le6g0l__0xKxQCx3d65aApSx_KiiS-aJGz78NDTbf2t4JVXig8gkUkW9sKbaVbwMleX1cqnO1aAkabxrmcpq-UhmMn0lGp528axEsmf4_9dhLOEykWazgrJaw/w640-h480/20221116_162035.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjynP2obqFZ8U71WKF470NidLMKXjLpztMMaDN_U0Xfqu9rNMkASf4A3i36yax5E519HDueQ8icRjaG-WZMQ6rgTNvj-Srj46CgvccpUvwXz9m-YC57WR8THrV91ku6zD_m1Gb4SfxfhlhDAUT7wsY1o1J6a1LjOQOBJvQdasVU73jCUj6xBllw8aLLMA/s4000/20221116_181950.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjynP2obqFZ8U71WKF470NidLMKXjLpztMMaDN_U0Xfqu9rNMkASf4A3i36yax5E519HDueQ8icRjaG-WZMQ6rgTNvj-Srj46CgvccpUvwXz9m-YC57WR8THrV91ku6zD_m1Gb4SfxfhlhDAUT7wsY1o1J6a1LjOQOBJvQdasVU73jCUj6xBllw8aLLMA/w480-h640/20221116_181950.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw_v0MfjXUj47BUHfgg6QPKYsVxX0J6fnJddCSR7Wqo4pw6Wk5iDGneZ-glnNYj1mlLgqgYaivaWHEc3gbXy4QlS-2AobTL1L8ZJxXkHxOejTV9Hro2LzUYIrowsRRmontz8ullPipi45Y43L6Xl4GZDvdA-gMPebR9VWzgf_o5pjNCaJV-QYeS3_7zg/s4000/20221116_181943.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw_v0MfjXUj47BUHfgg6QPKYsVxX0J6fnJddCSR7Wqo4pw6Wk5iDGneZ-glnNYj1mlLgqgYaivaWHEc3gbXy4QlS-2AobTL1L8ZJxXkHxOejTV9Hro2LzUYIrowsRRmontz8ullPipi45Y43L6Xl4GZDvdA-gMPebR9VWzgf_o5pjNCaJV-QYeS3_7zg/w480-h640/20221116_181943.jpg" width="480" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-51418415907925363572022-11-16T09:22:00.003-06:002022-11-16T09:23:12.472-06:00On Hybrid Events<p> In my <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-pre-cons-were-amazing.html" target="_blank">blog post last night on Days 1 and 2</a> of the PASS Summit, I included the following comment:</p><p><span face="Arial, Tahoma, Helvetica, FreeSans, sans-serif" style="color: #333333;"><span style="background-color: #fdfafe;"></span></span></p><blockquote><span face="Arial, Tahoma, Helvetica, FreeSans, sans-serif" style="color: #333333;"><i>(Along with that, I think having "hybrid" events like our current Summit dilutes the impact of the in-person event, although that is a conversation for another place, and as always is my $.02)</i></span></blockquote><p></p><p>As I expected, someone asked me about it - in this case one of the SQLPeople I greatly respect Mala Mahadevan (<a href="https://twitter.com/sqlmal" target="_blank">@sqlmal</a>):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbPdUzVqE27e6koC8GU8RyH7qlPqAccBoY1atZO3VH1wt-kWAlFtMWOq3FA71NOsfeW8dVkLsiSOttvXOYwUAbDZEk_91mml3n3nDgDBX8wsX0Ax1yNseRqPDVD0YxRuziV0ZtD3utFiQ6uEXvEZ5l6NlH0sZAPPugfhtFSnWFUCB_SI7oxVecQ-MySQ/s890/Tweet.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="353" data-original-width="890" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbPdUzVqE27e6koC8GU8RyH7qlPqAccBoY1atZO3VH1wt-kWAlFtMWOq3FA71NOsfeW8dVkLsiSOttvXOYwUAbDZEk_91mml3n3nDgDBX8wsX0Ax1yNseRqPDVD0YxRuziV0ZtD3utFiQ6uEXvEZ5l6NlH0sZAPPugfhtFSnWFUCB_SI7oxVecQ-MySQ/w640-h254/Tweet.JPG" width="640" /></a></div><div><br /></div>I want to start by saying I am not picking a fight - this is my opinion and I respect anyone who disagrees.<div><br /></div><div>Like anything else, the concept of a Hybrid event is both positive in some ways and negative in others.</div><div><br /></div><div>The biggest positive, especially in the current pandemic world but also even before that, is that there are people who can't travel - they have health reasons, they can't get time off work, they can't afford to travel, and so many more. These people get the benefit of viewing the sessions remotely and in some cases asking questions of the presenter where otherwise they would not have been able to benefit at all.</div><div><br /></div><div>I have no disagreement with that and I am glad that so many people like Mala are being able to benefit from that.</div><div><br /></div><div>The main negatives I see are twofold - one for the attendees themselves and one for the overall event.</div><div><br /></div><div>These negatives both make the same assumption - that the existence of the hybrid event "enables" people who would have attended the event in-person to not come - people who would be in Seattle but are not simply because they have an option. I personally know of multiple people in this situation - they were waffling about whether to come or not simply to save money (not for health reasons, etc.) and ultimately decided to stay remote.</div><div><br /></div><div>This does not judge the choice of those people - it is just what I feel is the impact of it.</div><div><br /></div><div>The biggest direct impact I see to the attendees is the absence of those persons from the in-person experience - it is one thing to virtually raise your hand when the speaker is buzzing along or even when there is a session of questions, but it isn't possible to interact the same way as when you are in the room. In both of the pre-cons I attended as well as in past hybrid meetings - where there are a group of people in a conference room and one or more people remotely - the remote people can't interject quickly enough compared to the people in the room. </div><div><br /></div><div>The other problem rising from the absence of person is the conversations that *don't* happen because the person isn't there; both days I have sat in a room full of people with people on all sides of me. In both presentations there were side conversations that happened during the talk - conversations that raised questions that wouldn't have been asked if the two people were on their laptops at home and unaware of each other, as well as answers that were amplified because someone in the room was able to share a relevant experience that the speaker didn't have ("we ran into this problem in my shop and this is what happened to us.")</div><div><br /></div><div>Both days I had interesting people sitting around me, and we talked about many interesting personal and professional things that weren't directly related to the session content, and those conversations wouldn't have happened if we were at home in front of our laptops.</div><div><br /></div><div>This is true at events outside the sessions as well - how many conversations and connections *didn't* happen at the Welcome Reception last night because the remote persons were...remote.</div><div><br /></div><div>Full disclosure - if you don't already know, I am a 100% remote employee working on a team of DBA"s who are all 100% remote for over nine years now. At the beginning I saw some of these same issues there and wondered about it - how does it work when you don't eat lunch together or stand around in the breakroom together? We have forged a culture and process where everyone sits in online TEAMS rooms all day every day and we randomly discuss what is going on in our lives or in the outside world live in chat; many meetings with people outside our immediate group start or end with 5-10 minutes of discussing what's going on this weekend or where someone went on vacation (just like in an in-person office). Even with all of this some people over the years simply can't handle being remote and choose to leave because of it. The biggest difference, and the reason it can work, is that we are a relatively small group - 8-10 people on a team or in a meeting rather than 60 people in a session - and we are all remote - there are no people "in the room" to miss interacting with. </div><div><br /></div><div>The impact to the event itself is a longer term issue and can to a degree be prevented *if* the in-person event continues to be more and more amazing (although there is some upper bound to how amazing something can be).</div><div><br /></div><div>As we saw with "classic PASS" it is difficult to fund an organization on the reduced funds that virtual registration fees bring - it eventually causes issues to the program. (Maybe Redgate has made some internal decision that "we don't care if it makes money" but I don't know.) </div><div><br /></div><div>This year someone commented that there are around 1,800 in-person registrations (not a confirmed number) and an unknown number of remote registrations. The Welcome Reception last night looked like a good crowd, and it will be interesting to see how full the Microsoft Keynote room is this morning compared to my memories of Summits past. </div><div><br /></div><div>All in all this year seems positive - there are enough people here to make things work, even with hybrid available.</div><div><br /></div><div>The gotcha is what comes in future years, and I know my wife is seeing this at some event she attends; right now to us in-person is again "new" and everybody is excited to be here if they possibly can - but will that continue in a year or two when it is no longer unique to be in-person again?</div><div><br /></div><div>Let's make up some numbers for an example - we will say that the 1,800 number is correct, and that there are hypothetically 1,000 remote registrations - no problem.</div><div><br /></div><div>Next year, some of those 1,800 people decide that they would rather save the travel expenses, or not take time off work (not judging those decisions), and there are now 1,500 in-person registrations and 1,300 reduced fee virtual registrations.</div><div><br /></div><div>The following year, partially because the previous year's Summit was down to 1.500 people so not as impressive, another 200 people "stay home" and now you have 1,300 people on-site and 1,500 reduced fee registrations.</div><div><br /></div><div>At some point you don't have enough people in the room anymore, and the event folds for everyone (again).</div><div><br /></div><div>As mentioned above, the event organizers can help prevent this - the in-person experience needs to continue to be so great that people *don't* choose to stay home unless they absolutely have to - that people come to Seattle if at possible.</div><div><br /></div><div>...and I hope that's what happens - keep it up Redgate, Microsoft, and everyone else.</div><div><br /></div><div>That's my $.02 - thanks for reading!<p><br /></p></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-11623009454352109332022-11-16T00:14:00.003-06:002022-11-18T22:53:25.435-06:00PASS Summit 2022 - Pre-Cons Were Amazing!<div class="separator" style="clear: both; text-align: left;"><p>Other PASS Summit 2022 Days - <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-1-in-pictures.html" target="_blank">Day 1</a> | <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-2-in-pictures.html" target="_blank">Day 2</a> | <a href="https://nebraskasql.blogspot.com/2022/11/pass-summit-2022-day-3-in-pictures.html" target="_blank">Day 3</a></p><p>--</p></div><div class="separator" style="clear: both; text-align: left;">It's that time again...TUESDAY!</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><span style="font-size: x-small;"><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvqTAXXDIKgcjwhJnLJSrmZwLguXrquCsWkmTx8qZXLT38prfn2r6AxotczYynqwRSJu0VVjOf7eL2upZccwVWHqQAwOC1cwBQcydnAmd9edFsJi6h-aE6XHrWP4ougHs1owh5E6DBNwHb4SIrhcbLxUif-tG6UkeIFN97BvSROLRRUf65V21Dk_c4tQ/s430/UhWhatBoromir.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="253" data-original-width="430" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvqTAXXDIKgcjwhJnLJSrmZwLguXrquCsWkmTx8qZXLT38prfn2r6AxotczYynqwRSJu0VVjOf7eL2upZccwVWHqQAwOC1cwBQcydnAmd9edFsJi6h-aE6XHrWP4ougHs1owh5E6DBNwHb4SIrhcbLxUif-tG6UkeIFN97BvSROLRRUf65V21Dk_c4tQ/w400-h235/UhWhatBoromir.jpg" width="400" /></a></span></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;"><br />https://www.mememaker.net/static/images/memes/4791280.jpg</span></td></tr></tbody></table><br />I mean...NOVEMBER!<div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmKSWWk9QW9L0X3UP57igql0m2Fp_bLXD24oXrfQpiWbXeq8xvxp8A8ZNMILlJdinBG-c7N3XTjOiaELZU5_bwWZ2xZU5DYxLDomg3bAAHv9svRk9tMHV3MVtbmZZsQ-oENqzruiOnT4h8IYEGWp3p0icWOH4jUvZ2p-Q6Fu7iO1iGdQjkd6NCkDtYRA/s498/well-uh.gif" style="margin-left: auto; margin-right: auto;"><span style="font-size: x-small;"><img border="0" data-original-height="344" data-original-width="498" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmKSWWk9QW9L0X3UP57igql0m2Fp_bLXD24oXrfQpiWbXeq8xvxp8A8ZNMILlJdinBG-c7N3XTjOiaELZU5_bwWZ2xZU5DYxLDomg3bAAHv9svRk9tMHV3MVtbmZZsQ-oENqzruiOnT4h8IYEGWp3p0icWOH4jUvZ2p-Q6Fu7iO1iGdQjkd6NCkDtYRA/w400-h276/well-uh.gif" width="400" /></span></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;"><br />https://tinyurl.com/33hezsje</span></td></tr></tbody></table><br />OK fine...SUMMIT!<div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEhvZT3ezhUvOVQPbYmdRbhw71ASgeKxtaJ0TpsVKiAIzCTCpNRfrMSFvi1kxW9lA8qf7-2x2KV_up6V_1sPRdqK5jNGC6_ec_xNNurzhVsdA7rIHqMMogKb_jcylzRj_j9vtVMNRtZAj7fiLNA2HUFxF115fNoJWvRJKOE_joq5lrSKKX6138uBatrQ/s1195/10802365.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="645" data-original-width="1195" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEhvZT3ezhUvOVQPbYmdRbhw71ASgeKxtaJ0TpsVKiAIzCTCpNRfrMSFvi1kxW9lA8qf7-2x2KV_up6V_1sPRdqK5jNGC6_ec_xNNurzhVsdA7rIHqMMogKb_jcylzRj_j9vtVMNRtZAj7fiLNA2HUFxF115fNoJWvRJKOE_joq5lrSKKX6138uBatrQ/w640-h346/10802365.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;"><br />https://img.memegenerator.net/images/10802365.jpg</span></td></tr></tbody></table><br /><div>I have very much missed in-person events and I am glad that Redgate (<a href="https://twitter.com/redgate" target="_blank">@Redgate</a>) has managed to continue the <a href="https://twitter.com/PASSDataSummit" target="_blank">@PASSDataSummit</a> framework - virtual presentations are better than absolutely nothing, but it will never (*NEVER*) be the same as being together to not only share comments and questions but also for all of the other networking and social opportunities that in-person events bring.</div><div><br /></div><div>(Along with that, I think having "hybrid" events like our current Summit dilutes the impact of the in-person event, although that is a conversation for another place, and as always is my $.02)</div><div><div><br /></div><div>Now that I am here (AWESOME!) I wanted to share the highlights of my first two days here at Summit 2022.</div><div><br /></div><div>On Monday I participated in the "Securing the Data Platform" pre-con given by one of my SQLfriends from Iowa, Ed Leighton-Dick (<a href="https://twitter.com/eleightondick" target="_blank">@eleightondick</a>/<a href="https://kingfisherdata.com/blog/" target="_blank">blog</a>). Over the last eight years, Ed has grown his company Kingfisher Technologies into a great database security resource.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzatecPYStp-XuoZHe9iG3iAWW529qELHajiGOXx5_oLw4Qqg4Gsb7LKgXVmfnj9ITXoAk0zXJmSjhLKvmv_OcLdKJJGhFUnn4jO2MSCza5csrwy2Fob0Vp-Ctod1cpoy-3RamRLMvgZXD7wOck7Yek0UZ9WymQU2ezPgXtdhy0TEGeigrvskpWs449Q/s488/Ed.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="377" data-original-width="488" height="309" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzatecPYStp-XuoZHe9iG3iAWW529qELHajiGOXx5_oLw4Qqg4Gsb7LKgXVmfnj9ITXoAk0zXJmSjhLKvmv_OcLdKJJGhFUnn4jO2MSCza5csrwy2Fob0Vp-Ctod1cpoy-3RamRLMvgZXD7wOck7Yek0UZ9WymQU2ezPgXtdhy0TEGeigrvskpWs449Q/w400-h309/Ed.JPG" width="400" /></a></div><div><br /></div><div>Ed's presentation followed the same style as many other security talks I have seen - he spent the first half of his talk scaring the bejeezus out of everyone to demonstrate the importance of adopting the principles covered in the second half of the talk! Ed covered some well known hacks from the last ten years as well as several that I had never heard of at major organizations, and discussed the specific gaps that allowed the incidents to occur</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMbrMzctAN38wREDK7UnEEFxHXQRHT8V2HlPxR2osS37fxCEn_XclCDC4_gEKHArZS24YWmRXAu-pVfz91M6fMj9XwsYtVNrSnMAtreGllBymIFbe5PSbPGpHkDQRdWiZyR5Rgrb8_nUolkghOeueSSFp8DN07ad8L9t_0hwKykYddCT4zvTUJsFQ4Og/s600/still-scared--you-should-be-meme-31789.jpg" style="margin-left: auto; margin-right: auto;"><span style="font-size: x-small;"><img border="0" data-original-height="563" data-original-width="600" height="375" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMbrMzctAN38wREDK7UnEEFxHXQRHT8V2HlPxR2osS37fxCEn_XclCDC4_gEKHArZS24YWmRXAu-pVfz91M6fMj9XwsYtVNrSnMAtreGllBymIFbe5PSbPGpHkDQRdWiZyR5Rgrb8_nUolkghOeueSSFp8DN07ad8L9t_0hwKykYddCT4zvTUJsFQ4Og/w400-h375/still-scared--you-should-be-meme-31789.jpg" width="400" /></span></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;"><br />https://s3.memeshappen.com/memes/still-scared--you-should-be-meme-31789.jpg</span></td></tr></tbody></table><br /><div>Ed have some great tips on encryption, including encrypting connection strings, proper ways to set up service accounts to prevent inappropriate escalation of privilege, and general security implementation best practices.<br /><p>Tuesday brought the pre-con I was most excited for (sorry Ed) - the SQL Server 2022 Workshop presented by Bob Ward (<a href="https://twitter.com/bobwardms" target="_blank">@bobwardms</a>) and an all-star team of Microsoft team members. Bob's presentations are always "brain melting" and today's did not disappoint.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwhCYopTaoBy30xLFWhhhfEgl-8kHBjcxuW0fAZXJJilJxIubAEnrCEfKyxZ3bOBmDftiGa4cuO3B2d_i6NPg1l9AOzzpYYRSHZ3qdH9OyBMXL3c15v4hoSEBwYnvqPtcnfah3jHqD6ytM398aEioS_fOuNJtipiBdVmA6e_mDAQHTBMiiBrYAWkODbA/s454/Bob.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="393" data-original-width="454" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwhCYopTaoBy30xLFWhhhfEgl-8kHBjcxuW0fAZXJJilJxIubAEnrCEfKyxZ3bOBmDftiGa4cuO3B2d_i6NPg1l9AOzzpYYRSHZ3qdH9OyBMXL3c15v4hoSEBwYnvqPtcnfah3jHqD6ytM398aEioS_fOuNJtipiBdVmA6e_mDAQHTBMiiBrYAWkODbA/w400-h346/Bob.JPG" width="400" /></a></div><br /><p>The main focus of the workshop is what Bob called the SQL 2022 "Wheel of Power" - five grouping of cool new features and improvements in the new product:</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwTANd3K5aOmvc7mWO_r9uQPfglNalIhWpKvn4KdyKOwJ0L1U_jMVwtw_VTPhRXhI4Wlg-_KxU0FvUnZPbrHgmRAI0KOrvOZexEua33hEQmwlYpDQOVv_u7XM7ocAG1xOJoV94vSKhC5y7M8wbZQzkVRDiBRL7bhRYNG9YBP1-FDreUNukckprf9YSwA/s1088/WheelOfPower.JPG" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="607" data-original-width="1088" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwTANd3K5aOmvc7mWO_r9uQPfglNalIhWpKvn4KdyKOwJ0L1U_jMVwtw_VTPhRXhI4Wlg-_KxU0FvUnZPbrHgmRAI0KOrvOZexEua33hEQmwlYpDQOVv_u7XM7ocAG1xOJoV94vSKhC5y7M8wbZQzkVRDiBRL7bhRYNG9YBP1-FDreUNukckprf9YSwA/w640-h358/WheelOfPower.JPG" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">courtesy Bob Ward</span></td></tr></tbody></table><p>The presentation ran through a wide variety of items, including:</p><p></p><ul style="text-align: left;"><li>Linking Azure SQL Managed Instance to your traditional SQL Server instance for DR or to migrate to MI</li><li>Parameter Sensitive Plan Optimization with multiple query plans for a single stored procedure</li><li>Cardinality Estimation Feedback that leverages Query Store to determine which Cardinality Estimator is better for your high impact queries</li><li>Degree of Parallelism Feedback which similarly uses Query Store to discern if a lower DoP would be "good enough" for your query at lesser CPU cost</li><li>Contained Availability Groups to duplicate instance level objects (including SQL Agent jobs!) as part of the AG</li><li>Ledger to track data changes to document attempts to fraudulently change your data</li><li>Improved T-SQL</li><li>Major Intelligent Query Processing enhancements</li></ul>...and so much more!<br /><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2n9T5XhsCxrGVLTLGiCbJwuQVqTvTNYEmAYZp4CQQT-AkZZcR9Ayrp_QPRSLKUnt3qWYqEe94_cvSPH_AbvwwyvTQRNETMEXdrZEbRIdM1C3fXZ9WfhxhXvGO9DxqpnCDZkuvuMQmLsf5-EVfFX5wXVIByM6us3yUB_yJNzqzjC6ngLaPuDTR0NX5vw/s501/4710a3.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="500" data-original-width="501" height="399" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2n9T5XhsCxrGVLTLGiCbJwuQVqTvTNYEmAYZp4CQQT-AkZZcR9Ayrp_QPRSLKUnt3qWYqEe94_cvSPH_AbvwwyvTQRNETMEXdrZEbRIdM1C3fXZ9WfhxhXvGO9DxqpnCDZkuvuMQmLsf5-EVfFX5wXVIByM6us3yUB_yJNzqzjC6ngLaPuDTR0NX5vw/w400-h399/4710a3.jpg" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;"><br />https://i.imgflip.com/4710a3.jpg</span><br /><br /></td></tr></tbody></table>The evening closed with the Welcome Reception, which as always was a fun opportunity to reconnect with #sqlfamily that I haven't seen since before the pandemic started.<p>I am looking forward to the rest of the week - it's going to be great!</p><p>--</p><p>An aside - this is my first blog post in over a year; I haven't written much since COVID and have not presented at all - I hope to correct both of these going forward, although opportunities for in-person speaking are still greatly diminished after the demise of PASS SQL Saturdays; there are the "new" SQL Saturdays underwritten by the new covering organization, but there simply aren't that many events yet.</p><p>Thanks for reading everyone and hope to see you soon!</p><p><br /></p></div></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-22759332522840826442021-03-02T15:03:00.000-06:002021-03-02T15:03:06.703-06:00Disabling Non-Clustered Indexes For Fun and Profit<p>One of the frequently quoted ETL best practices is to disable your non-clustered indexes during a data load. Basically the conventional wisdom is that you disable the non-clustered indexes, do your load, and then enable the non-clustered indexes, which functionally rebuilds them with the newly loaded data (a step you should be performing after a load of any size even if you *don't* disable your indexes - rebuild those newly fragmented indexes!)</p><p>So why doesn't anybody seem to do this?</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLfT-RM9PcwPgSNSS7x-mrZpPqU0nhUpRM-vqqiLrxvK1Zc6x-RjP7esl8c07jY6hsJABMCIertZ9QCo5Btm8ZzpN_NP4nNgpXp5a4S9gD0dYRaFWieGOHFNVKAN-oeGZQ-6AgSi-Aov-J/s798/ponder-we-must.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="604" data-original-width="798" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLfT-RM9PcwPgSNSS7x-mrZpPqU0nhUpRM-vqqiLrxvK1Zc6x-RjP7esl8c07jY6hsJABMCIertZ9QCo5Btm8ZzpN_NP4nNgpXp5a4S9gD0dYRaFWieGOHFNVKAN-oeGZQ-6AgSi-Aov-J/w400-h303/ponder-we-must.jpg" title="https://memegenerator.net/img/instances/53039992/ponder-we-must.jpg" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/53039992/ponder-we-must.jpg</td></tr></tbody></table><p>--</p><p>IMPORTANT NOTE <cue scary music> - <b><span style="background-color: #fcff01; color: red;">do NOT disable the clustered index</span></b> when doing data loads or at any other time you want the table to be accessible. Disabling the clustered index makes the object (table or view) inaccessible.</p><p>If you disable the clustered index you are functionally disabling the object, and any attempts to access that object will result in an Error 8655:</p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><p><span style="font-family: courier;">Msg 8655, Level 16, State 1, Line 23</span></p><p><span style="font-family: courier;">The query processor is unable to produce a plan because the index ‘PK_Person_BusinessEntityID’ on table or view ‘Person’ is disabled.</span></p></blockquote><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyPG1Cfoc-nchc8PqTimsk3BLiyMpMNLOZVr-NYDdlO44lb23SolUznUWcSFS2hEhUwFm6HA1pAfEYEmAXP7ucRpzpCEtccV7WuMIhrFw7jF9uiLVBxcBTVKv0vCRRRbb9AUB5hLDFFxw3/s550/no-please-dont-do-that.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="417" data-original-width="550" height="304" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyPG1Cfoc-nchc8PqTimsk3BLiyMpMNLOZVr-NYDdlO44lb23SolUznUWcSFS2hEhUwFm6HA1pAfEYEmAXP7ucRpzpCEtccV7WuMIhrFw7jF9uiLVBxcBTVKv0vCRRRbb9AUB5hLDFFxw3/w400-h304/no-please-dont-do-that.jpg" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/62333367/no-please-dont-do-that.jpg</td></tr></tbody></table><p>-- </p><p>I recently had a situation with a client where they have a load process that altogether runs over 24 hours - not one day-long query but rather a string of processes that usually takes 24+ hours to complete. The situation has worsened to the point where other things are impacted because the process is taking so long, and they asked me to check it out.</p><p>I started with all of the basics, and right away Page Life Expectancy during the relevant period jumped out:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQIe7vqlTNUMsNuVGiWmmljKK5sP1WiYZ2kpusa_TOy8vJSvhXbwJj6JpyyPWhrqNrGegyHxMF6D1I2Ybz5PEnTtSEw5JEqU9Nlb_dj6As6BggJVWgYMtHJQjba3_tweSk-ZKnd4gPKTLj/s1010/PLE.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="579" data-original-width="1010" height="366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQIe7vqlTNUMsNuVGiWmmljKK5sP1WiYZ2kpusa_TOy8vJSvhXbwJj6JpyyPWhrqNrGegyHxMF6D1I2Ybz5PEnTtSEw5JEqU9Nlb_dj6As6BggJVWgYMtHJQjba3_tweSk-ZKnd4gPKTLj/w640-h366/PLE.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div>The server has 128GB of RAM...so a PLE consistently below 1,000 is pretty low.<div><br /></div><div>I used XEvents to gather queries with large memory grants, and it brought to light an issue that the client has previously considered but not handled - disabling indexes during the load.</div><div><br /></div><div>** SIDEBAR**</div><div><br /></div><div>The code for the XEvents session to pull large memory grant queries I used is as follows - it collects any memory grant over 8MB (which you can modify in the WHERE clause) and its calling query:</div><div><br /></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div><div><span style="font-family: courier;">CREATE EVENT SESSION [Ntirety_MemoryGrantUsage] ON SERVER </span></div></div><div><div><span style="font-family: courier;">ADD EVENT sqlserver.query_memory_grant_usage</span></div></div><div><div><span style="font-family: courier;">(</span></div></div><div><div><span style="font-family: courier;">ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.database_id</span></div></div><div><div><span style="font-family: courier;">,sqlserver.database_name,sqlserver.server_principal_name,sqlserver.session_id,sqlserver.sql_text)</span></div></div><div><div><span style="font-family: courier;"><br /></span></div></div><div><div><span style="font-family: courier;">WHERE ([package0].[greater_than_uint64]([granted_memory_kb],(8192))))</span></div></div><div><div><span style="font-family: courier;"><br /></span></div></div><div><div><span style="font-family: courier;">ADD TARGET package0.event_file(SET filename=N'Ntirety_MemoryGrantUsage',max_file_size=(256)),</span></div></div><div><div><span style="font-family: courier;"><br /></span></div></div><div><div><span style="font-family: courier;">ADD TARGET package0.ring_buffer(SET max_events_limit=(0),max_memory=(1048576))</span></div></div><div><div><span style="font-family: courier;"><br /></span></div></div><div><div><span style="font-family: courier;">WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON</span></div></div><div><div><span style="font-family: courier;">)</span></div></div></blockquote><div><div><br /></div><div>The query to then retrieve the data is this - it dynamically pulls your default error log path and then queries the XEL output file from the event_file target in the session at that path:</div><div><br /></div></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div><div><div><span style="font-family: courier;">USE master</span></div></div></div><div><div><div><span style="font-family: courier;">GO</span></div></div></div><div><div><div><span style="font-family: courier;"><br /></span></div></div></div><div><div><div><span style="font-family: courier;">DECLARE @ErrorLogPath nvarchar(400), @XELPath nvarchar(500)</span></div></div></div><div><div><div><span style="font-family: courier;"><br /></span></div></div></div><div><div><div><span style="font-family: courier;">SET @ErrorLogPath = (</span></div></div></div><div><div><div><span style="font-family: courier;">SELECT LEFT(cast(SERVERPROPERTY('ErrorLogFileName') as nvarchar(400)),LEN(cast(SERVERPROPERTY('ErrorLogFileName') as nvarchar(400)))-8)</span></div></div></div><div><div><div><span style="font-family: courier;">)</span></div></div></div><div><div><div><span style="font-family: courier;"><br /></span></div></div></div><div><div><div><span style="font-family: courier;">SET @XELPath = @ErrorLogPath+'Ntirety_MemoryGrantUsage*.xel'</span></div></div></div><div><div><div><span style="font-family: courier;"><br /></span></div></div></div><div><div><div><span style="font-family: courier;">SELECT DISTINCT *</span></div></div></div><div><div><div><span style="font-family: courier;">FROM </span></div></div></div><div><div><div><span style="font-family: courier;">(</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>SELECT </span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span> DATEADD(hh, DATEDIFF(hh, GETUTCDATE(), CURRENT_TIMESTAMP), event_data.value(N'(event/@timestamp)[1]', N'datetime'))as Event_time</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, CAST(n.value('(data[@name="granted_memory_kb"]/value)[1]', 'bigint')/1024.0 as DECIMAL(30,2)) AS granted_memory_mb</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, CAST(n.value('(data[@name="used_memory_kb"]/value)[1]', 'bigint')/1024.0 as DECIMAL(30,2)) AS used_memory_mb</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, n.value('(data[@name="usage_percent"]/value)[1]', 'int') AS usage_percent</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, n.value ('(action[@name="database_name"]/value)[1]', 'nvarchar(50)') AS database_name</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, n.value ('(action[@name="client_app_name"]/value)[1]','nvarchar(50)') AS client_app_name</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, n.value ('(action[@name="client_hostname"]/value)[1]','nvarchar(50)') AS client_hostname</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, n.value ('(action[@name="server_principal_name"]/value)[1]','nvarchar(500)') AS [server_principal_name]</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, n.value('(@name)[1]', 'varchar(50)') AS event_type</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, n.value ('(action[@name="sql_text"]/value)[1]', 'nvarchar(4000)') AS sql_text</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>FROM </span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>(</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>SELECT CAST(event_data AS XML) AS event_data</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>FROM sys.fn_xe_file_target_read_file(</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>@XELPath</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, NULL</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, NULL</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>, NULL)</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>) </span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>AS Event_Data_Table</span></div></div></div><div><div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>CROSS APPLY event_data.nodes('event') AS q(n)</span></div></div></div><div><div><div><span style="font-family: courier;">) MemoryGrantUsage</span></div></div></div><div><div><div><span style="font-family: courier;">ORDER BY event_time desc</span></div></div></div></blockquote><div><div><br /></div><div>** END SIDEBAR **</div><div><br /></div><div>Looking at the queries that were the top memory consumers over the time period led to some pretty basic queries:</div><div><br /></div></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div><div><div><span style="font-family: courier;">INSERT INTO "dbo"."Junk" </span></div></div></div><div><div><div><span style="font-family: courier;">SELECT "UID"</span></div></div></div><div><div><div><span style="font-family: courier;">, "ContainerId"</span></div></div></div><div><div><div><span style="font-family: courier;">, "CategoryCode"</span></div></div></div><div><div><div><span style="font-family: courier;">, "CategoryName"</span></div></div></div><div><div><div><span style="font-family: courier;">, "CategoryDataValue"</span></div></div></div><div><div><div><span style="font-family: courier;">, "CharacteristicCode"</span></div></div></div><div><div><div><span style="font-family: courier;">, "CharacteristicName"</span></div></div></div><div><div><div><span style="font-family: courier;">, "CharacteristicDataValue"</span></div></div></div><div><div><div><span style="font-family: courier;">, "DimensionCode"</span></div></div></div><div><div><div><span style="font-family: courier;">, "DimensionName"</span></div></div></div><div><div><div><span style="font-family: courier;">, "DimensionDataValue"</span></div></div></div><div><div><div><span style="font-family: courier;">, "OptionId"</span></div></div></div><div><div><div><span style="font-family: courier;">, "NumberOfItems"</span></div></div></div><div><div><div><span style="font-family: courier;">, "IsStandard"</span></div></div></div><div><div><div><span style="font-family: courier;">, "LanguageId"</span></div></div></div><div><div><div><span style="font-family: courier;">, "Market"</span></div></div></div><div><div><div><span style="font-family: courier;">, "VehicleType"</span></div></div></div><div><div><div><span style="font-family: courier;">, "YearMonth"</span></div></div></div><div><div><div><span style="font-family: courier;">, "BatchRefreshDate"</span></div></div></div><div><div><div><span style="font-family: courier;">, "CreatedBy"</span></div></div></div><div><div><div><span style="font-family: courier;">, "CreatedTimestamp"</span></div></div></div><div><div><div><span style="font-family: courier;">, "ModifiedBy"</span></div></div></div><div><div><div><span style="font-family: courier;">, "ModifiedTimestamp"</span></div></div></div><div><div><div><span style="font-family: courier;">, "BatchId" </span></div></div></div><div><div><div><span style="font-family: courier;">FROM "dbo"."Junk_Stg" </span></div></div></div><div><div><div><span style="font-family: courier;">where "Market" = 'XYZ' </span></div></div></div></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div><div><div><span style="font-family: courier;"> </span></div></div></div></blockquote><div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzA87q13aWRL9OUtOvRtsCU_wwS0ane3iJhWFp9Huz52JUFDdBQzoKMW0DEzuJnNqaFGHPRk0p_RvS80VsVhUrb5Yd7XKOQEvVlTHHVeqiAQxzJxRWVWlZ1EzkReB_VqYIdGuveb3t62ac/s600/so-simple-right.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="600" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzA87q13aWRL9OUtOvRtsCU_wwS0ane3iJhWFp9Huz52JUFDdBQzoKMW0DEzuJnNqaFGHPRk0p_RvS80VsVhUrb5Yd7XKOQEvVlTHHVeqiAQxzJxRWVWlZ1EzkReB_VqYIdGuveb3t62ac/w400-h266/so-simple-right.jpg" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://media.makeameme.org/created/so-simple-right.jpg</td></tr></tbody></table><div><br /></div><div>The immediate problem to me was that memory grants usually come from SORT and HASH operations (check out Erik Darling's great description at <a href="https://www.erikdarlingdata.com/starting-sql/starting-sql-memory-grants-in-execution-plans/" target="_blank">https://www.erikdarlingdata.com/starting-sql/starting-sql-memory-grants-in-execution-plans/</a>) and this query doesn't obviously do any of that - it is a very straightforward INSERT...SELECT from one table into another, but the query plan looks like this:</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPFvDBhpRBKe0ZgCJqvqEJ59xUzpc7iND7-dHbjxrBii-IQQ2AM13jK-w30EHtooC5swzmeSfw8hBPKeKho0li-3vsqMYZTzZa4eX-q9M_GEUfEthWCkwxxrB_PJv1ZphxfinxP6A6R4_e/s1313/QueryPlan1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="1313" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPFvDBhpRBKe0ZgCJqvqEJ59xUzpc7iND7-dHbjxrBii-IQQ2AM13jK-w30EHtooC5swzmeSfw8hBPKeKho0li-3vsqMYZTzZa4eX-q9M_GEUfEthWCkwxxrB_PJv1ZphxfinxP6A6R4_e/w640-h250/QueryPlan1.jpg" width="640" /></a></div> </div><div>Pretty crazy right? With all of those SORT's, no wonder SQL Server wants to give this query a giant memory grant!</div><div><br /></div><div>But why are there six different SORT operations on this one basic INSERT...SELECT?</div><div><br /></div><div>Then I realized this is why:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimq8CUjwPTpjHlmmOeqDhp1bqt9yORab2a3ggtwW34Tq5Wma2FtTA6UlLZCZAK1DCyMfo9DG7xvQXaLj6ka8ZShJobru-oaTkDgJ32x3HptSqSmICOrJR0WDzp7jOeeo5hxWmcdJPvJE0m/s649/Indexes.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="151" data-original-width="649" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimq8CUjwPTpjHlmmOeqDhp1bqt9yORab2a3ggtwW34Tq5Wma2FtTA6UlLZCZAK1DCyMfo9DG7xvQXaLj6ka8ZShJobru-oaTkDgJ32x3HptSqSmICOrJR0WDzp7jOeeo5hxWmcdJPvJE0m/w640-h148/Indexes.JPG" width="640" /></a></div><br /><div>Six SORT's...for SIX non-clustered indexes!</div><div><br /></div><div>Inserting rows into a table with enabled non-clustered indexes requires a SORT to add rows to that index - the INSERT can't simply dump the rows on to the end of the index, but has to sort the input to match the indexes sort.</div><div><br /></div><div>As a test I created a copy of the target table that I could tweak the indexes on, and a second copy without the indexes in place, and my INSERT...SELECT query plan against the No Index copy looked a little bit better:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVZ7LSeAB8XiDqiWrhZtQouAwgCLA6QQcXPbDGEcQYKJ2d5_F9vcPIK-s3KKw6P3-R3fFr77llBKeFn1avxdcnYjUa04YU0N_IfnX9iKKKP2OprNjZ5cIhR79fH44oDJq7js_rXcDsb0DA/s866/QueryPlan2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="164" data-original-width="866" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVZ7LSeAB8XiDqiWrhZtQouAwgCLA6QQcXPbDGEcQYKJ2d5_F9vcPIK-s3KKw6P3-R3fFr77llBKeFn1avxdcnYjUa04YU0N_IfnX9iKKKP2OprNjZ5cIhR79fH44oDJq7js_rXcDsb0DA/w640-h122/QueryPlan2.JPG" width="640" /></a></div><br /><div>As I test I copy-pasted the two INSERT...SELECT's into a single query window and pulled the plans for each so that I could compare them:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnk4Ch-xyYg6bO4T2zxGFbhhCx7si_dvvlps1NT2HPKDUQgsv20_69a9srHDEaDhhOrfnftQgR-4qihyphenhyphenO0oicmI7L7bqhqSQCJXB1kluSobwdIlP8xTIkT6kyWrkI6yGcheqV-qDXuUsFh/s984/QueryPlan3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="550" data-original-width="984" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnk4Ch-xyYg6bO4T2zxGFbhhCx7si_dvvlps1NT2HPKDUQgsv20_69a9srHDEaDhhOrfnftQgR-4qihyphenhyphenO0oicmI7L7bqhqSQCJXB1kluSobwdIlP8xTIkT6kyWrkI6yGcheqV-qDXuUsFh/w640-h358/QueryPlan3.JPG" width="640" /></a></div><br /><div>The Query Cost numbers in Management Studio always have to be taken with a grain of salt, but for comparison's sake consider - the six-way insert costs almost four times as much as the no-index query!</div><div><br /></div><div>To test further I disabled three of the indexes on my copy table and ran the plan again:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5-l37V1S420IJ6rItsgQenX1xsoUsj43BLFkKgadZ5ZhpgEad21TbdSbTzW56qhZ_7fJNXUpd6k1X3KwR_ZnkmK7ABbybFnajY1W_iHBkD3wZfHihibbCaBwcgngGLUS4sE-JniVYgUT7/s1000/QueryPlan4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="254" data-original-width="1000" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5-l37V1S420IJ6rItsgQenX1xsoUsj43BLFkKgadZ5ZhpgEad21TbdSbTzW56qhZ_7fJNXUpd6k1X3KwR_ZnkmK7ABbybFnajY1W_iHBkD3wZfHihibbCaBwcgngGLUS4sE-JniVYgUT7/w640-h162/QueryPlan4.JPG" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div>Bingo - six streams now down to three for the three remaining enabled indexes.</div><div><br /></div><div>I disabled the rest of the non-clustered indexes and:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggKsWnpqdCx7mMPCXHRA6PVOgUlJ6h-RwzE291JwM7Yqx8MkX3JFcKLShquXNPreQuUIbXRv_cH1cgUrafQual-X7_zqXQz53b3hUeWBd3IUv8zmrS-cGTqyyAO1y_hpizW9eeooO7EaCi/s639/QueryPlan5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="161" data-original-width="639" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggKsWnpqdCx7mMPCXHRA6PVOgUlJ6h-RwzE291JwM7Yqx8MkX3JFcKLShquXNPreQuUIbXRv_cH1cgUrafQual-X7_zqXQz53b3hUeWBd3IUv8zmrS-cGTqyyAO1y_hpizW9eeooO7EaCi/w640-h162/QueryPlan5.JPG" width="640" /></a></div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjElPnQd8Ox7MEMvjT5v-17o_r4V5OTa1mZDRvkF2T7Ohsa2dcmbs6rsU4hdriuvMcchoVa044CjbQDwunGwEBo_GY3zGqLViSyC5K8cC2o01yb9FcoHBq8KBuLSc6F3S7Y4mx3tdRLbqub/s2036/booyah.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="2036" data-original-width="1701" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjElPnQd8Ox7MEMvjT5v-17o_r4V5OTa1mZDRvkF2T7Ohsa2dcmbs6rsU4hdriuvMcchoVa044CjbQDwunGwEBo_GY3zGqLViSyC5K8cC2o01yb9FcoHBq8KBuLSc6F3S7Y4mx3tdRLbqub/w334-h400/booyah.jpg" width="334" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/63334945/booyah.jpg</td></tr></tbody></table><br /><div>For one final comparison I ran the double query against my "Indexes All Newly Disabled" copy and my "No Index" copy together:</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyGMsCzZVs7teLt7iBHHseTdgjqLcoMukb6ZvKsDfqzeL0yXRHOm1bNCjZaE58Yyn7YGSH-sJpYU_3kVT4sNhMLTkO9IMzmeP1HwyE8r-ndAws9lrzOY276hloGIRK1lkB0r-GGz4w4B_o/s738/QueryPlan6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="426" data-original-width="738" height="370" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyGMsCzZVs7teLt7iBHHseTdgjqLcoMukb6ZvKsDfqzeL0yXRHOm1bNCjZaE58Yyn7YGSH-sJpYU_3kVT4sNhMLTkO9IMzmeP1HwyE8r-ndAws9lrzOY276hloGIRK1lkB0r-GGz4w4B_o/w640-h370/QueryPlan6.JPG" width="640" /></a></div><br /><div>Spot on!</div><div><br /></div><div>--</div><div><br /></div><div>As I mentioned above the cost to this is that at the end of the process you have to have time to enable the indexes again, which does a rebuild of that index.</div><div><br /></div><div>As always Your Mileage May Vary, as the direct impact will relate to the size of the table, the number of non-clustered indexes in place, and multiple other items - but check it out, especially if your process runs longer than you want - this may be the problem!</div><div><br /></div><div>Hope this helps!</div><div><br /></div></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com1tag:blogger.com,1999:blog-4402664127960334547.post-8859155356786533922021-02-08T15:49:00.004-06:002021-02-08T15:49:49.099-06:00Unable to Connect to Target Server? But, I'm Already Connected!<p>I am working on an Azure SQL Database migration from an on-premises VM, and at the client's request I am working through the BACPAC Import/Export process rather than using <a href="https://docs.microsoft.com/en-us/azure/dms/" target="_blank">Azure Database Migration Service</a>.</p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_rchvgWvRv8FJn0WQwrBZmglvJXdU6csOIDPBfs1u6fnIfoocxuDkbu-kTXuNFyCaoGSXEBknkeDEKbhZzcIP7PvSIMb2RZd7oOAI2DsjCq_61Q9rYsyQfdUWzhI_WSdzOd6bYmVmF-tS/" style="margin-left: auto; margin-right: auto;"><img alt="" data-original-height="313" data-original-width="384" height="327" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_rchvgWvRv8FJn0WQwrBZmglvJXdU6csOIDPBfs1u6fnIfoocxuDkbu-kTXuNFyCaoGSXEBknkeDEKbhZzcIP7PvSIMb2RZd7oOAI2DsjCq_61Q9rYsyQfdUWzhI_WSdzOd6bYmVmF-tS/w400-h327/image.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://i.imgflip.com/2t69mm.jpg</td></tr></tbody></table>I exported the database into a BACPAC file, and went to perform the Import operation into Azure, using the wizards in SSMS</p><p>(Awesome step-by-step instructions at <a href="https://www.mssqltips.com/sqlservertip/5255/learn-how-to-migrate-a-sql-server-database-to-sql-azure-server/" target="_blank">https://www.mssqltips.com/sqlservertip/5255/learn-how-to-migrate-a-sql-server-database-to-sql-azure-server/</a> - thanks <a href="https://www.mssqltips.com/sqlserverauthor/234/vitor-montalvao/" target="_blank">Vitor Montalvão</a>!)</p><p>The problem is my Import operation failed with an error that didn't make any sense. To start the process you connect to you Azure SQL Server in Management Studio, and then run the Import Data-Tier Application wizard:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhboh-yCwGlF0JPjnq46zhxwMZZHOiIdSRrOFBrvWkCDzkVlysQLNzcf461Dqa8ra1BrQ7FHBuJYtjbienuigXYHMItH_Hza3FM0faCOEnll1_-DDP_DCnDxKEjcyMSBM5YKLEoj_zpVX5L/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="289" data-original-width="383" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhboh-yCwGlF0JPjnq46zhxwMZZHOiIdSRrOFBrvWkCDzkVlysQLNzcf461Dqa8ra1BrQ7FHBuJYtjbienuigXYHMItH_Hza3FM0faCOEnll1_-DDP_DCnDxKEjcyMSBM5YKLEoj_zpVX5L/w400-h302/image.png" width="400" /></a></div>..and point at you BACPAC file to import, providing details on what you want the new database to be called, what service level it needs to be in, etc. At that point the import runs, and everything is slick, right?<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiviGeADHGkURqsbLMdptzHqKsztceg1Aafw7dcaFUCGfyEzLRB0bhnfXbkHoccIke4zzIiaGwq-EsGTJUXIaG3yvZSO21F1MCDvCiS8OhZCXBXjS9EuTFkE0r2tWCHlHdjQp9cCetZmjFi/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="479" data-original-width="736" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiviGeADHGkURqsbLMdptzHqKsztceg1Aafw7dcaFUCGfyEzLRB0bhnfXbkHoccIke4zzIiaGwq-EsGTJUXIaG3yvZSO21F1MCDvCiS8OhZCXBXjS9EuTFkE0r2tWCHlHdjQp9cCetZmjFi/w400-h260/image.png" width="400" /></a></div><p><span style="font-family: courier;">"Unable to connect to target server"</span></p>Um...I was already connected to the server to get *this* far!<p></p><p>After some poking around, I tripped over several references to a potential "bug" related to importing BACPAC files, as described here <a href="https://stackoverflow.com/questions/19990779/unable-to-connect-to-target-server-when-restoring-bacpac-file-to-sql-server-20 " target="_blank">https://stackoverflow.com/questions/19990779/unable-to-connect-to-target-server-when-restoring-bacpac-file-to-sql-server-20 </a></p><p>When I checked, sure enough the Management Studio on this server was 2014.</p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHUgYVR6eIl8LkgXD5v1Ioxl70ZdSbY53JCJ78KuodUMxeRx3SvU0kV7rhB8mXz8R0h2aE6DV3-h0lKGwDkOjpZeax7oeM96D653-8hIMW9L6lugriDIGAeuLA4PHngsLA3_8pe-IHRY3j/" style="margin-left: auto; margin-right: auto;"><img alt="" data-original-height="266" data-original-width="300" height="354" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHUgYVR6eIl8LkgXD5v1Ioxl70ZdSbY53JCJ78KuodUMxeRx3SvU0kV7rhB8mXz8R0h2aE6DV3-h0lKGwDkOjpZeax7oeM96D653-8hIMW9L6lugriDIGAeuLA4PHngsLA3_8pe-IHRY3j/w400-h354/image.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://media.tenor.com/images/258a205ccd6bfa979a3505e95f1fcda7/raw</td></tr></tbody></table><br />I went to <a href="https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms/" target="_blank">https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms/</a> and downloaded the current Management Studio and applied it to the server, and:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80ns5davOVo9V4i-r09pLZYGJBDd4khNbFJ7TexeYPQEaEuR2vxvf_zeVCpxYMCpDcVOLpEn8hj0bdUfEDerWtO4RJ-l1-pJAOQ9cNbvnVHxG33vZ2WthyphenhyphenzCFIvmSTR5eZim8I09Gn2xN/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="717" data-original-width="826" height="557" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi80ns5davOVo9V4i-r09pLZYGJBDd4khNbFJ7TexeYPQEaEuR2vxvf_zeVCpxYMCpDcVOLpEn8hj0bdUfEDerWtO4RJ-l1-pJAOQ9cNbvnVHxG33vZ2WthyphenhyphenzCFIvmSTR5eZim8I09Gn2xN/w640-h557/image.png" width="640" /></a></div><p></p><p>If you can keep your tools updated - in most cases the tools are backwards compatible so unless you have written custom plug-ins, etc you are likely OK - also most recent versions let you install multiple versions side-by-side so you can install a new version without deleting the old one.</p><p>Hope this helps!</p><p><br /></p>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-76024818511247174782021-01-15T07:19:00.003-06:002021-01-15T07:19:26.236-06:00Another One Bites the Dust - PASS is Gone, so...What Now?There has been a lot of noise over the last few weeks since it was announced that due to financial constraints related to canceling the in-person Summit due to COVID-19, <a href="https://www.pass.org/PASS-Blog/the-future-of-pass" target="_blank">PASS would cease to exist</a> as of January 15, 2021. <div><br /></div><div>After reading the release and a few tweets, I paused and considered.<div><br /></div><div>As I read through the various materials, I was struck by several distinct emotions...<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdOVuL68NDXNWINbYkFesUCgOxa4U0jBFTer14ucKvkNM_GqDJSJsl7AziCfYrmoOLFBqiO01oLuU6pFYYISTL40DeNeM3jpsoyIN_6E740wcIWy5BgX2mXZIerJSSakCnLyd-WodnIf6N/s498/SadnessCrying.gif" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="298" data-original-width="498" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdOVuL68NDXNWINbYkFesUCgOxa4U0jBFTer14ucKvkNM_GqDJSJsl7AziCfYrmoOLFBqiO01oLuU6pFYYISTL40DeNeM3jpsoyIN_6E740wcIWy5BgX2mXZIerJSSakCnLyd-WodnIf6N/w640-h382/SadnessCrying.gif" title="https://tenor.com/view/blue-cry-sad-bad-day-gif-13423780" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://tenor.com/view/blue-cry-sad-bad-day-gif-13423780</td></tr></tbody></table><br />My initial response was <span style="background-color: #2b00fe;"><span style="color: white;"><b>Sadness</b></span></span>; I knew when the decision was made (and basically had to be made) to move Summit from in-person to all-virtual that there would be repercussions, especially financial ones. I have never been on the Board or anything like that, but I have always paid enough attention to be aware that a majority of the funding that kept our no-membership-fee organization going came from Summit registrations, and you can't charge in-person experience fees for a virtual conference. I have been to a half dozen Summits over the years, presenting twice, presented at numerous SQL Saturdays, and been a part of I-don't-know-how-many in-person and virtual user groups. The first thing through my mind was that all of that was...gone.</div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq_AGN6qqqux9LQT49_mfj4kMemQ8PbrX9NJrrz3QWn4iTKAdgN8yUGXxSbstQJcE8IOZV_T60pA1xcVRORVMpIYn2QQvejryEpciB3HTyag1oTay9uyqSJiJSo5fmPaQBWCfbpT_yFdom/s1044/AngerDisgust.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="512" data-original-width="1044" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq_AGN6qqqux9LQT49_mfj4kMemQ8PbrX9NJrrz3QWn4iTKAdgN8yUGXxSbstQJcE8IOZV_T60pA1xcVRORVMpIYn2QQvejryEpciB3HTyag1oTay9uyqSJiJSo5fmPaQBWCfbpT_yFdom/w640-h314/AngerDisgust.png" width="640" /></a></div><br />The more I read, the more I felt <b style="background-color: red;"><span style="color: white;">Anger </span></b>and <b><span style="background-color: #38761d; color: white;">Disgust</span></b>; over the years there has been an ongoing conflict within the SQL Server community regarding the operations of PASS and its management company Christianson & Company (C&C). There have been numerous snipes back and forth on whether C&C did a good job, did they cost too much money, did they care about the community, etc. etc. etc. I have always stayed out of these discussions, but also always been annoyed how some people couldn't make the distinction between the workings of the organization and the volunteers that make things work. At times I have seen people on the PASS Executive Board and other volunteers attacked because of one decision or another, and it just isn't right. Even if a certain person participated in a decision (or made it individually themselves) there is no reason to attack someone who is giving personally of their time. I have met many of the people who have served as PASS leadership over the years, and while they have varying personalities they have all been dedicated to supporting the organization for little personal gain, not back-room power-playing, and I salute them.</div><div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH42aG_V9aye1jLjlsv42lEDB9YLbk7eXIKwVarHa8_W82b6GM1P_xTkQjWbfO4usPxTHjljAnucUfwQeqEbhX46QeIrbZ81pFoWU2NxizZJToxwTG8ar-Zi_bcDj4Jziyih25iMHhKt-Z/s530/Joy.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="298" data-original-width="530" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH42aG_V9aye1jLjlsv42lEDB9YLbk7eXIKwVarHa8_W82b6GM1P_xTkQjWbfO4usPxTHjljAnucUfwQeqEbhX46QeIrbZ81pFoWU2NxizZJToxwTG8ar-Zi_bcDj4Jziyih25iMHhKt-Z/w640-h360/Joy.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://imgflip.com/memetemplate/63747205/inside-out-joy</td></tr></tbody></table><br /><div>Finally I arrived at a wistful sense of <span style="background-color: #fcff01; color: #2b00fe;"><b>Joy</b></span>. I have learned so much from the various functions of PASS over the years, but even more importantly I have met and interacted with so many amazing people along the way - people I never would have met without PASS. I blog because I saw a presentation talking about how blogging can help you learn and share your knowledge. I became a speaker as the next step down that learn and share path, and becoming a speaker is what really opened up networking to me. For everything I have learned in a session at a SQLSaturday or User Group session, I have learned even more from someone I met at a Speaker Dinner or in the hallway between sessions. This is true of both Community members and Microsoft employees as well - on multiple occasions I have met and had long discussions with Microsoft Product Team members who design, build, and fix the SQL Server product and I would not have done so without PASS.</div><div><br />So now what? What should we feel now?</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinbh-CQeOe8pNoMGSrLncftDWIR5h9_DeIzOeARdWaMfTdUdVKr_ACO4cdmjM5s87CEPXgPn4spNJcpQnIARGE4xAt82tER9H-BEJlZQsnm_YHvq06U_doFOyIpmFxRSHeaQke_ulPAmuk/s1079/fear.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1079" data-original-width="1079" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinbh-CQeOe8pNoMGSrLncftDWIR5h9_DeIzOeARdWaMfTdUdVKr_ACO4cdmjM5s87CEPXgPn4spNJcpQnIARGE4xAt82tER9H-BEJlZQsnm_YHvq06U_doFOyIpmFxRSHeaQke_ulPAmuk/w400-h400/fear.jpg" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://wallha.com/wallpaper/fear-inside-out-440608</td></tr></tbody></table><br /><b><span style="background-color: #800180; color: white;">Fear</span></b>? NO!!!<div><br /></div><div>There are lots of options for content post-PASS, and I have compiled a list I want to share with you!</div><div><br /></div><div>--</div><div><br /></div><div>The biggest single source of content I have found is <a href="http://meetup.com" target="_blank">meetup.com</a>. Many of the larger user groups have turned to Meetup during COVID while they couldn't meet in-person, and even more are springing up there now since PASS made its announcement. All of the groups I list here are "Public" so regardless of what geographic area they are affiliated with, anyone should be able to join!</div><div><br /></div><div>--</div><div><br /></div><div>First are a couple of groups that have arisen from the ashes of large PASS Virtual Chapters:<br /><p style="text-align: left;">Database Professionals Virtual Meetup Group - 1,453 members - Meets Biweekly <a href="https://www.meetup.com/dbavug/ " target="_blank">https://www.meetup.com/dbavug/ </a></p>DBA Fundamentals Group - 877 members - Meets Weekly<div><a href="https://www.meetup.com/dba-fundamentals-group/" target="_blank">https://www.meetup.com/dba-fundamentals-group/</a><br /><br />--</div><div><br />There are many regional/local groups on Meetup as well; I gathered this list by spending some time searching Meetup for SQL and Azure content and then checking the groups to see if they have regular meetings. All of the groups listed here meet at least monthly and have regular meetings scheduled. I found many groups that had hundreds of people listed as members but if they didn't have anything scheduled I didn't include them.</div><div><br /></div><div>Here they are sorted by member count - an omission from this list does not mean anything in particular other than a group didn't show up on my search or didn't have regular meetings scheduled at the time I ran the search:</div><div><br /></div><div><div>New England SQL Server User Group - 2,767 members - Meets Monthly</div><div><a href="https://www.meetup.com/NESQLUG/" target="_blank">https://www.meetup.com/NESQLUG/</a></div><div><br /></div><div>Azure in the ATL - 2,409 members - Meets Monthly</div><div><a href="https://www.meetup.com/Azure-in-the-ATL/" target="_blank">https://www.meetup.com/Azure-in-the-ATL/</a></div><div><br /></div><div>Northern Virginia SQL Server Users Group - 1,553 members - Meets Monthly</div><div><a href="https://www.meetup.com/NOVASQL" target="_blank">https://www.meetup.com/NOVASQL</a></div><div><br /></div><div>Triangle SQL Server User Group (NC) - 1,541 members - Meets Monthly</div><div><a href="https://www.meetup.com/tripass" target="_blank">https://www.meetup.com/tripass</a></div><div><br /></div><div>Arizona SQL Server User Group - 1,136 members - Meets Monthly</div><div><a href="https://www.meetup.com/Arizona-SQL-Server-User-Group" target="_blank">https://www.meetup.com/Arizona-SQL-Server-User-Group</a></div><div><br /></div><div>Sacramento SQL Server User Group - 994 members - Meets Monthly</div><div><a href="https://www.meetup.com/Sacramento-SQL-Server-User-Group" target="_blank">https://www.meetup.com/Sacramento-SQL-Server-User-Group</a></div><div><br /></div><div>North Boston Azure Cloud User Group - 899 members - Meets Monthly</div><div><a href="https://www.meetup.com/North-Boston-Azure-Cloud-User-Group" target="_blank">https://www.meetup.com/North-Boston-Azure-Cloud-User-Group</a></div><div><br /></div><div>Utah SQL Server Group - 848 members - Meets Monthly</div><div><a href="https://www.meetup.com/Utah-SQL-Server-Group/" target="_blank">https://www.meetup.com/Utah-SQL-Server-Group/</a></div><div><br /></div><div>Rhode Island SQL Server User Group - 610 members - Meets Monthly</div><div><a href="https://www.meetup.com/Rhode-Island-SQL-Server-Users-Group" target="_blank">https://www.meetup.com/Rhode-Island-SQL-Server-Users-Group</a></div><div><br /></div><div>PASSMN (Minnesota SQL Server User Group) - 596 Members - Meets Monthly</div><div><a href="https://www.meetup.com/MN-SQL-Server-User-Group-PASSMN" target="_blank">https://www.meetup.com/MN-SQL-Server-User-Group-PASSMN</a></div><div><br /></div><div>Atlanta Azure Data User Group - 589 members - Meets Monthly</div><div><a href="https://www.meetup.com/atlanta-azure-data-user-group" target="_blank">https://www.meetup.com/atlanta-azure-data-user-group</a></div><div><br /></div><div>CincyPASS - Cincinnati SQL Server Users Group - 476 members - Meets Monthly</div><div><a href="https://www.meetup.com/CincyPASS" target="_blank">https://www.meetup.com/CincyPASS</a></div><div><br /></div><div>Albuquerque SQL Server User Group - 354 members - Meets Monthly</div><div><a href="https://www.meetup.com/Albuquerque-SQL-Server-User-Group" target="_blank">https://www.meetup.com/Albuquerque-SQL-Server-User-Group</a></div><div><br /></div><div>Data Platform Downunder Meetup Group (Australia Time Zone) - 90 members - Meets Weekly</div><div><a href="https://www.meetup.com/data-platform-downunder-meetup-group/" target="_blank">https://www.meetup.com/data-platform-downunder-meetup-group/</a></div><div><br /></div>--</div><div><br /></div><div>A couple of more non-Meetup links:</div><div><br /></div><div><div>Data Saturdays - a potential replacement for SQLSaturdays - there are a few upcoming events scheduled already:</div><div><a href="https://datasaturdays.com/" target="_blank">https://datasaturdays.com/</a></div><div><br /></div><div>SQLUGs - a site to host local user group webpages being provided for *free* by Denny Cherry and Associates (<a href="https://www.dcac.com/" target="_blank">website</a>/<a href="https://twitter.com/dcacco" target="_blank">@DCACco</a>) as a service to the SQL Community:</div><div><a href="https://sqlugs.com/" target="_blank">https://sqlugs.com/</a></div><br />--<br /><br />Let me know if you find other treasure troves of information to share, and hope this helps!<br /><br /><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDa1J8E1pzJStEIxdZLPrJvD4avK5PXhWhHaUc6dWvOe5SwKkYiTnCf8DEtOSHS51eSKGY-QaR6thwlC1nGSyXYG1bQmiLwnOQFT78CzPQJbi0iikeQfEFXyjtvZCYpOf33LrCckeO5tOR/s1131/Much-to-learn-we-all-still-have.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="500" data-original-width="1131" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDa1J8E1pzJStEIxdZLPrJvD4avK5PXhWhHaUc6dWvOe5SwKkYiTnCf8DEtOSHS51eSKGY-QaR6thwlC1nGSyXYG1bQmiLwnOQFT78CzPQJbi0iikeQfEFXyjtvZCYpOf33LrCckeO5tOR/w640-h283/Much-to-learn-we-all-still-have.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://www.lemax.net/wp-content/uploads/2018/09/Much-to-learn-we-all-still-have.jpg</td></tr></tbody></table><br /></div></div></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-39014092975297496702020-12-11T11:01:00.003-06:002020-12-11T11:01:51.165-06:00Toolbox - When Intellisense Doesn't See Your New Object<span style="font-family: inherit;">I was just working on a new SQL job, and part of creating the job was adding a few new tables to our DBA maintenance database to hold data for the job. I created my monitoring queries, and then created new tables to hold that data </span><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">One tip - use SELECT...INTO as an easy way to create these types of tables - create your query and then add a one-time INTO clause to create the needed object with all of the appropriate column names, etc.</span></div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHJq3iBx-gxM0pDeFtCrYcPVKdszvxWLkYqmY4ZTlmYGIM8roVT7I9AkURyiomMLP4uZ0XNjdJIkqSci6PaQOHLfcXEr8jDxIb2HnXnb9PMVzS73OigcvHue2tXsWxukmzLO5rGuQFsu1F/s623/Interesting.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="421" data-original-width="623" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHJq3iBx-gxM0pDeFtCrYcPVKdszvxWLkYqmY4ZTlmYGIM8roVT7I9AkURyiomMLP4uZ0XNjdJIkqSci6PaQOHLfcXEr8jDxIb2HnXnb9PMVzS73OigcvHue2tXsWxukmzLO5rGuQFsu1F/s320/Interesting.jpg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://i.redd.it/1wk7ki3wtet21.jpg</td></tr></tbody></table><div><div><br /><span style="font-family: courier;">SELECT DISTINCT SERVERPROPERTY('ServerName') as Instance_Name</span></div><div><span style="font-family: courier;">, volume_mount_point as Mount_Point</span></div><div><span style="font-family: courier;">, cast(available_bytes/1024.0/1024.0/1024.0 as decimal(10,2)) as Available_GB</span></div><div><span style="font-family: courier;">, cast(total_bytes/1024.0/1024.0/1024.0 as decimal(10,2)) as Total_GB</span></div><div><span style="font-family: courier;">, cast((total_bytes-available_bytes)/1024.0/1024.0/1024.0 as decimal(10,2)) as Used_GB</span></div><div><span style="font-family: courier;">, cast(100.0*available_bytes/total_bytes as decimal(5,2)) as Percent_Free</span></div><div><span style="font-family: courier;">, GETDATE() as Date_Stamp</span></div><div><span style="background-color: #fcff01; font-family: courier;">INTO Volume_Disk_Space_Info</span></div><div><span style="font-family: courier;">FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS vfs </span></div><div><span style="font-family: courier;">INNER JOIN sys.master_files AS mf WITH (NOLOCK) </span></div><div><span style="font-family: courier;">ON vfs.database_id = mf.database_id AND vfs.file_id = mf.file_id </span></div><div><span style="font-family: courier;">CROSS APPLY sys.dm_os_volume_stats(mf.database_id, mf.FILE_ID)<span style="white-space: pre;"> </span> </span></div><div><span style="font-family: courier;">order by volume_mount_point</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">I thought at this point that everything was set, until I tried to write my next statement...</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX_OjHFHnoCwdNIm-zeZmhBuUhqsNzN2gWTTVnH8Z6rmirFEfSIZrF1Mavn-G0-h4VfBU9cJEV8zE73uVVXyLhvd4nNhNquSlibe-DWBwpsCmVZLk3QoxUMmzpguUVs-Q4SuinejskM6o1/s540/RedSquiggle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="47" data-original-width="540" height="35" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX_OjHFHnoCwdNIm-zeZmhBuUhqsNzN2gWTTVnH8Z6rmirFEfSIZrF1Mavn-G0-h4VfBU9cJEV8zE73uVVXyLhvd4nNhNquSlibe-DWBwpsCmVZLk3QoxUMmzpguUVs-Q4SuinejskM6o1/w400-h35/RedSquiggle.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">The dreaded Red Squiggle of doom!</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">I tried to use an alias to see if Intellisense would detect that - no luck.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiccn6nX2UvoEA-aWBs-UcPAPbAey9y_x9peau82-FI8y7m2YbMSHRyIqbm1qSHs2Toy9kNcIcQzBGXMayCH9GwS9hADLfnvu_j3VdThUv6z4xcL4bQH22W8dJ-pSl8UudfSDH3x9dF9OoU/s575/RedSquiggle2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="74" data-original-width="575" height="51" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiccn6nX2UvoEA-aWBs-UcPAPbAey9y_x9peau82-FI8y7m2YbMSHRyIqbm1qSHs2Toy9kNcIcQzBGXMayCH9GwS9hADLfnvu_j3VdThUv6z4xcL4bQH22W8dJ-pSl8UudfSDH3x9dF9OoU/w400-h51/RedSquiggle2.png" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">Some Google-Fu brought me to the<a href="https://stackoverflow.com/questions/3852939/how-to-make-sql-management-studio-see-new-table" target="_blank"> answer on StackOverflow</a> - there is an Intellisense cache that sometimes needs to be refreshed.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">The easiest way to refresh the cache is simply a CTRL-SHIFT-R, but there is also a menu selection in SSMS to perform the refresh:</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip8FSUlLgpYdtpvZIqlbjEJuDnsvdcWqWu5ToFc2IRSU8WEPUVp-omAX0g5c-_yRfzQAVD7e7WRg2BNH2YjV4AhSRbuyiV45PXwYESENLu27MKGEYDyCqzdKwk-gc1VENgzfyM7JO2iP8o/s631/RefreshIntellisenseCache.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="564" data-original-width="631" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip8FSUlLgpYdtpvZIqlbjEJuDnsvdcWqWu5ToFc2IRSU8WEPUVp-omAX0g5c-_yRfzQAVD7e7WRg2BNH2YjV4AhSRbuyiV45PXwYESENLu27MKGEYDyCqzdKwk-gc1VENgzfyM7JO2iP8o/w400-h358/RefreshIntellisenseCache.png" width="400" /></a></div><div><span style="font-family: inherit;"><br /></span></div>Edit>>Intellisense>>Refresh Local Cache</span></div><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">In my case, once I performed the CTRL-SHIFT-R, the red squiggles disappeared!</span></div><div><span style="font-family: inherit;"><br /></span></div><div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiuzYwPPYh4KRnNjTUseAgo6v0FXwnZ4vVq5UVCxdLowHjzWiUF6-WA9z2qcaW0pHJVn346iZHyAOoQdSMacqAB8D0GAejiyYo6fsYERSJBkS-8HBwJjLNWvQx_RtTwmqMVXbQXWakMPH-/s400/you-see-its-magic.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiuzYwPPYh4KRnNjTUseAgo6v0FXwnZ4vVq5UVCxdLowHjzWiUF6-WA9z2qcaW0pHJVn346iZHyAOoQdSMacqAB8D0GAejiyYo6fsYERSJBkS-8HBwJjLNWvQx_RtTwmqMVXbQXWakMPH-/s320/you-see-its-magic.jpg" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/61065657/you-see-its-magic.jpg</td></tr></tbody></table><br /><span style="font-family: inherit;">Hope this helps!</span></div><div><span style="font-family: inherit;"><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div></span></div></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-14434782103308671952020-12-01T14:44:00.001-06:002020-12-01T16:47:21.590-06:00Would You Pass the SQL Server Certifications Please? What Do You Mean We're Out?<p><span style="font-family: inherit;">I have held various certifications through my DBA career, from CompTIA A+ certification back when I worked help desk (I'm old) through the various MCxx that Microsoft has offered over the years (although I never went for Microsoft Certified Master (MCM), which I still regret).</span></p><p><span style="font-family: inherit;">I have definitely gotten some mileage out of my certs over the years, getting an interview or an offer not just because I was certified, but rather because I had comparable job experience to someone else *and* I was certified, nudging me past the other candidate.</span></p><p><span style="font-family: inherit;">I am currently an MCSA: SQL 2016 Database Administration and an MCSE: Data Management and Analytics, which is pretty much the top of SQL Server certifications currently available.</span></p><div class="separator" style="clear: both; text-align: center;"><span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzp-yMeObIVhJWgipg9aB8XYo6RIJZa7aKW1zl1woRBdcgElQ7XcUC-kGqpNp9QT-DwB-BO0mJ1OKmWkKHEWESABS-3w0SfKpWNqAp1fyxFO5UjQNWgoquD5a3wPEeA0Z0e5s45RHJ1Hd_/s600/MCSA-SQL-2016-Database-Administration-2019.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="600" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzp-yMeObIVhJWgipg9aB8XYo6RIJZa7aKW1zl1woRBdcgElQ7XcUC-kGqpNp9QT-DwB-BO0mJ1OKmWkKHEWESABS-3w0SfKpWNqAp1fyxFO5UjQNWgoquD5a3wPEeA0Z0e5s45RHJ1Hd_/w200-h200/MCSA-SQL-2016-Database-Administration-2019.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb78zVRN9c8gUK0zOY_U4jZ8lROuXeFbJIuQI8JW28dK-8I8jaoQ9jL-KrsIfFGrtuVPnHa9qYCh7jwzu5c-NP9vEriwBpdX2aVEbcVmdC0q0ME2yMmHdF1WCznoOfnDqwxcUmYUb-lYjl/s600/MCSE-Data-Management-and-Analytics_2019.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="600" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb78zVRN9c8gUK0zOY_U4jZ8lROuXeFbJIuQI8JW28dK-8I8jaoQ9jL-KrsIfFGrtuVPnHa9qYCh7jwzu5c-NP9vEriwBpdX2aVEbcVmdC0q0ME2yMmHdF1WCznoOfnDqwxcUmYUb-lYjl/w200-h200/MCSE-Data-Management-and-Analytics_2019.png" width="200" /></a></span></div><p><span style="font-family: inherit;">I also work for a company that is a Microsoft partner (and have previously worked for other Microsoft partners) and part of the requirements to become (and stay) a Microsoft partner is maintaining a certain number of employees certified at certain levels of certification dependent on your partnership level.</span></p><p><span style="font-family: inherit;">I completed the MCSE back in 2019, and my company is starting to have a new re-focus on certifications (a pivot, so to speak - I hate that term but it is accurate), so I went out to look at what my options were. We have two SQL Server versions past SQL Server 2016 at this point, so there must be something else right?</span></p><p><span style="font-family: inherit;">On top of that, the MCSA and MCSE certs I currently have are marked to expire *next* month (January 2021 - seriously, check it out <a href="https://docs.microsoft.com/en-us/learn/certifications/mcse-data-management-analytics" target="_blank">HERE</a>)...so there *MUST* be something else right - something to replace it with or to upgrade to?</span></p><p></p><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh160A9cwONl0Sqnc7pfDntay3NUzGH1becm5rCoc32cEuKs2R74F-9A3ZVTCwbfRehNjlmt3cNi4g477rJnLNSVwXTHDDLKAOWdK801S_DE76F3IhLM0zukNu-aWTwWt2i1rEmHyp07TLg/"><span style="font-family: inherit;"><img alt="" data-original-height="512" data-original-width="462" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh160A9cwONl0Sqnc7pfDntay3NUzGH1becm5rCoc32cEuKs2R74F-9A3ZVTCwbfRehNjlmt3cNi4g477rJnLNSVwXTHDDLKAOWdK801S_DE76F3IhLM0zukNu-aWTwWt2i1rEmHyp07TLg/w290-h320/image.png" width="290" /></span></a></div><p><span style="font-family: inherit;">I went to check the official Microsoft certifications site (<a href="https://docs.microsoft.com/en-us/learn/certifications/browse/?products=sql-server&resource_type=certification" target="_blank">https://docs.microsoft.com/en-us/learn/certifications/browse/?products=sql-server&resource_type=certification</a>) and found that the only SQL Server-relevant certification beyond the MCSE: Data Management and Analytics is the relatively new "Microsoft Certified: Azure Database Administrator Associate" certification (<a href="https://docs.microsoft.com/en-us/learn/certifications/azure-database-administrator-associate" target="_blank">https://docs.microsoft.com/en-us/learn/certifications/azure-database-administrator-associate</a>). </span></p><p><span style="font-family: inherit;">The official description of this certification is as follows:</span></p><p></p><p></p><blockquote><span style="font-family: inherit;">The Azure Database Administrator implements and manages the operational aspects of cloud-native and hybrid data platform solutions built with Microsoft SQL Server and Microsoft Azure Data Services. The Azure Database Administrator uses a variety of methods and tools to perform day-to-day operations, including applying knowledge of using T-SQL for administrative management purposes.</span></blockquote><p></p><p><span style="font-family: inherit;">Cloud...Cloud, Cloud...Cloud...(SQL)...Cloud, Cloud, Cloud...by the way, SQL.</span></p><p><span style="font-family: inherit;">Microsoft has been driving toward the cloud for a very long time - everything is "Cloud First" (developed in Azure before being retrofit into on-premises products), and the company definitely tries to steer as much into the cloud as it can.</span></p><p><span style="font-family: inherit;">I realize this is Microsoft's reality, and I have had some useful experiences using the cloud for Azure VM's and Azure SQL Database over the years...but...</span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_PK93-yzb40r8KEuWJrhjUVLd6Fsqwgi4xZ-QJ14mVK-De6nkfYf5p1ISvHc118f0ER3M7dL98GmQzvE6sCumlnpV74aGYu-iws1MSodvm-qC5rVjsF5nEADw4b0c-8qiCpPtKdCIAlio/s554/RejectYourReality.JPG" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img border="0" data-original-height="336" data-original-width="554" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_PK93-yzb40r8KEuWJrhjUVLd6Fsqwgi4xZ-QJ14mVK-De6nkfYf5p1ISvHc118f0ER3M7dL98GmQzvE6sCumlnpV74aGYu-iws1MSodvm-qC5rVjsF5nEADw4b0c-8qiCpPtKdCIAlio/w400-h243/RejectYourReality.JPG" width="400" /></span></a></div><p><span style="font-family: inherit;">There is still an awful lot of the world running on physical machines - either directly or via a certain virtualization platform that starts with VM and rhymes with everywhere.</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBEerUGdTvvz0PrInxQ2GIPYzaHhbnP2-1i7Pq-VcRi870s6nrkiTMIRXiwtAWL-Zks7-h_JtdQHcY_baG6uiV4e47kKINO4B6GC2Wjj1rWRgmoNqmU1DTyfztKGQ1TPwJEiGpkVPUj_HR/" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img alt="" data-original-height="375" data-original-width="500" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBEerUGdTvvz0PrInxQ2GIPYzaHhbnP2-1i7Pq-VcRi870s6nrkiTMIRXiwtAWL-Zks7-h_JtdQHcY_baG6uiV4e47kKINO4B6GC2Wjj1rWRgmoNqmU1DTyfztKGQ1TPwJEiGpkVPUj_HR/w320-h240/image.png" width="320" /></span></a></div><p><span style="font-family: inherit;">As such, I can't believe Microsoft has bailed on actual SQL Server certifications...but it sure looks that way. Maybe something shiny and new will come out of this; maybe there will be a new better, stronger, faster SQL Server certification in the near future - but the current lack of open discussion doesn't inspire hope.</span></p><p><span style="font-family: inherit;">--</span></p><p><span style="font-family: inherit;">Looking at the Azure Database Administrator Associate certification, it requires a single exam (DP-300 <a href="https://docs.microsoft.com/en-us/learn/certifications/exams/dp-300" target="_blank">https://docs.microsoft.com/en-us/learn/certifications/exams/dp-300</a>) and is apparently "Associate" level. Since the styling of certs is apparently changing (after all it isn't the MCxx Azure Database Administrator) I went to look at what Associate meant.</span></p><p><span style="font-family: inherit;">Apparently there are Fundamental, Associate, and Expert level certifications in the new role-based certification setup, and there are currently only Expert-level certs for a handful of technologies, most of them Office and 365-related technologies.</span></p><p><span style="font-family: inherit;">This means that for most system administrators - database and otherwise - there is nowhere to go beyond the "Associate" level - you can dabble in different technologies, but no way to be certified as an "Expert" by Microsoft in SQL Server, cloud or otherwise. (The one exception I could find for any sysadmins is the "Microsoft Certified: Azure Solutions Architect Expert" certification, which is all-around design and implement in Azure at a much broader level.)</span></p><p><span style="font-family: inherit;">--</span></p><p><span style="font-family: inherit;">After reviewing all of this, I am already preparing for the Azure Database Administrator Associate certification via the DP-300 exam, and I am considering other options for broadening my experience, including Azure administrator certs and AWS administrator certs. I will likely focus on Azure since my current role has more Azure exposure than AWS (</span>although<span style="font-family: inherit;"> maybe that is a reason to go towards AWS and broaden my field...hmm...)</span></p><p><span style="font-family: inherit;">If anything changes in the SQL Server cert world - some cool new "OMG we forgot we don't have a new SQL Server certification - here you go" announcement - I will let you know.</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiX4QtXi8zb1czokPeMrn7-Hd8xRx62kLzpfRCgrHmNUUlRqqiuV_QaAiruYZkaNPDWTDv5ABz3StsAl4d9mf3_XbwmdUN9DGr5Hr3n8IuKBHlZV7UCbYXQ1OjT8pF8rC1CGEpcy24WBHS/" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img alt="" data-original-height="313" data-original-width="377" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiX4QtXi8zb1czokPeMrn7-Hd8xRx62kLzpfRCgrHmNUUlRqqiuV_QaAiruYZkaNPDWTDv5ABz3StsAl4d9mf3_XbwmdUN9DGr5Hr3n8IuKBHlZV7UCbYXQ1OjT8pF8rC1CGEpcy24WBHS/w400-h332/image.png" width="400" /></span></a></div><span style="font-family: inherit;"><br /></span><br /><p></p>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com2tag:blogger.com,1999:blog-4402664127960334547.post-69034459647730277012020-10-30T11:29:00.010-05:002020-10-30T11:32:20.177-05:00Error: 8623 - The query processor ran out of internal resources and could not produce a query plan<p><span style="font-size: medium;"> Unfortunately a common error in many of our client environments is this:</span></p><p><span style="font-size: medium;">--</span></p><p></p><p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: courier; font-size: medium;">Error:
8623, Severity: 16, State: 1.</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-family: courier; font-size: medium;"><span style="background: yellow;">The query processor ran out of internal
resources and could not produce a query plan</span>. This is a rare event and only expected
for extremely complex queries or queries that reference a very large number of
tables or partitions. Please simplify
the query. If you believe you have received this message in error, contact
Customer Support Services for more
information.</span></p><p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: medium;"><o:p></o:p></span></p><span style="font-size: medium;">--</span><p></p><div style="text-align: left;"><span style="font-size: medium;">There are many potential causes for this, and the text of this particular error is very well-written because the primary cause is exactly what is listed - a complex query.</span></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGgIHwek6QD8MQqFuGPYyOwCFGnzDHU3upWHZ8EqTqF6-BH57Bf_pzztmHpVL5-S3z-kZhTXA1E5ch_qm209ASlYi_Jc8Ki2N9y9JWYvGI4WIS89D9wOFEnr_yG0_6loFlxq-vlHceuYLT/s1200/may18_9_170094377.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="675" data-original-width="1200" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGgIHwek6QD8MQqFuGPYyOwCFGnzDHU3upWHZ8EqTqF6-BH57Bf_pzztmHpVL5-S3z-kZhTXA1E5ch_qm209ASlYi_Jc8Ki2N9y9JWYvGI4WIS89D9wOFEnr_yG0_6loFlxq-vlHceuYLT/w640-h360/may18_9_170094377.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">https://hbr.org/resources/images/article_assets/2018/05/may18_9_170094377.jpg</span></td></tr></tbody></table><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="font-size: medium;">The gotcha of course is finding the complex query, especially if it only occurs intermittently or during varying times of the day.</span></div></div><p><span style="font-size: medium;">My go-to tool for this and other similar situations is our old friend Extended Events.</span></p><p><span style="font-size: medium;">One of the keys with Extended Events is to only trap the needed information - only the relevant events, and only the relevant fields for those particular events.</span></p><p><span style="font-size: medium;">Here is the code for a session to capture 8623 events:</span></p><p><span style="font-size: medium;">--</span></p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><p style="text-align: left;"><span style="font-family: courier; font-size: medium;">CREATE EVENT
SESSION [Error8623] ON SERVER</span></p></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: courier; font-size: medium;"> ADD EVENT
sqlserver.error_reported(<br />ACTION(package0.collect_system_time<br />, sqlserver.client_app_name<br />, sqlserver.client_hostname<br />, sqlserver.database_id<br />, sqlserver.database_name<br />, sqlserver.server_instance_name<br />,
sqlserver.server_principal_name<br />, sqlserver.sql_text<br />, sqlserver.username)<br /><span style="background-color: #fcff01;">WHERE ([error_number]=(8623)))</span><br />ADD TARGET
package0.event_file(SET filename=N'Error8623'),<br /> ADD TARGET
package0.ring_buffer<br />WITH
(MAX_MEMORY=4096 KB<br />,
EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS<br />,
MAX_DISPATCH_LATENCY=30 SECONDS<br />,
MAX_EVENT_SIZE=0 KB<br />,
MEMORY_PARTITION_MODE=NONE<br />,
TRACK_CAUSALITY=OFF<br />,
STARTUP_STATE=ON)<br />GO</span></div></blockquote><p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 0in;"><span style="font-size: medium;">--</span></p><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">This will collect the relevant info but *only* about error 8623's. Because there is no path built into the event_file target, it will by default write to the SQL Server error log path. As you can see we are also not collecting a lot of different data fields - just the minimum we need to run down the culprit and where it may be coming from.</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">My preferred method to access data like this is to query the event file via TSQL - a query for this particular file would look like this:</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">--</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">SELECT </span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">n.value ('(action[@name="server_instance_name"]/value)[1]','nvarchar(500)') AS [server_instance_name]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">, n.value ('(action[@name="collect_system_time"]/value)[1]', 'datetime') AS [collect_system_time]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">, n.value ('(data[@name="error_number"]/value)[1]', 'int') AS [error_number]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">, n.value ('(action[@name="database_id"]/value)[1]', 'int') AS [database_id]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">, n.value ('(action[@name="database_name"]/value)[1]', 'nvarchar(500)') AS [database_name]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">, n.value ('(action[@name="client_app_name"]/value)[1]','nvarchar(500)') AS [client_app_name]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">, n.value ('(action[@name="server_principal_name"]/value)[1]','nvarchar(500)') AS [server_principal_name]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">, n.value ('(action[@name="client_hostname"]/value)[1]','nvarchar(500)') AS [client_hostname]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">, n.value ('(action[@name="sql_text"]/value)[1]','nvarchar(max)') AS [sql_text]</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">FROM </span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">(</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;"><span style="white-space: pre;"> </span>SELECT CAST(event_data AS XML) AS event_data</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;"><span style="white-space: pre;"> </span>FROM sys.fn_xe_file_target_read_file(</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;"><span style="white-space: pre;"> </span>N'Error8623*.xel'</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;"><span style="white-space: pre;"> </span>, NULL</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;"><span style="white-space: pre;"> </span>, NULL</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;"><span style="white-space: pre;"> </span>, NULL)</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">) AS Event_Data_Table</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-family: courier; font-size: medium;">CROSS APPLY event_data.nodes('event') AS q(n)</span></div></div></blockquote><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-bottom: 0.0001pt;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt;"><span style="font-size: medium;">--</span></div><div style="margin-bottom: 0.0001pt;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt;"><span style="font-size: medium;">Again by not providing an explicit path to the XEL file, the fn_xe_file_target_read_file function looks in the default SQL Server error log path for the file(s) - if you *do* store your event_file output somewhere else, you need to include that explicit path!</span></div><div style="margin-bottom: 0.0001pt;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt;"><span style="font-size: medium;">One other important note relates to the sql_text field - you can see in the script I have it cast as an nvarchar(max) which is especially important here because we are going to be pulling back complex queries, which almost always equates to *long* queries - often even a 4000 or 8000 character field will not hold these queries without chopping them off!</span></div><div style="margin-bottom: 0.0001pt;"><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCJQqtu7qGqQH_dS58l7aeAJjZltV7ypJWIxRJG1XhqnmY-RfrtVKuFjCxkAhbXZf-L-HY9_ObwwH2mH6MkXdNkcfIxOnjRNwap5wLR6iE1KrdzA6eplRdnJV7ZepSW7L8vLKMvlngugfD/s960/man-80638_960_720.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="685" data-original-width="960" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCJQqtu7qGqQH_dS58l7aeAJjZltV7ypJWIxRJG1XhqnmY-RfrtVKuFjCxkAhbXZf-L-HY9_ObwwH2mH6MkXdNkcfIxOnjRNwap5wLR6iE1KrdzA6eplRdnJV7ZepSW7L8vLKMvlngugfD/w400-h285/man-80638_960_720.jpg" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">https://pixabay.com/photos/man-breaking-technique-pavers-elbow-80638</span>/</td></tr></tbody></table><div style="margin-bottom: 0.0001pt;"><br /></div><div style="margin-bottom: 0.0001pt;"><span style="font-size: medium;">Also note that this query returns the collect_system_time value in its default format, which is UTC. To convert that to the local server time, you need to wrap it in a couple of functions as described in a Stack Overflow post at <a href="https://stackoverflow.com/questions/8038744/convert-datetime-column-from-utc-to-local-time-in-select-statement/57503319">https://stackoverflow.com/questions/8038744/convert-datetime-column-from-utc-to-local-time-in-select-statement/57503319</a>:</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">Instead of:</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: courier; font-size: medium;">n.value ('(action[@name="collect_system_time"]/value)[1]', 'datetime') AS [collect_system_time]</span></div></blockquote><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: courier; font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit; font-size: medium;">Wrap it like this:</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: courier; font-size: medium;"><br /></span></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: courier; font-size: medium;"><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="background-color: #fcff01;">DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()),</span>n.value ('(action[@name="collect_system_time"]/value)[1]', 'datetime')<span style="background-color: #fcff01;">)</span> AS [collect_system_time in local time]</div></span></div></blockquote><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: courier; font-size: medium;"><div><br /></div></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">--</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">Hopefully you will find this useful, and this is truly meaningful for any error you are trying to run down - simply change the filter in the XEvents session definition from 8623 to whatever error you are looking for (and probably change the name of the event_file), and voila - you now have a session to run down the source queries for that new error, without any changes to the data return query.</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">At this point you may wonder what a "complex" query looks like - here is one sample I have found recently:</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">--</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><br /></div><div style="margin-bottom: 0.0001pt; text-align: left;"><div style="margin-left: 0.5in; text-align: left;"><span style="font-family: courier;">SELECT
Item_ID, PA_Rank, Pj_Hours, Pj_Cnt, Bio_Rank FROM ( SELECT SM.Staff_ID AS
Item_ID, 0 AS PA_Rank, 0 AS
Pj_Hours, 0 AS Pj_Cnt, 0 AS Bio_Rank
FROM Staff_Main SM WITH (NOLOCK)) TBL INNER JOIN Staff_Main SM WITH (NOLOCK) ON
SM.Staff_ID = TBL.Item_ID INNER JOIN Office_Main OM WITH (NOLOCK) ON
OM.Office_ID = SM.Office_Topic_ID WHERE SM.Staff_ID > -40 AND
SM.Is_Active = 1 AND (SM.Staff_Position_ID IN (106))
AND (SM.Office_Topic_ID
IN (SELECT * FROM
dbo.List_SubTopics(2005514))) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1013) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1014) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1032) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE SL.Nav_Staff_ID
= SM.Staff_ID AND SL.Language_Rec_ID
= 9000000002) AND EXISTS (SELECT
Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8597) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1116) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1000) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1001) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1080) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 9000000010) AND
EXISTS (SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL
WITH (NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8589) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 8590) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1081) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 8588) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1041) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1117) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1003) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 8605) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1004) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1005) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8598) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE SL.Nav_Staff_ID
= SM.Staff_ID AND SL.Language_Rec_ID
= 1024) AND EXISTS (SELECT Nav_Staff_ID
FROM HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 9000000009) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1045) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND SL.Language_Rec_ID
= 1007) AND EXISTS (SELECT Nav_Staff_ID
FROM HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1008) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1009) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1010) AND EXISTS (SELECT
Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1127) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1119) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1042) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1120) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1012) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1101) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 8599) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID =
9000000003) AND EXISTS (SELECT Nav_Staff_ID
FROM HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1083) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8592) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1048) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1015) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE SL.Nav_Staff_ID
= SM.Staff_ID AND SL.Language_Rec_ID
= 1043) AND EXISTS (SELECT Nav_Staff_ID
FROM HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1121) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1038) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1039) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1016) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1046) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
9000000012) AND EXISTS (SELECT Nav_Staff_ID
FROM HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1017) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1018) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1019) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1020) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1122) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 8603) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1118) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1123) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1021) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8602) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE SL.Nav_Staff_ID
= SM.Staff_ID AND SL.Language_Rec_ID
= 1022) AND EXISTS (SELECT Nav_Staff_ID
FROM HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1124) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1125) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 9000000007) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1023) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1126) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 9000000004) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1103) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 8604) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1025) AND
EXISTS (SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL
WITH (NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8591) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1128) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1026) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1107) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1082) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1027) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1028) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID = 1044)
AND EXISTS (SELECT Nav_Staff_ID FROM HR_Emp_Language1
SL WITH (NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1047) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE SL.Nav_Staff_ID
= SM.Staff_ID AND SL.Language_Rec_ID
= 1029) AND EXISTS (SELECT Nav_Staff_ID
FROM HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1030) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8606) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 9000000008) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 9000000005) AND
EXISTS (SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL
WITH (NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1129) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1031) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 9000000011) AND
EXISTS (SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL
WITH (NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1130) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8601) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 9000000006) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1033) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 8600) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1131) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1034) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8585) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1040) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1035) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH (NOLOCK)
WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1132) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1133) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 8586) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 1036) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
1037) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 8594) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID =
SM.Staff_ID AND SL.Language_Rec_ID =
8587) AND EXISTS (SELECT Nav_Staff_ID FROM
HR_Emp_Language1 SL WITH (NOLOCK) WHERE
SL.Nav_Staff_ID = SM.Staff_ID AND
SL.Language_Rec_ID = 1134) AND EXISTS
(SELECT Nav_Staff_ID FROM HR_Emp_Language1 SL WITH
(NOLOCK) WHERE SL.Nav_Staff_ID = SM.Staff_ID
AND SL.Language_Rec_ID = 8593) AND EXISTS (SELECT
TSA.Topic_Staff_ID FROM Topic_Staff AS TSA WITH
(NOLOCK) WHERE TSA.Staff_ID =
SM.Staff_ID AND TSA.Contact_Role_Ref_ID IN
(655)) AND SM.Status = 'Published' ORDER BY PA_Rank DESC, Pj_Hours
DESC, Bio_Rank DESC, SM.LastName, SM.FirstName</span></div></div><div style="margin-bottom: 0.0001pt; text-align: left;"><br /></div><div style="margin-bottom: 0.0001pt; text-align: left;">--</div><div style="margin-bottom: 0.0001pt; text-align: left;"><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCI-WC46EdDubBhk7Oco2jpj9Ly0qK1DI_CZq7GOWiw_VPMLR87RuTTL0Wq1cfMIKBYJxakAQtpm2H4dwljvyy7L7XKfZD1DVI-j1EDrdipeeNkl4NPDc0SHKfQDvfHs4kAPmi_Cezj0pE/s420/bucket.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="420" data-original-width="420" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCI-WC46EdDubBhk7Oco2jpj9Ly0qK1DI_CZq7GOWiw_VPMLR87RuTTL0Wq1cfMIKBYJxakAQtpm2H4dwljvyy7L7XKfZD1DVI-j1EDrdipeeNkl4NPDc0SHKfQDvfHs4kAPmi_Cezj0pE/w400-h400/bucket.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">https://www.mememaker.net/api/bucket?path=static/img/memes/full/2019/May/15/1/say-what-440.png</span></td></tr></tbody></table><br /><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">Complex enough for you? Maybe you like this one:</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;">--</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><br /></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: courier;">(@dateFilter int, @staffID nvarchar(5))SELECT [PM].[Project_ID],
[PM].[TB_DATE_OPENED], [PM].[Short_Desc],
[PM].[Project_Type_Code], [PM].[Case_Number],
[PS].[Responsibility_Desc] FROM [Project_Main] [PM] WITH (NOLOCK) INNER JOIN
[Project_Staff] [PS] WITH (NOLOCK) ON [PS].[Project_ID] = [PM].[Project_ID]
WHERE [PM].[Status] LIKE 'Published%' AND [PM].[Status] NOT LIKE 'withdrawn'
AND [PM].[TB_DATE_OPENED] > (getDate() - @dateFilter) AND [Short_Desc] IS
NOT NULL AND [Short_Desc] NOT LIKE 'TB Feed' AND [Short_Desc] NOT LIKE '%UNSOLD
PROPOSAL%' AND ([Short_Desc] NOT LIKE '%follow-on%' or
datalength([Short_Desc])>50) AND [Short_Desc] NOT LIKE 'confidential%' AND
[PS].[Staff_ID]=@staffID AND [Project_Type_Code] = 'c' AND PM.Project_ID IN
('65011625', '65025688', '65032850', '65042668', '65052747', '65058320',
'65130746', '65143481', '65144809', '65147726', '65153299', '65161789',
'65079545', '65083790', '65088035', '65110849', '65119339', '65123584',
'4000218', '65018549', '65027039', '65027254', '65034201', '65052724',
'65150620', '65100793', '65110826', '65126478', '65127806', '65140587',
'65141915', '65054052', '65058343', '65082485', '65086684', '65093846',
'65095174', '65027062', '65027231', '65032804', '65042714', '65047128',
'65055449', '65153345', '65157590', '65159087', '65163332', '65120713',
'65129372', '65130700', '65137693', '65139021', '65143435', '65096740',
'65098068', '65103733', '65107978', '65109475', '65113720', '65071101',
'65072429', '65078171', '65079760', '65081088', '65093654', '65027208',
'65031499', '65054098', '65055426', '65058512', '65069750', '65157736',
'65163355', '65110657', '65119362', '65126432', '65142084', '65143412',
'65149031', '65075369', '65081111', '65082439', '65088058', '65093677',
'65098091', '65018695', '65041509', '65052578', '65053906', '65059740',
'65085210', '65117919', '65129326', '65149223', '65151802', '65086538',
'65093700', '65095028', '65097945', '65105107', '65117842', '65005860', '65008854',
'65042814', '65048648', '65049976', '65073780', '65129349', '65137716',
'65139167', '65140710', '65149200', '65161981', '65075446', '65098045',
'65105207', '65106412', '65119193', '65129011', '65017244', '65027400',
'65039966', '65051204', '65051373', '65052532', '65159256', '65160338',
'65160584', '65161835', '65074095', '65093992', '65095074', '65129034',
'65140687', '65150597', '65007234', '65007480', '65018718', '65051227',
'65052555', '65073949', '65140418', '65150451', '65160607', '65161689', '65106581',
'65117819', '65127975', '65129057', '65129303', '65139213', '65074072',
'65083982', '65095097', '65095220', '65095343', '65096425', '65035429',
'65043006', '65081211', '65083713', '65084128', '65085041', '65145147',
'65146475', '65150720', '65151633', '65085456', '65092618', '65108270',
'65133740', '65135068', '65138898', '65025588', '65026916', '65035867',
'65042568', '65047228', '65051519', '65154942', '65157444', '65112492',
'65118111', '65129472', '65136634', '65143581', '65146083', '65052847',
'65055349', '65087022', '65102459', '65104961', '65106289', '65017321',
'65032973', '65042960', '65048210', '65068522', '65069850', '65127537',
'65143189', '65147849', '65153422', '65154504', '65156508', '65082339',
'65086830', '65092572', '65099319', '65102651', '65103979', '65048356',
'65048602', '65053975', '65055303', '65066664', '65068668', '65142207',
'65152240', '65160146', '65086976', '65100501', '65123899', '65131928',
'65135260', '65136588', '65010543', '65014373', '65036013', '65044088', '65045754',
'65056823', '65122087', '65136150', '65143727', '65146229', '65155134',
'65158626', '65058151', '65066564', '65088204', '65088542', '65089870',
'65092034', '65000364', '65003358', '65013145', '65044480', '65046644',
'65055595', '65146329', '65101875', '65113574', '65122187', '65132220',
'65136050', '65145001', '65057261', '65059425', '65066956', '65068622',
'65070786', '65088104', '65002674', '65014327', '65015409', '65024314',
'65045708', '65066856', '65133694', '65144855', '65145101', '65145937', '65146183',
'65147265', '65102313', '65103395', '65110726', '65122379', '65132366',
'65133448', '65067938', '65068184', '65069266', '65079837', '65080919',
'65099903', '65025542', '65033165', '65034247', '65035575', '65036657',
'65045854', '65146037', '65154988', '65102167', '65103249', '65132512',
'65133594', '65143627', '65144709', '65067002', '65067248', '65078363',
'65079691', '65099757', '65101921', '65046690', '65048018', '65055887',
'65058051', '65058297', '65059379', '12000331', '65000633', '65013368',
'65026103', '65042253', '65046498', '65128742', '65131161', '65140979',
'65144394', '65151556', '65070640', '65090039', '65102774', '65118426',
'65118924', '65123169', '65012063', '65022379', '65048894', '65049392',
'65054513', '65066372', '65137255', '65138798', '65148616', '65070165',
'65081526', '65088473', '65097676', '65104623', '65121105', '65060776',
'65084749', '65085748', '65089163', '65094736', '65104646', '65129618',
'65129787', '65137447', '65143020', '65152340', '65035114', '65048725', '65055180',
'65056385', '65067746', '65072037', '65149990', '65151035', '65154281',
'65154404', '65157982', '65076451', '65097009', '65114112', '65121772',
'65126063', '65130969', '65018280', '65039428', '65043750', '65045001',
'65051742', '65071639', '65161045', '65161543', '65162794', '65128413',
'65131490', '65139980', '65148808', '65152217', '65154381', '65092864',
'65098858', '65111593', '65116176', '65120421', '65125496', '65077633',
'65082708', '65084374', '65085625', '65087789', '65092787', '65017467', '65018180',
'65040779', '65060255', '65081403', '65085725', '65135552', '65140003',
'65149661', '65153030', '65159479', '65161520', '65092764', '65104248',
'65106873', '65109037', '65114035', '65127062', '65006421', '65027646',
'65032389', '65040802', '65050368', '65051450', '65150182', '65158174',
'65161420', '65094161', '65097484', '65106312', '65114304', '65115386',
'65141354', '65060278', '65071516', '65084082', '65084251', '65086415',
'65087497', '65026464', '65050268', '65050391', '65053637', '65072990',
'65081695', '65140295', '65141377', '65149369', '65159648', '65162894',
'65082777', '65085064', '65118065', '65120106', '65120229', '65140172',
'65032097', '65056156', '65056654', '65059986', '65060484', '65068891',
'65162625', '65132827', '65133325', '65142230', '65145562', '65151135',
'65158795', '65091705', '65097776', '65113843', '65122748', '65126578',
'65129495', '65072721', '65079468', '65084543', '65085954', '65088373',
'65088871', '65043527', '65049017', '65049515', '65058220', '65068997', '65076528',
'65131261', '65154573', '65156731', '65158403', '65093969', '65094467',
'65105828', '65113451', '65115609', '65124314', '65009246', '65017988',
'65046375', '65049707', '65057530', '65070265', '65144102', '65152509',
'65160169', '65103564', '65108639', '65119216', '65124122', '65130869',
'65140856', '65073182', '65080252', '65080842', '65090245', '65090331',
'65099150', '65047643', '65053016', '65059594', '65070955', '65077902',
'65078984', '65126186', '65152117', '65158105', '65159187', '65162433', '65081234',
'65082316', '65088181', '65089263', '65095841', '65114825', '65027185',
'65046169', '65053408', '65057736', '65070471', '65076720', '65130079',
'65078386', '65080550', '65088957', '65117089', '65119508', '65121672',
'65024629', '65038154', '65041947', '65044111', '65046275', '65048433',
'65155655', '65157321', '65114533', '65121566', '65122064', '65136173',
'65151327', '65153491', '65078778', '65080942', '65087391', '65091221',
'65096096', '65108539', '65054974', '65055472', '65057138', '65067417',
'65067915', '65069581', '65011994', '65016322', '65055864', '65056946',
'65067517', '65068599', '65089747', '65099734', '65135781', '65141440',
'65010812', '65014058', '65015140', '65025419', '65034616', '65036780',
'65148324', '65152701', '65154865', '65157029', '65164062', '65089847',
'65093093', '65100716', '65125602', '65133717', '65146160', '65057928',
'65068207', '65078486', '65079568', '65080650', '65081732', '65017696',
'65024858', '65046415', '65053245', '65057490', '65079047', '65141062', '65161291',
'65122754', '65124414', '65131576', '65132572', '65132904', '65136817',
'65081632', '65081964', '65086209', '65100272', '65110351', '65115592',
'65010772', '65035031', '65043189', '65050351', '65060716', '65066335',
'65131599', '65132595', '65142960', '65143956', '65085854', '65087182',
'65091805', '65099963', '65107457', '65111324', '65067663', '65068874',
'65074493', '65077696', '65079024', '65084858', '65040464', '65046129',
'65050374', '65053531', '65056448', '65067686', '65152423', '65155340', '65135775',
'65146681', '65147013', '65149930', '65150926', '65151095', '65101483',
'65117467', '65118294', '65128373', '65132618', '65134115', '65068682',
'65068851', '65071768', '65086163', '65089080', '65090408', '65046106',
'65056471', '65057799', '65063418', '65067377', '65067832', '65134301',
'65139711', '65140043', '65144002', '65145662', '65157023', '65068828',
'65069160', '65085685', '65086017', '65101460', '65122731', '65024689',
'65025359', '65054742', '65055993', '65066149', '65072054', '65111178',
'65161122', '65078546', '65080467', '65087374', '65088625', '65105937',
'65109850', '65000862', '65066126', '65072077', '65078569', '65079239',
'65083438', '65141208', '65153651', '65111201', '65114527', '65122685',
'65128513', '65129847', '65138546', '65087397', '65090600', '65097092',
'65097215', '65103043', '65109873', '65039299', '65060693', '65088410',
'65091828', '65097238', '65098489', '65155171', '65157092', '65162502',
'65119960', '65121211', '65125957', '65131367', '65152592', '65153843', '65098566',
'65098735', '65108645', '65114550', '65115801', '65116047', '65043235',
'65043358', '65049186', '65054719', '65060670', '65065957', '65159771',
'65141254', '65143787', '65148410', '65153697', '65153820', '65158566',
'65097261', '65098712', '65119737', '65125934', '65135844', '65137049',
'65070580', '65071908', '65075990', '65077318', '65087351', '65091851',
'65048662', '65054911', '65055243', '65056239', '65059073', '65069306',
'65141317', '65151550', '65162957', '65091788', '65097693', '65126993', '65134238',
'65134570', '65138068', '65072223', '65076053', '65079385', '65083630',
'65084211', '65085539', '65027414', '65066212', '65067208', '65087852',
'65088848', '65091682', '65127099', '65130929', '65134132', '65152784',
'65093471', '65094799', '65098629', '65101629', '65122771', '65123767',
'65008333', '65018993', '65040550', '65044878', '65044964', '65077679',
'65155094', '65156422', '65125287', '65127208', '65127291', '65128619',
'65140189', '65145599', '65083584', '65090162', '65091158', '65094490',
'65102565', '65123209', '65007941', '65033663', '65040696', '65041569',
'65050975', '65052930', '65133846', '65144457', '65155486', '65155572',
'65156814', '65058881', '65070242', '65073242', '65095964', '65122817',
'65128227', '65025104', '65044918', '65047580', '65051410', '65057659',
'65058987', '65111516', '65115346', '65128828', '65132658', '65148393',
'65164039', '65076299', '65080129', '65082791', '65083129', '65092870',
'65100441', '65058595', '65069956', '65071622', '65073743', '65083776', '65084065',
'65108908', '65109246', '65124351', '65139542', '65088934', '65090268',
'65095426', '65096219', '65097885', '65102711', '65038967', '65047626',
'65048708', '65055197', '65057361', '65071430', '65093906', '65122625',
'65151596', '65152678', '65158088', '65159170', '65043444', '65044772',
'65048854', '65049100', '65050182', '65053723', '65152824', '65153906',
'65154152', '65159562', '65131430', '65137922', '65142545', '65145791',
'65148201', '65151742', '65060461', '65077527', '65078609', '65084019', '65118987',
'65130348', '65017115', '65024775', '65025273', '65045502', '65049747',
'65050743', '65124829', '65131991', '65135406', '65160378', '65160876',
'65082047', '65083873', '65103604', '65104102', '65108015', '65114679',
'65053162', '65054158', '65057905', '65058403', '65070972', '65071470',
'65000610', '65032910', '65039359', '65047019', '65049724', '65054181',
'65153239', '65153737', '65154235', '65154733', '65121818', '65128267',
'65139130', '65140126', '65146790', '65147786', '65056886', '65079651',
'65082356', '65082854', '65091012', '65110955', '4000109', '65034141',
'65038555', '65039551', '65047042', '65056863', '65128290', '65149017',
'65150013', '65151012', '65154258', '65092741', '65095658', '65096654',
'65110720', '65121626', '65126369', '65067440', '65067769', '65069764',
'65075429', '65087998', '65089495', '65025794', '65037155', '65055389',
'65066750', '65081357', '65086767', '65147617', '65150322', '65150703',
'65155732', '65156654', '65088021', '65089017', '65097132', '65107042', '65111739',
'65114985', '65027523', '65048250', '65052993', '65053491', '65078303',
'65080882', '65134739', '65138154', '65157630', '65160209', '65162373',
'65162871', '65086959', '65089538', '65103773', '65109014', '65112429',
'65127577', '65046976', '65050935', '65056929', '65068247', '65068290',
'65074241', '65152200', '65155987', '65157481', '65157653', '65160186',
'65132011', '65134716', '65140839', '65149323', '65149538', '65150989',
'65076405', '65076903', '65110912', '65119568', '65123355', '65131513', '65005585',
'65014241', '65035807', '65041048', '65042299', '65059611', '65149346',
'65151510', '65151679', '65152761', '65096156', '65097653', '65118211',
'65122296', '65128788', '65146269', '65068267', '65069521', '65071685',
'65074931', '65090746', '65092243', '65035489', '65054350', '65074908',
'65080859', '65083023', '65092220', '65122147', '65124852', '65133508',
'65139459', '65158320', '65094384', '65096179', '65098343', '65099425',
'65100876', '65115655', '65019279', '65031267', '65048081', '65048579', '65054828',
'65059654', '65160123', '65126495', '65130325', '65137072', '65138483',
'65138981', '65158712', '65076468', '65080298', '65104855', '65112515',
'65113013', '65116843', '65034078', '65037410', '65037908', '65069827',
'65074155', '65076860', '65148954', '65156399', '65077985', '65129933',
'65141294', '65144626', '65146120', '65147743', '65032890', '65040719',
'65043965', '65045047', '65066687', '65069933', '65137856', '65141102',
'65148762', '65152263', '65073265', '65088327', '65091659', '65094576',
'65115134', '65123876', '65012724', '65027331', '65069541', '65082525',
'65083607', '65091267', '65131842', '65098300', '65099296', '65102542',
'65103624', '65105247', '65117235', '65047497', '65049661', '65049916',
'65053989', '65055910', '65056408', '65156877', '65073720', '65075884',
'65079714', '65080212', '65109767', '65117925', '65025465', '65034662',
'65043275', '65049269', '65051433', '65054138', '65158649', '65135343',
'65139173', '65142376', '65144042', '65150491', '65150534', '65060630', '65066581',
'65075237', '65128851', '65133179', '65134845', '65039880', '65067271',
'65073763', '65089993', '65092157', '65099488', '65103816', '65121128',
'65140604', '65155011', '65156093', '65159339', '65004025', '65072289',
'65076076', '65082568', '65085273', '65086355', '65103126', '65105290',
'65109077', '65111241', '65114487', '65122602', '65089601', '65091765',
'65092847', '65095011', '65099880', '65100962', '65034510', '65040344',
'65050162', '65053743', '65058652', '65069395', '65152967', '65155884', '65074304',
'65085711', '65102027', '65106936', '65110517', '65139568', '65012598',
'65026043', '65027586', '65037404', '65045894', '65058011', '65142462',
'65157899', '65159442', '65101125', '65117441', '65123275', '65131765',
'65136628', '65141583', '65070036', '65077862', '65082817', '65085688',
'65090643', '65091307', '65039465', '65060026', '65071433', '65076342',
'65080756', '65092163', '65146020', '65148012', '65157922', '65011765',
'65025548', '65026876', '65032495', '65042405', '65043733', '65143080',
'65157945', '65088390', '65092140', '65115403', '65131719', '65136674',
'65141088', '65050139', '65053766', '65055094', '65060049', '65072074',
'65077029', '65024861', '65025187', '65033351', '65047337', '65055240',
'65057155', '65148553', '65157381', '65125413', '65132575', '65133826',
'65135154', '65145974', '65146561', '65092117', '65100607', '65112014',
'65119840', '65121832', '65122419', '65058157', '65060149', '65067975',
'65081297', '65081961', '65090789', '65025502', '65033992', '65070577', '65078403',
'65079405', '65081397', '65124726', '65146538', '65154364', '65089223',
'65090766', '65098592', '65102545', '65113906', '65122396', '65026561',
'65033892', '65035884', '65059193', '65068021', '65068516', '65143936',
'65145187', '65121214', '65122711', '65133780', '65135277', '65142608',
'65143690', '19000089', '65003275', '65013185', '65047268', '65047809',
'65056637', '65133262', '65133803', '65112409', '65112532', '65121360',
'65121901', '65123770', '65124434', '65068539', '65079359', '65079900', '65088728',
'65091802', '65099966', '65002465', '65034848', '65044666', '65047583',
'65056322', '65058990', '65136989', '65142147', '65147471', '65149973',
'65155961', '65079800', '65080879', '65085788', '65096116', '65122914',
'65134321', '65002239', '65015223', '65018758', '65045353', '65047191',
'65088682', '65155569', '65161772', '65126269', '65131427', '65134095',
'65137630', '65142585', '65147079', '65095180', '65098131', '65102127',
'65113488', '65115990', '65118443', '65015661', '65031977', '65050285',
'65051367', '65052538', '65058944', '65099651', '65104975', '65121291',
'65121540', '65130786', '65140524', '65066601', '65076929', '65082253',
'65085834', '65088244', '65098569', '1000571', '65003072', '65026630',
'65032372', '65037991', '65054012', '65055635', '65067537', '65075947',
'65116485', '65119276', '65004300', '65016448', '65051997', '65054161',
'65075801', '65083876', '65149140', '65154049', '65159960', '65127743',
'65128330', '65129907', '65130245', '65142642', '65148891', '65085293', '65086621',
'65094696', '65095283', '65105854', '65106103', '65006856', '65027463',
'65049644', '65052638', '65060464', '65073245', '65141165', '65141706',
'65143329', '65149532', '65149870', '65151493', '65117902', '65125728',
'65127892', '65130345', '65130886', '65138712', '65073448', '65073786',
'65086770', '65096262', '65097590', '65116531', '65018658', '65040298',
'65052200', '65083922', '65095575', '65096657', '65141019', '65148350',
'65151593', '65152675', '65106395', '65106644', '65128871', '65129953', '65130199',
'65137530', '65007689', '65032034', '65060510', '65071871', '65072953',
'65083232', '65161480', '65162808', '65139545', '65149824', '65150119',
'65150365', '65150906', '65151988', '65083773', '65084314', '65084855',
'65108118', '65116282', '65139004', '65032103', '65048419', '65050577',
'65053328', '65053494', '65059067', '65139817', '65145556', '65149635',
'65075383', '65082379', '65094616', '65123667', '65129240', '65136236',
'65007274', '65039193', '65072704', '65089020', '65089684', '65095967',
'65130142', '65144749', '65154567', '65010165', '65010832', '65013082',
'65013915', '65031390', '65035469', '65121958', '65081171', '65087334',
'65089326', '65094404', '65110056', '65114298', '65056199', '65068436',
'65071018', '65072515', '65079674', '65080338', '65039050', '65042133',
'65047706', '65049203', '65051456', '65055366', '65003195', '65005900',
'65018847', '65037819', '65037868', '65042774', '65102419', '65105665',
'65114321', '65073033', '65073697', '65077447', '65081689', '65084394', '65093763',
'65047188', '65047729', '65057381', '65059090', '65069787', '65070451',
'65033428', '65055578', '65060321', '65067560', '65071141', '65079133',
'65135403', '65144231', '65148138', '65152887', '65156794', '65094281',
'65102937', '65111599', '65122834', '65124998', '65126913', '65002860',
'65057593', '65059757', '65060298', '65071118', '65081569', '65152864',
'65156817', '65091725', '65112406', '65126349', '65135005', '65135546',
'65148161', '65069103', '65077759', '65081005', '65089661', '65110809', '65122293',
'65145433', '65147597', '65155420', '65157507', '65125539', '65133531',
'65134862', '65137441', '65144351', '65145015', '65001652', '65013554',
'65078990', '65087646', '65088187', '65099548', '65154779', '65155443',
'65156943', '65133631', '65134221', '65134885', '65143000', '65144082',
'65154238', '65113614', '65122983', '65125516', '65126057', '65131516',
'65132721', '65034018', '65048247', '65051579', '65067480', '65077298',
'65087875', '65131155', '65137404', '65150637', '65089120', '65093199',
'65096780', '65109764', '65122499', '65128748', '65002442', '65031705',
'65033248', '65034871', '65051187', '65056050', '65148622', '65150245',
'65158901', '65161606', '65098795', '65104795', '65109123', '65125808',
'65127431', '65129140', '65056511', '65067872', '65075532', '65082479',
'65092807', '65097172', '65005751', '65012000', '65041051', '65044297',
'65045379', '65049621', '65098154', '65111138', '65113216', '65120876',
'65065937', '65067019', '65075924', '65078592', '65080003', '65082920', '65049870',
'65050703', '65057281', '65058526', '65059608', '65060198', '65010314',
'65017261', '65034659', '65042233', '65044938', '65046020', '65073574',
'65074201', '65075283', '65085562', '65100169', '65108825', '65055217',
'65056299', '65057885', '65057922', '65070328', '65070869', '65004128',
'65010371', '65014456', '65049080', '65051244', '65052661', '65153634',
'65162290', '65125751', '65128158', '65136571', '65138735', '65140650',
'65149555', '65067809', '65076465', '65082714', '65084878', '65110597', '65117338',
'65052810', '65054433', '65087434', '65095549', '65098254', '65099877',
'65142665', '65149704', '65155649', '65157819', '65100418', '65108041',
'65116697', '65119402', '65127517', '65128058', '65075681', '65084337',
'65085419', '65086501', '65097321', '65107059', '65160667', '65160916',
'65161749', '65163080', '65142273', '65147932', '65148765', '65149014',
'65149847', '65159834', '65120043', '65128456', '65130371', '65136030',
'65138194', '65141191', '65102880', '65104503', '65106667', '65108290',
'65117487', '65118569', '65153734', '65158652', '65160275', '65160816',
'65161898', '65162980', '65137504', '65141291', '65151029', '65151078',
'65151619', '65152111', '65119651', '65126684', '65128307', '65128848',
'65131012', '65131553', '48000446', '65012455', '65050992', '65057822',
'65069229', '65071221', '65155718', '65161623', '65135489', '65137481',
'65139402', '65140398', '65144311', '65147228', '65083624', '65086541',
'65091450', '65094367', '65102857', '65103853', '65032707', '65041529', '65050019',
'65053886', '65057845', '65058841', '65136462', '65140421', '65159608',
'65108785', '65109664', '65115615', '65118154', '65134470', '65135466',
'65070202', '65075157', '65076153', '65078692', '65090477', '65091473',
'65052034', '65102811', '65121048', '65133451', '65135443', '65145353',
'65146349', '65149266', '65151759', '65155672', '65163661', '65007523',
'65067168', '65083484', '65084480', '65089435', '65090431', '65161646',
'65139379', '65144334', '65145330', '65151281', '65156691', '65160650', '65099800',
'65102333', '65105751', '65117653', '65122067', '65130010', '65033179',
'65055406', '65069724', '65076631', '65077218', '65080544', '65161128',
'65094530', '65095864', '65113763', '65117676', '65152300', '65159130',
'65011977', '65013311', '65037115', '65038117', '65049478', '65054427',
'65164022', '65098420', '65129060', '65139880', '65161145', '65163143',
'65163684', '65069747', '65073282', '65074616', '65080567', '65089936',
'65097879', '65053368', '65055947', '65067849', '65069770', '65080590',
'65087082', '65153179', '65158589', '65100481', '65105891', '65118632',
'65125124', '65137026', '65147846', '65038612', '65047440', '65047981',
'65048522', '65053932', '65054473', '65093966', '65094507', '65114696',
'65115237', '65059883', '65076654', '65082064', '65083146', '65088015',
'65088556', '65001635', '65040587', '65043089', '65043504', '65056488',
'65060401', '65102270', '65125665', '65126661', '65137819', '65138815',
'65067646', '65072804', '65083962', '65090116', '65096946', '65099863', '65000616',
'65035240', '65068665', '65069661', '65080026', '65082645', '65158274',
'65133929', '65142751', '65145290', '65146286', '65148788', '65149784',
'65085977', '65097338', '65107334', '65124646', '65129601', '65130597',
'65017324', '65056285', '65057367', '65069269', '65073597', '65074679',
'65157255', '65160587', '65115552', '65127540', '65139442', '65143770',
'65144271', '65156754', '65002027', '65013388', '65082943', '65084566',
'65094931', '65125141', '65128473', '65135506', '65141457', '65145244', '65145785',
'65154158', '50000593', '65014871', '65032183', '65038675', '65047918',
'65055744', '65155632', '65160541', '65162124', '65162705', '65114759',
'65128081', '65136399', '65138320', '65144812', '65151304', '65086627',
'65089034', '65090368', '65090955', '65097447', '65103352', '65055987',
'65057908', '65062236', '65067394', '65068728', '65079548', '65015309',
'65040447', '65042611', '65045605', '65049933', '65050474', '65157647',
'65158188', '65142499', '65147165', '65147368', '65153319', '65153657',
'65154198', '65052097', '65053972', '65069120', '65082104', '65112203',
'65140335', '65025150', '65032724', '65047872', '65054364', '65056033',
'65066853', '65126120', '65131530', '65092578', '65095824', '65096906',
'65102316', '65109890', '65114218', '65073345', '65076591', '65077673',
'65078755', '65083083', '65091496', '15000035', '65011476', '65058887',
'65069707', '65070789', '65071330', '65104331', '65110823', '65076740',
'65081609', '65092429', '65093511', '65094593', '65100003', '65049581', '65057241',
'65058237', '65074553', '65075549', '65082213', '65128410', '65137066',
'65143730', '65145722', '65086126', '65090869', '65094782', '65116837',
'65119754', '65127414', '65007108', '65013059', '65016760', '65047566',
'65056222', '65072538', '65161231', '65082190', '65087145', '65088141',
'65089850', '65097510', '65140790', '65074765', '65083421', '65088831',
'65092077', '65125705', '65139771', '65163747', '65141025', '65142688',
'65143017', '65147431', '65158337', '65160000', '65095472', '65096013', '65104669',
'65116030', '65136760', '65139293', '65154613', '65155609', '65159027',
'65160023', '65161019', '65164265', '65145957', '65146412', '65147949',
'65148662', '65152363', '65154072', '65016454', '65066226', '65068390',
'65072060', '65078967', '65080716', '65132824', '65150136', '65150889',
'65159545', '65085459', '65094115', '65102771', '65104935', '65106684',
'65122004', '65019010', '65027125', '65033617', '65042273', '65050271',
'65050812', '65100043', '65100756', '65106707', '65108871', '65124019',
'65126724', '65084895', '65089395', '65091387', '65094092', '65096256',
'65098051', '65052976', '65056763', '65058927', '65067583', '65068124',
'65078944', '15000098', '65032810', '65036471', '65037553', '65040384',
'65052286', '65084918', '65090328', '65093574', '65110886', '65070852',
'65072844', '65074098', '65076090', '65076262', '65079508', '65055532',
'65057029', '65057696', '65058778', '65060275', '65067434', '65005070',
'65014267', '65019136', '65022382', '65031579', '65033743', '65083687', '65092884',
'65093425', '65057719', '65058801', '65060424', '65066375', '65078277',
'65080982', '65046358', '65048350', '65049604', '65050145', '65052137',
'65054301', '65036989', '65043112', '65043481', '65044194', '65045645',
'65046186', '65055077', '65071393', '65072389', '65080049', '65085373',
'65088705', '65142562', '65151218', '65158463', '65162791', '65095950',
'65098357', '65100278', '65108934', '65138234', '65141151', '65096342',
'65096969', '65099674', '65100670', '65105625', '65113654', '65134298', '65135921',
'65115277', '65117982', '65118609', '65119605', '65127265', '65131593',
'65098655', '65107311', '65123541', '65127955', '65140939', '65146263',
'65160086', '65161168', '65163418', '65148513', '65151430', '65152512',
'65155758', '65157169', '65158251', '65121526', '65128559', '65132887',
'65135592', '65136133', '65137215', '65156777', '65157773', '65158855',
'65163810', '65143166', '65144875', '65147494', '65147580', '65151822',
'65155154', '65047503', '65051831', '65056159', '65066979', '65073471',
'65077799', '65105688', '65112180', '65133820', '65138148', '65082127',
'65084291', '65086455', '65090783', '65092704', '65103524', '65015137',
'65025957', '65067128', '65069292', '65073079', '65073620', '65108244',
'65075243', '65075784', '65083899', '65090932', '65099588', '65101211',
'1000305', '65012581', '65032057', '65033139', '65036385', '65044798',
'65091324', '65074012', '65078340', '65080504', '65081586', '65083750',
'65084832', '65049369', '65050208', '65053454', '65054536', '65058864', '65066438',
'8000429', '65031665', '65034370', '65041403', '65042485', '65050059',
'65058174', '65059797', '65069535', '65070617', '65073322', '65050600',
'65051141', '65053846', '65054387', '65056010', '65056551', '65032186',
'65050494', '65053411', '65054739', '65057656', '65073308', '65118675',
'65127165', '65139900', '65144145', '65148390', '65074636', '65077553',
'65083126', '65094533', '65107268', '65111513', '65037736', '65057679',
'65060550', '65067497', '65069040', '65077530', '65148413', '65149741', '65158231',
'65161102', '65084477', '65090311', '65094510', '65111490', '65115781',
'65134089', '65015160', '65026398', '65032140', '65039133', '65056113',
'65059030', '65142771', '65145688', '65155337', '65158254', '65162668',
'65071765', '65074682', '65076179', '65088745', '65091662', '65097404',
'9000003', '65032163', '65059176', '65060381', '65060504', '65070414',
'65153986', '65159605', '65164019', '65098755', '65108665', '65110116',
'65130059', '65142748', '65148367', '65076156', '65077484', '65083103', '65087394',
'65093136', '65094341', '65007875', '65018031', '65033345', '65037928',
'65050663', '65053242', '65149887', '65159628', '65161294', '65129913',
'65131241', '65137152', '65138403', '65139731', '65140069', '65071888',
'65073139', '65084623', '65103192', '65107437', '65125668', '65042150',
'65049312', '65071788', '65095715', '65097258', '65098586', '65149864',
'65151161', '65162522', '65163850', '65107414', '65114576', '65119857',
'65128347', '65138503', '65148536', '65006670', '65006839', '65019405',
'65040799', '65041881', '65050540', '65138526', '65141105', '65159920',
'65104566', '65105894', '65115804', '65117132', '65117301', '65127288',
'65053365', '65060696', '65071934', '65075841', '65084500', '65093328',
'65053219', '65073162', '65083318', '65085851', '65095761', '65107368',
'65149910', '65151115', '65128393', '65128516', '65128639', '65129844',
'65138549', '65149787', '65027603', '65044583', '65052160', '65077630',
'65080132', '65092867', '65159459', '65128831', '65133989', '65135317', '65138649',
'65155629', '65158131', '65097112', '65100444', '65101772', '65114507',
'65117424', '65125914', '15000038', '65009272', '65048851', '65056382',
'65058884', '65074536', '65159897', '65161440', '65120318', '65125476',
'65129767', '65150079', '65151407', '65158569', '65084354', '65094633',
'65096176', '65097504', '65103338', '65108957', '65031894', '65038964',
'65047961', '65049289', '65052206', '65053534', '65137275', '65154255',
'65160833', '65098486', '65101818', '65102900', '65114553', '65119880', '65120126',
'65057948', '65059276', '65067351', '65074928', '65082834', '65086335',
'65010646', '65053680', '65069209', '65070537', '65071619', '65080570',
'65148244', '65149572', '65158523', '65126850', '65136883', '65138211',
'65142502', '65143830', '65147162', '65082980', '65087271', '65091931',
'65097550', '65101964', '65120272', '65010792', '65034596', '65036262',
'65053580', '65054908', '65057902', '65144314', '65145642', '65158377',
'65102854', '65111267', '65111759', '65115589', '65121500', '65143976',
'65058738', '65067643', '65069309', '65071473', '65078712', '65080378',
'65044775', '65046103', '65067251', '65068579', '65070245', '65078612',
'65114361', '65124394', '65133007', '65135171', '65146870', '65159313',
'65080278', '65081606', '65087563', '65088891', '65098924', '65104082',
'65013494', '65026229', '65047377', '65056282', '65056528', '65057364',
'65155675', '65099070', '65102562', '65113133', '65135363', '65142940',
'65144022', '65057610', '65067689', '65069017', '65070099', '65090411', '65091493',
'13000014', '65003361', '65025001', '65033706', '65033952', '65045067',
'65154447', '65155529', '65156611', '65157939', '65079986', '65080232',
'65099216', '65134135', '65135217', '65146578', '65046395', '65047477',
'65056428', '65057510', '65069953', '65078904', '65011874', '65025439',
'65032601', '65048751', '65052498', '65058569', '65119588', '65128078',
'65140315', '65160212', '65081383', '65086956', '65099193', '65102110',
'65114845', '65119090', '65031748', '65038695', '65058048', '65069999', '65072157',
'65072372', '65161563', '65162061', '65128101', '65136093', '65138964',
'65147952', '65153073', '65155114', '65072870', '65079817', '65086481',
'65098340', '65106332', '65112449', '65015575', '65018821', '65031227',
'65040046', '65051124', '65054370', '65126704', '65143684', '65151676',
'65156419', '65157341', '65159336', '65088330', '65103982', '65111052',
'65113302', '65116717', '65120962', '65059445', '65069432', '65072678',
'65075097', '65082167', '65085413', '65025462', '65033122', '65048061',
'65048184', '65071373', '65079488', '65160687', '65080693', '65119067',
'65122436', '65126727', '65153740', '65158646', '65015452', '65026936',
'65032930', '65055821', '65058240', '65070975', '65160879', '65116840',
'65117593', '65137567', '65143561', '65150302', '65150723', '65082044',
'65088453', '65096445', '65096866', '65109678', '65116342', '5000038',
'65017639', '65051101', '65085774', '65086266', '65095094', '65148659',
'65150325', '65152366', '65095592', '65117693', '65118191', '65127388', '65130849',
'65139339', '65018323', '65044291', '65048376', '65072349', '65082336',
'65085582', '65162084', '65162253', '65148928', '65151015', '65152097',
'65152174', '65158838', '65160089', '65088161', '65095492', '65108227',
'65126206', '65142187', '65148851', '65038366', '65050809', '65053096',
'65070998', '65082359', '65096843', '65160189', '65160312', '65118114',
'65119688', '65127680', '65130926', '65137467', '65150033', '65009295',
'65011453', '65015283', '65025860', '65047002', '65056405', '65126329', '65129246',
'65139562', '65146309', '65149641', '65154716', '65097527', '65110262',
'65113594', '65114092', '65116511', '65122997', '65056903', '65060235',
'65079717', '65085705', '65088124', '65091954', '65007231', '65036531',
'65045734', '65052183', '65056013', '65059843', '65137796', '65144245',
'65149120', '65153448', '65163229', '65097135', '65106953', '65107998',
'65115658', '65125937', '65133468', '65062001', '65071204', '65078151',
'65081483', '65085313', '65092844', '65035641', '65041214', '65045542',
'65053949', '65055031', '65058363', '65129283', '65070514', '65083249',
'65089498', '65099983', '65118967', '65127872', '65037905', '65040032',
'65054639', '65056889', '65057971', '65066000', '65134842', '65135924',
'65143461', '65150494', '65160810', '65161855', '65095300', '65098509',
'65104497', '65127809', '65131510', '65132592', '65069332', '65079525',
'65079611', '65083939', '65087640', '65090972', '65033683', '65044254',
'65057487', '65059651', '65066392', '65072386', '65157962', '65078635', '65080301',
'65089704', '65091370', '65113010', '65144729', '65025668', '65046810',
'65051138', '65054931', '65057095', '65067958', '65154032', '65156196',
'65097719', '65102041', '65110746', '65136714', '65149157', '65151868',
'65068456', '65078237', '65082565', '65087932', '65089598', '65090096',
'65017155', '65037221', '65056697', '65058861', '65059943', '65067766',
'65110554', '65125453', '65126535', '65145519', '65155506', '65071012',
'65078927', '65081091', '65086750', '65088914', '65091078', '65034075', '65046518',
'65047600', '65054141', '65056305', '65057387', '65120733', '65121815',
'65145619', '65146701', '65066584', '65076863', '65081191', '65088224',
'65110454', '65113700', '65005625', '65007546', '65045419', '65058486',
'65066644', '65069893', '65102193', '65103521', '65116588', '65119505',
'65120501', '65078051', '65087869', '65089790', '65091118', '65095363',
'65097948', '65058509', '65073829', '65078028', '65092137', '65095340',
'65102170', '65148911', '65153110', '65158944', '65159276', '65160272',
'65116279', '65117607', '65124769', '65126644', '65140753', '65141749',
'65012833', '65048121', '65051038', '65056780', '65069847', '65083670',
'65132286', '65133783', '65134779', '65137696', '65152091', '65155008',
'65089412', '65112389', '65116302', '65129369', '65130365', '65130697',
'65018761', '65034204', '65035741', '65045442', '65047102', '65051061',
'65139047', '65144998', '65145994', '65150408', '65161978', '65162974',
'65085144', '65102001', '65106415', '65116448', '65116780', '65133305', '65052389',
'65066836', '65068164', '65068373', '65074115', '65083693', '65031264',
'65040009', '65045250', '65070062', '65076554', '65082459', '65156551',
'65119004', '65123919', '65132077', '65147723', '65154630', '65155881',
'65090617', '65091287', '65099107', '65099445', '65115091', '65116757',
'65048814', '65055306', '65079780', '65079903', '65081231', '65086395',
'65153325', '65163020', '65099422', '65111865', '65123226', '65132054',
'65136339', '65138005', '65017487', '65027397', '65031479', '65051201', '65052704',
'65055114', '65109309', '65115137', '65141772', '65141941', '65160581',
'65055283', '65070016', '65071098', '65079926', '65085336', '65086418',
'65027374', '65038489', '65039817', '65048645', '65048768', '65049850',
'65125147', '65143246', '65146664', '65159230', '65052727', '65082482',
'65093843', '65103753', '65119196', '65120524', '65015366', '65027520',
'65038927', '65050915', '65056820', '65066899', '65118835', '65153803',
'65068227', '65071144', '65089535', '65093697', '65098025', '65100942',
'65018260', '65035572', '65043730', '65071536', '65078698', '65097633',
'65103836', '65111115', '65122144', '65126306', '65140083', '65024403',
'65025731', '65027566', '65042711', '65046043', '65047039', '65140275',
'65143438', '65144520', '65157501', '65161915', '65056534', '65073846',
'65078174', '65078260', '65105565', '65118881', '65017679', '65024257',
'65041237', '65044569', '65046893', '65056926', '65139502', '65140129',
'65149535', '65150162', '65157441', '65160441', '65110829', '65122276', '65126604',
'65132223', '65133551', '65138174', '65057258', '65058008', '65067291',
'65068287', '65068619', '65092177', '65035426', '65043341', '65049833',
'65054072', '65067145', '65073637', '65121002', '65146140', '65154885',
'65078220', '65085791', '65087955', '65093949', '65099362', '65117753',
'65025791', '65078114', '65086727', '65088393', '65091055', '65094885',
'65139001', '65162024', '65116525', '65118689', '65122230', '65124892',
'65126558', '65134673', '65096760', '65099754', '65101088', '65102416', '65103252',
'65115197', '65057118', '65059282', '65060610', '65075758', '65076840',
'65080922', '65162170', '65097152', '65109641', '65114805', '65147268',
'65154839', '65155921', '65032870', '65037198', '65043985', '65045313',
'65048313', '65055592', '65153611', '65157693', '65160103', '65120610',
'65126020', '65139840', '65143332', '65147414', '65147660', '65056674',
'65059920', '65060756', '65072117', '65082396', '65113577', '65016119',
'65026269', '65049249', '65054656', '65058901', '65067059', '65122837',
'65148307', '65149801', '65156963', '65070474', '65073391', '65087786',
'65095944', '65098363', '65116671', '65047517', '65049226', '65054679',
'65055675', '65066040', '65073202', '65130972', '65136923', '65152741',
'65162393', '65074696', '65080149', '65087809', '65088307', '65105502',
'65123312', '65012160', '65048038', '65073179', '65076425', '65083089',
'65101397', '65142356', '65145602', '65145771', '65155423', '65112970',
'65127036', '65131779', '65134696', '65135692', '65137942', '65015429', '65031204',
'65034450', '65040401', '65043487', '65051762', '65124354', '65141666',
'65147998', '65153027', '65153949', '65090726', '65096136', '65097673',
'65105333', '65114444', '65115698', '65054848', '65072701', '65080816',
'65083066', '65084775', '65088476', '5000061', '65031181', '65033600',
'65037845', '65059568', '65074888', '65134241', '65154215', '65082874',
'65098194', '65100358', '65117670', '65119419', '65121583', '65006985',
'65033451', '65046478', '65050265', '65050978', '65057427', '65160856', '65142333',
'65145536', '65147331', '65149495', '65155489', '65160358', '65110414',
'65114699', '65125562', '65128224', '65134175', '65134218', '65058921',
'65059591', '65068788', '65070454', '65070952', '65082897', '65032392',
'65047709', '65053119', '65070431', '65076923', '65081008', '65160166',
'65160335', '65124288', '65125370', '65137613', '65142854', '65144105',
'65158171', '65084254', '65085751', '65086833', '65088997', '65101566',
'65106309', '65005734', '65054891', '65068957', '65075449', '65080318',
'65085728', '65106286', '65116196', '65121606', '65130803', '65086810',
'65092761', '65101417', '65101589', '65103040', '65104122', '65035097',
'65035595', '65046670', '65050500', '65067314', '65068808', '65146641',
'65149558', '65150969', '65153388', '65075970', '65097610', '65100029',
'65121171', '65125499', '65129827', '65050394', '65054722', '65057839',
'65060673', '65072034', '65072532', '65149950', '65150448', '65158108',
'65158606', '65128808', '65132140', '65133136', '65139087', '65140298', '65146249',
'65049375', '65052621', '65053703', '65056949', '65077593', '65078589',
'65135778', '65143607', '65146853', '65154172', '65159837', '65164251',
'65081921', '65082917', '65100315', '65104643', '65107889', '65129200',
'65002986', '65024626', '65074951', '65082611', '65088562', '65093972',
'65095509', '65098841', '65099923', '65104165', '65129137', '65136170',
'65015535', '65019365', '65034513', '65035011', '65038841', '65039339',
'65152549', '65158798', '65097026', '65098947', '65118423', '65143893', '65146555',
'65150385', '65069392', '65071058', '65084540', '65088370', '65091032',
'65093196', '65041260', '65043424', '65047752', '65049418', '65066730',
'65067228', '65024340', '65026504', '65041652', '65045482', '65047646',
'65051931', '65163475', '65145665', '65146163', '65148327', '65151032',
'65153196', '65161311', '65069784', '65073614', '65127228', '65131556',
'65141337', '65143501', '65054095', '65055761', '65058423', '65060089',
'65067122', '65067620', '65043126', '65045290', '65053205', '65055369',
'65057533', '65058615', '65128702', '65133030', '65134112', '65139522',
'65162585', '65163667', '65075927', '65079173', '65082419', '65101895',
'65110308', '65114636', '65017009', '65075535', '65076617', '65077699',
'65078781', '65080945', '65098257', '65102585', '65103667', '65105831',
'65107454', '65110700', '65082027', '65085814', '65086896', '65089060',
'65090142', '65092306', '65024692', '65041672', '65045917', '65046581',
'65049498', '65054407', '65153631', '65160129', '65162121', '65119007', '65124580',
'65127497', '65133070', '65147394', '65151639', '65079213', '65082130',
'65095529', '65098446', '65108264', '65111845', '65024715', '65033205',
'65043023', '65051513', '65057347', '65078526', '65091971', '65103332',
'65111822', '65124603', '65133093', '65135964', '65038137', '65044543',
'65098400', '65121709', '65126618', '65137361', '65158586', '65163664',
'65141775', '65142270', '65142934', '65143767', '65157258', '65158091',
'3000223', '65026753', '65045061', '65054430', '65077693', '65082107', '65154318',
'65158609', '65159273', '65163023', '65163687', '65114075', '65126100',
'65130391', '65136010', '65137338', '65148699', '65102714', '65103378',
'65108333', '65109120', '65109661', '65109784', '65045084', '65046086',
'65055904', '65069226', '65080633', '65086544', '65156717', '65087872',
'65091115', '65101858', '65126077', '65136482', '65144308', '65037281',
'65047437', '65047978', '65055263', '65055927', '65056468', '65144331',
'65144995', '65147866', '65099256', '65111699', '65113242', '65122519',
'65124062', '65136505', '65058798', '65059462', '65069249', '65077075',
'65079067', '65087895', '65046458', '65047955', '65055950', '65057447',
'65057865', '65067188', '65123206', '65135941', '65144354', '65157753',
'65080587', '65081251', '65089910', '65110640', '65111304', '65112386',
'65067852', '65068685', '65069349', '65076680', '65079090', '65079754',
'65013308', '65025874', '65034579', '65046063', '65055973', '65057424',
'65146369', '65155738', '65079777', '65080023', '65080564', '65101958', '65102499',
'65144377', '65057965', '65058506', '65067334', '65069203', '65078695',
'65079236', '65027271', '65036176', '65046504', '65048911', '65054745',
'65054994', '65149724', '65151301', '65154882', '65127159', '65132993',
'65133408', '65138317', '65138566', '65146143', '65068144', '65089369',
'65092535', '65097444', '65114175', '65125582', '65016551', '65032867',
'65035535', '65040693', '65041572', '65048519', '65148407', '65149286',
'65151739', '65159565', '65122273', '65125144', '65127597', '65128476', '65136302',
'65146784', '65055386', '65057009', '65059677', '65070159', '65075993',
'65110617', '65048957', '65050039', '65053371', '65066355', '65066850',
'65081174', '65131619', '65141852', '65144849', '65157504', '65159173',
'65164082', '65090912', '65114221', '65115303', '65119130', '65125536',
'65127205', '3000346', '65033700', '65058303', '65059926', '65069664',
'65074619', '65158191', '65163146', '65141211', '65146830', '65147912',
'65148453', '65151244', '65153113', '65094550', '65098964', '65101632', '65102173',
'65134928', '65135469', '65018701', '65031347', '65053325', '65053574',
'65072220', '65074722', '65080384', '65083627', '65107769', '65115595',
'65150219', '65150806', '65039949', '65060759', '65071579', '65072120',
'65081071', '65082399', '65142001', '65152821', '65160647', '65164182',
'65084563', '65087557', '65118197', '65128679', '65137384', '65140378',
'65018409', '65032721', '65051951', '65054115', '65073099', '65073348',
'65149678', '65162167', '65097985', '65107972', '65117218', '65138858',
'65139940', '65149183', '65073594', '65074676', '65083919', '65084414',
'65085250', '65086083', '65007935', '65018263', '65040985', '65051018',
'65053969', '65073199', '65074281', '65075363', '65084560', '65094347',
'65095429', '65095970', '17000211', '65049913', '65052830', '65069146',
'65070308', '65082545', '65141311', '65143398', '65145390', '65148971',
'65155635', '65161706', '65095114', '65103770', '65119422', '65132821',
'65135738', '65140481', '17000188', '65016428', '65032744', '65057550', '65066206',
'65073866', '65140458', '65144251', '65153903', '65082522', '65086813',
'65087477', '65103129', '65115154', '65139296', '65039714', '65071851',
'65076093', '65095326', '65099405', '65100069', '65150016', '65153926',
'65157009', '65158340', '65160332', '65134029', '65134693', '65139107',
'65142685', '65144016', '65147763', '65115131', '65116385', '65118048',
'65118377', '65125708', '65130783', '65018466', '65074078', '65090394',
'65097341', '65100046', '65101755', '65157650', '65163933', '65143375', '65145748',
'65152031', '65155400', '65155941', '65156986', '65109415', '65113116',
'65137092', '65137633', '65139084', '65141334', '65002219', '65047663',
'65049578', '65054327', '65067062', '65075552', '65108184', '65120919',
'65122668', '65133488', '65142144', '65155300', '65082210', '65088951',
'65098864', '65099356', '65099528', '65103435', '65016969', '65037158',
'65045814', '65060421', '65068911', '65069077', '65144872', '65158317',
'65158858', '65100879', '65101420', '65102084', '65112240', '65131347',
'65143710', '65071782', '65075575')</span></div></blockquote><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: Consolas;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit; font-size: medium;">--</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit; font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit; font-size: medium;">Now *that's* an IN clause!</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit; font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit; font-size: medium;">Please note that this is not a contest - DON'T write code that looks like this - ever!</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbJDF0KHMGvTfGArAxJfKx_ARuSjFw6x_zwHnc4HGW810BtfYWvdCyfuKiCq4N2doAXwkZiQhp-P8Zs6YCPzPk4oUe8jBmUF6a6-lmKgkY7rov9cFNaBB_3tM49Wdn0h2Yv54VWW41KK1D/s400/Capture.JPG" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="349" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbJDF0KHMGvTfGArAxJfKx_ARuSjFw6x_zwHnc4HGW810BtfYWvdCyfuKiCq4N2doAXwkZiQhp-P8Zs6YCPzPk4oUe8jBmUF6a6-lmKgkY7rov9cFNaBB_3tM49Wdn0h2Yv54VWW41KK1D/w349-h400/Capture.JPG" width="349" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">https://www.mememaker.net/api/bucket?path=static/img/memes/full/2017/Feb/14/22/please-just-stop-dont-do-that.jpg</span></td></tr></tbody></table><br /></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit; font-size: medium;">--</span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit; font-size: medium;"><br /></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-size: medium;"><span style="font-family: inherit;">Hope this helps (and good to be back </span>writing<span style="font-family: inherit;"> after some time!)</span></span></div><div style="margin-bottom: 0.0001pt; text-align: left;"><span style="font-family: inherit;"><br /></span></div>@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com1tag:blogger.com,1999:blog-4402664127960334547.post-43898756288420934332019-05-13T09:49:00.000-05:002019-05-13T09:49:59.907-05:00When Your Options Are LimitedIn my role I am still on-call several times each month, and many of the escalations that come are simply things that newer DBA's and Help Desk staff have yet to run into - things that many employees at their level *can* handle, once they have experienced it.<br />
<div>
<br /></div>
<div>
This is one of those stories.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjYioHEC402FrNgX-DACPIQbt-Lz5dpEfHzMechTUZiQllCnu2-5uv9ZCGdrG45Cedkhu6YDfn4jgcw1prCpQtH7MQptW1YUDoJ2C7wYtclBTc2L0R877MBKmjW1APTNF0ftH34huz3YMP/s1600/with-a-one-way-ticket-to-the-twilight-zone.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1169" data-original-width="941" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjYioHEC402FrNgX-DACPIQbt-Lz5dpEfHzMechTUZiQllCnu2-5uv9ZCGdrG45Cedkhu6YDfn4jgcw1prCpQtH7MQptW1YUDoJ2C7wYtclBTc2L0R877MBKmjW1APTNF0ftH34huz3YMP/s400/with-a-one-way-ticket-to-the-twilight-zone.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://memegenerator.net/img/instances/57630989/with-a-one-way-ticket-to-the-twilight-zone.jpg">https://memegenerator.net/img/instances/57630989/with-a-one-way-ticket-to-the-twilight-zone.jpg</a></td></tr>
</tbody></table>
<div>
<br /></div>
<div>
Our monitoring alerted the Help Desk because a client SQL Server was down (in this case, SQL services were stopped but Windows was not down). In most cases this is handled between our Help Desk and if needed, the client, but in this case it was paged out to me with this note from the help desk technician:</div>
<blockquote class="tr_bq">
"Upon checking on server Generic SQL Server, SQL Server Agent and SQL Server are failed - these services have automatic startup type but I can't start the services because the start option is disabled "</blockquote>
<div>
And they added a screen shot:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCJUOdlnZhyj6_imwacL4EHZh26AfH9rEGcuzHtJKaXmgmMmAFUrJTYp8Gm5dCyaM0VSMT01RhgxT51qL9Nea0srfMYPTurGntYHnSqLl_rnu1ryY9HcmgDJDgmi9R6oPnmz7mJeCa-Erd/s1600/CantStartService.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="518" data-original-width="796" height="416" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCJUOdlnZhyj6_imwacL4EHZh26AfH9rEGcuzHtJKaXmgmMmAFUrJTYp8Gm5dCyaM0VSMT01RhgxT51qL9Nea0srfMYPTurGntYHnSqLl_rnu1ryY9HcmgDJDgmi9R6oPnmz7mJeCa-Erd/s640/CantStartService.JPG" width="640" /></a></div>
<div>
<br /></div>
<div>
There are multiple reasons why you can't start a service, most of them around permissions (role memberships, explicit permissions, etc.) With what we do as a managed services provider (MSP) we usually have extensive administrative privileges on the servers on which we work, so true permissions aren't usually a problem.</div>
<div>
<br /></div>
<div>
But UAC is.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIgyicRuVzrjCpJ9db7asUXMKTWzTNKUqAAS1JuNvtyHUhyphenhyphenH_unqcKeaY-reEoss5I2HkfNzIirUcjCtIcD4O7U-2qQKNx3bgkBG_39j9YkwjQ5-Uk7pq88p8fjdCCXVDt51x0RAUvUQZl/s1600/curses-foiled-again-6891606.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="359" data-original-width="502" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIgyicRuVzrjCpJ9db7asUXMKTWzTNKUqAAS1JuNvtyHUhyphenhyphenH_unqcKeaY-reEoss5I2HkfNzIirUcjCtIcD4O7U-2qQKNx3bgkBG_39j9YkwjQ5-Uk7pq88p8fjdCCXVDt51x0RAUvUQZl/s400/curses-foiled-again-6891606.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://pics.ballmemes.com/curses-foiled-again-6891606.png">https://pics.ballmemes.com/curses-foiled-again-6891606.png</a></td></tr>
</tbody></table>
<div>
<br /></div>
<div>
<br /></div>
<div>
<a href="https://www.digitalcitizen.life/uac-why-you-should-never-turn-it-off">User Account Control (UAC) was introduced in Windows Vista</a> and has since been expanded across multiple Windows desktop and server platforms. At a basic level, it is an extra layer of security to make sure that changes to the operating system and it's components are only performed by administrators, and only when actually intended - think of it as an "Are You Sure You Want To Do That?"</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr21H9ubVX5UsUlHTW6L3UwmNn6l2PY_5IoE9WQGiCpBPp1AHi1q8yXVC7ZiOgDqy3d-PiKQZdQadvLIqAfZ7EhTYySaFI156y3IMMGKwUjwheMIiasacZtnek-cDh7oS5WQ-jBLmtjiK1/s1600/is-that-your-final-answer.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="395" data-original-width="512" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr21H9ubVX5UsUlHTW6L3UwmNn6l2PY_5IoE9WQGiCpBPp1AHi1q8yXVC7ZiOgDqy3d-PiKQZdQadvLIqAfZ7EhTYySaFI156y3IMMGKwUjwheMIiasacZtnek-cDh7oS5WQ-jBLmtjiK1/s400/is-that-your-final-answer.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="https://memegenerator.net/img/instances/55831706/is-that-your-final-answer.jpg">https://memegenerator.net/img/instances/55831706/is-that-your-final-answer.jpg</a></td></tr>
</tbody></table>
<div>
<br /></div>
<div>
UAC is an important security feature but can also be pretty annoying when you perform administrative tasks all of the time. When I was looking for a good descriptive link to reference in the paragraph above, five of the top ten items were some variant of "here's an easy way to turn off UAC" (and three of the other five were "why you should never turn off UAC!")</div>
<div>
<br /></div>
<div>
The functional gotcha is the screen shown above. The technician had not run the services console "as administrator" and as such did not have the token authority to start/stop Windows services.</div>
<div>
<br /></div>
<div>
This is an easy fix, however...instead of double-clicking on the services icon, simply right-click and select "Run As Administrator"</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhapsISLuM8BD2RJS8mnVhVSqiUUL9W1KPGbZVTyQ3HVODFb4CQhhMrbkYRI_FC0XwN8VdJabs5G8CIYiK4knYfiaZ1Ud_-fCal-G248V59Xh9qWeoiiRR9FKMqAgiLgy7rHlRVN0L6Ke-o/s1600/RunAsAdmin.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="688" data-original-width="725" height="606" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhapsISLuM8BD2RJS8mnVhVSqiUUL9W1KPGbZVTyQ3HVODFb4CQhhMrbkYRI_FC0XwN8VdJabs5G8CIYiK4knYfiaZ1Ud_-fCal-G248V59Xh9qWeoiiRR9FKMqAgiLgy7rHlRVN0L6Ke-o/s640/RunAsAdmin.JPG" width="640" /></a></div>
<div>
<br /></div>
<div>
If your login is a Windows administrator. this then runs the services console with the administrator token, and you can then start/stop/manage services (as well as break/delete/befoul services - be careful!) to your heart's content.</div>
<div>
<br /></div>
<div>
If your login is *not* a Windows Admin, you will receive a prompt which will allow you to enter administrative credentials which will be used solely to run the application in question - it isn't a full context switch to that login for your whole session.</div>
<div>
<br /></div>
<div>
Note - you will often also run into this on some systems with SQL Server Management Studio and other SQL Server tools if you are running them locally on a server - if you run the tool and cannot connect to your local SQL Server instance, it may be that you haven't run the tool "as administrator." Simply right-click the icon for the tool and, as above, select "Run as Administrator."</div>
<div>
<br /></div>
<div>
--</div>
<div>
<br /></div>
<div>
Hope this helps!</div>
<div>
<br /></div>
<div>
<br /></div>
@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-72287040160953638532019-04-04T14:57:00.000-05:002019-04-04T14:57:21.848-05:00Why I Believe In In-Person Training<br />
<div class="MsoNormal">
I was recently asked a question from a manager regarding someone on my team when I requested to send them to a training experience: </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><i><span style="font-family: inherit;"><span style="color: blue;">Are there CBT based
alternatives that may be more affordable that [the team member] can take in his down time?</span><span style="color: #1f497d;"><o:p></o:p></span></span></i></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;">This question is definitely a tricky one. The question is not really “is there an alternative?” – yes,
in the current age there is always an online alternative.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;">Are they comparable
alternatives? <b>No.</b><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;">I have done many hours of online
webinars, <a href="https://www.pluralsight.com/">Pluralsight</a> courses, and remote learning in my almost twenty years as
a DBA. <b>I would never say online learning can’t work for a specific
purpose when properly applied</b>. (Of course we often don’t properly
apply it because we try to horn it in between all of the other distractions of
work and life; this is one of the benefits to going away to training, even
though travel costs money – it removes the learner from the distractions of not
only work but also the rest of their lives when they don’t have to go home at
night.)<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;"><br /></span></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjacJH9XVXZnZckfb2etasysw0wUBs9Rn9Q_wkfc6gVgFbO8MPNrEQjoZ5x4kjv54L_7EWr_hZtQ2HgRgEEoaJyYm2nQyx2WuZOJhdUz8PqlqMhBKZ-RBGFxeiJiBhF0sNgE7inMRiiELG2/s1600/squirrel.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjacJH9XVXZnZckfb2etasysw0wUBs9Rn9Q_wkfc6gVgFbO8MPNrEQjoZ5x4kjv54L_7EWr_hZtQ2HgRgEEoaJyYm2nQyx2WuZOJhdUz8PqlqMhBKZ-RBGFxeiJiBhF0sNgE7inMRiiELG2/s320/squirrel.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://i0.wp.com/yourdogsfriend.org/wp-content/uploads/2013/11/squirrel.jpg</td></tr>
</tbody></table>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;"><br /></span></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;">I still think we need to pursue
online courses, such as Pluralsight subscriptions. I have written many times on this blog about Pluralsight, <a href="http://nebraskasql.blogspot.com/2016/05/catching-up-on-pass-virtual-chapters.html">PASS Virtual Chapters</a>, and other online experiences.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;">Having said that, the *<b>most
useful</b>* training experiences I have ever had come from being present
in-person at an event (a conference or a class), and interacting with the
instructors *<b>and attendees</b>* at the event, both during the event time and
before and after.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;">I cannot list the number of times
that I have gained extra knowledge or solved real-world problems by interacting
with classmates during downtime between lectures or exercises or at
breakfast/lunch/dinner around the event. I had an experience at my last
employer before Ntirety (actually at a SQLskills class) where something went
wrong at a client while we were at class, and the class including the
instructors worked with me to brainstorm and ultimately resolve this issue.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuf3hjWdEAqHhI4ZDWgJRjmfxH6Syx_-V3pHMz2w5Us69YTMo6mPmg8Mq13pVaezQQUZdH6AFsPLM62fZmCP9hGcG-dEqJbo_qwg2tav2Cj3ZE4OOJa0Kcq1klsxodDxpa1CRxoVB8p2vG/s1600/BrainstormingVader+%25282%2529.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="584" data-original-width="450" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuf3hjWdEAqHhI4ZDWgJRjmfxH6Syx_-V3pHMz2w5Us69YTMo6mPmg8Mq13pVaezQQUZdH6AFsPLM62fZmCP9hGcG-dEqJbo_qwg2tav2Cj3ZE4OOJa0Kcq1klsxodDxpa1CRxoVB8p2vG/s640/BrainstormingVader+%25282%2529.jpg" width="491" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://pics.me.me/death-brainstorm-ing-some-of-the-best-ideas-were-found-16511986.png</td></tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;">Standing in a classroom or
conference center with other professionals gives opportunities for interactive
learning that just don’t – <b>can’t</b> – exist with a CBT. The CBT can spit
knowledge at you, but it can’t answer your responsive questions, and it
definitely can’t take meaningful detours into related topics.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;">…and that’s what real high-end
training and learning is all about, Charlie Brown.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;"><br /></span></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_pxNZbcpidvf2mGMjOT7Ci0ajsrbnLPmVpf2AAf968LjpnypB_U6luFf8jE9_GrOP_j9BOAgJqw12f3KzFPbRHIXR_Sk2CgXcDnh1FFIae1sMmWKgcGWwQIiHfJot30gTustEFP_qOx4P/s1600/Thats-What-Christmas-Is-All-About-1600x600.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="522" data-original-width="818" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_pxNZbcpidvf2mGMjOT7Ci0ajsrbnLPmVpf2AAf968LjpnypB_U6luFf8jE9_GrOP_j9BOAgJqw12f3KzFPbRHIXR_Sk2CgXcDnh1FFIae1sMmWKgcGWwQIiHfJot30gTustEFP_qOx4P/s400/Thats-What-Christmas-Is-All-About-1600x600.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://www.faithstrongtoday.com/wp-content/uploads/2016/12/Thats-What-Christmas-Is-All-About-1600x600.jpg</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
<span style="font-family: inherit;">On the subject of cost, there are
less expensive in-person Microsoft Official Curriculum (MOC) classes about very
broad topics offered by instructors at dedicated training facilities (such as
New Horizons) who are usually certified *</span><b style="font-family: inherit;">instructors</b><span style="font-family: inherit;">* (material
deliverers) but not certified *</span><b style="font-family: inherit;">database professionals</b><span style="font-family: inherit;">* and this greatly
limits the value of the interaction as well as the quality of the material
itself. Training at higher-end classes and conferences are created and
delivered by persons who work with the product daily as part of their lives,
not people who just talk about the product M-F 8-5.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;">As always, this is my $.02.<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;"><br /></span></span></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;">Hope this helps!</span></span></div>
<div class="MsoNormal">
<span style="color: black;"><span style="font-family: inherit;"><br /></span></span></div>
<br />@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-3869674170668645072019-03-22T15:12:00.000-05:002019-03-22T15:12:01.186-05:00Toolbox - Exporting SSMS Results to ExcelI was working on another post when I found myself needing to dump out query results to a grid format to include in the post. This is a very normal situation - even in my day-to-day job I send emails with grids of results (we all do right?)<br />
<br />
The easiest thing to do is to copy-paste from the SSMS grid results, and this is what I do 90%+ of the time just as I'm sure most of you do:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Jglhxj4GgP5OsG0DpGDf_G1NZ_hTmxUv8B1IxeKKVlU1medGDeN1yls756t5hpLE8mtJ9XiJUn2_WNZGW33CdYkARJ5xNEAC0FCWgBazGV3D9RVehMYb7lZ4Ng7NkAkVTTCqeTU5XdwR/s1600/Copy-Paste.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="465" data-original-width="769" height="385" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Jglhxj4GgP5OsG0DpGDf_G1NZ_hTmxUv8B1IxeKKVlU1medGDeN1yls756t5hpLE8mtJ9XiJUn2_WNZGW33CdYkARJ5xNEAC0FCWgBazGV3D9RVehMYb7lZ4Ng7NkAkVTTCqeTU5XdwR/s640/Copy-Paste.jpg" width="640" /></a></div>
<br />
Execute with Results to Grid (usually the default), and then right-click in the upper-left of the the resultset and click "Copy With Headers" and then paste the data into Excel:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCTW0q-5jfCLgUzX1B628HAtI0wg-iHOFtj4kpRMKLhKIRvB5VfXLokdNOt5Ctc_Wtkb_05G8eosjPrxvWxhpozwG1MS1FqmV0CTtBAwnoHzXTBVEloezvdTtv_PdHPzUcyGc8QcagVlqx/s1600/GridResults.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="87" data-original-width="851" height="64" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCTW0q-5jfCLgUzX1B628HAtI0wg-iHOFtj4kpRMKLhKIRvB5VfXLokdNOt5Ctc_Wtkb_05G8eosjPrxvWxhpozwG1MS1FqmV0CTtBAwnoHzXTBVEloezvdTtv_PdHPzUcyGc8QcagVlqx/s640/GridResults.JPG" width="640" /></a></div>
<br />
Easy right?<br />
<br />
--<br />
<br />
The gotcha is when you are returning something more interesting, something with punctuation like a query. When you copy-paste that your Excel turns out like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdONlyMyVLiapap3yVKe068WZWsDJ0hZpm1wWSFY5oLB_XE2f118p8YR2nAL8DXGVId5oJrtqBGgcCf8hwG9F1GR2cBLeNMoQuWDzE16rxSPApvCINxeb2N1ZWNQiIFJVFATVhPLQLmjUd/s1600/GridResultsUgly.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="280" data-original-width="917" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdONlyMyVLiapap3yVKe068WZWsDJ0hZpm1wWSFY5oLB_XE2f118p8YR2nAL8DXGVId5oJrtqBGgcCf8hwG9F1GR2cBLeNMoQuWDzE16rxSPApvCINxeb2N1ZWNQiIFJVFATVhPLQLmjUd/s640/GridResultsUgly.JPG" width="640" /></a></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEOIN2vbRy3wcjyReZ4DpclJ5ObgCl3ihHMS_tWV9A0gNV3Xg7PhDWjk-LLU8L20lUCpTJEPBBHAn3_H8SuN_A9Nb4Kwu3IhU2HvE25JpmCxdT_A6WDJ5Mr_4JfSdf6Ref1lMVv0FcJ0t-/s1600/EewwGross.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="258" data-original-width="474" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEOIN2vbRy3wcjyReZ4DpclJ5ObgCl3ihHMS_tWV9A0gNV3Xg7PhDWjk-LLU8L20lUCpTJEPBBHAn3_H8SuN_A9Nb4Kwu3IhU2HvE25JpmCxdT_A6WDJ5Mr_4JfSdf6Ref1lMVv0FcJ0t-/s400/EewwGross.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://imagessure.com/thumbs/jziYuTJbBMxlZLZRfveokk5JIwpvVzi7NMi2yjIJGioHL02jChLnoqGXf-dlGY9gDVCQVMvX-DPD-BV9R4Mnjg.jpg</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
The ugliness is usually caused by carriage return/line feed (CR/LF) in your query - we all like nice pretty TSQL, so we use lots of newlines along the way. For a normally delimited resultset, this results in lots of new rows as seen above.<br />
<div>
<br /></div>
<div>
The easiest way to deal with this is using the REPLACE function to replace the offending characters. Carriage Return and Line Feed are two different ASCII characters, CHAR(13) and CHAR(10) respectively.</div>
<div>
<br /></div>
<div>
To remove them with REPLACE, your code turns out like this:</div>
<div>
<br /></div>
<div>
--</div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT REPLACE(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(QueryText</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(13), ' ' ) /* Change CR to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(10), ' ') /* Change LF to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>as QueryText</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">FROM <whatever DMV></span></blockquote>
<div>
--</div>
<div>
<br /></div>
<div>
The code first replaces any carriage returns with a space, and then uses replace a second time to replace any line feeds with a space. </div>
<div>
<br /></div>
<div>
Using the REPLACEs without any other changes results into an Excel sheet that look like this:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisc8RLgoR_6F4kipZDw6wTKqnOEopWPkB0RktqRxkMLiGDOr9_loyC0sMAaSwHbxXGby__Pdhr7znJNFRqdBtAhROmNZpfC79PWD-rTVwuLo2nYEAUElJAqDTpm3hmSjC-QHVoDlsEMBDQ/s1600/QueryTextSingleLine.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="83" data-original-width="1347" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisc8RLgoR_6F4kipZDw6wTKqnOEopWPkB0RktqRxkMLiGDOr9_loyC0sMAaSwHbxXGby__Pdhr7znJNFRqdBtAhROmNZpfC79PWD-rTVwuLo2nYEAUElJAqDTpm3hmSjC-QHVoDlsEMBDQ/s1600/QueryTextSingleLine.JPG" /></a></div>
<div>
<br /></div>
<div>
Note the extra columns. When copy-pasting into Excel the presence of tabs causes the column breaks seen here.</div>
<div>
<br /></div>
<div>
Luckily, tabs are also replaceable as ASCII characters - CHAR(9):</div>
<div>
<br />
--</div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT REPLACE(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(QueryText</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(13), ' ' ) /* Change CR to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(10), ' ') /* Change LF to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(9), '') /* Change TAB to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>as QueryText</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">FROM <whatever DMV></span></blockquote>
<br />
Which now looks like this:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT @DownloadCount=COUNT(*) FROM ( SELECT DISTINCT ma.Material_Attachment_ID FROM Topic_Main tm WITH (NOLOCK) INNER JOIN Material_Topic mt WITH (NOLOCK) ON tm.Topic_ID=mt.Topic_ID INNER JOIN Material_Attachment ma WITH (NOLOCK) ON mt.Material_id=ma.Material_id WHERE tm.Invisible_Flag=0 AND ma.Attachment_Doc_Type_ID=@DocID AND tm.Topic_ID IN (SELECT CountReturned FROM #CountResults)) AS que INNER JOIN Download_All_Distinct dad WITH (NOLOCK) ON que.Material_Attachment_ID=dad.Material_Attachment_ID WHERE dad.Download_Date >=DATEADD(year, -1, GETDATE()) -->Query to calculate Experts based on Topic ID (PA)</span></blockquote>
<br />
Getting closer. Note that for some code, this may be the extent of what you need - you may not have all of that ugly whitespace.<br />
<br />
To fix this last piece, let's try one more REPLACE to remove double spaces for single spaces:<br />
<br />
--<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT REPLACE(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(QueryText</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(13), ' ' ) /* Change CR to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(10), ' ') /* Change LF to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(9), '') /* Change TAB to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, ' ', ' ') /* Change Two Spaces to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>as QueryText</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">FROM <whatever DMV></span></blockquote>
--<br />
<br />
Which now looks like this:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT @DownloadCount=COUNT(*) FROM ( SELECT DISTINCT ma.Material_Attachment_ID FROM Topic_Main tm WITH (NOLOCK) INNER JOIN Material_Topic mt WITH (NOLOCK) ON tm.Topic_ID=mt.Topic_ID INNER JOIN Material_Attachment ma WITH (NOLOCK) ON mt.Material_id=ma.Material_id WHERE tm.Invisible_Flag=0 AND ma.Attachment_Doc_Type_ID=@DocID AND tm.Topic_ID IN (SELECT CountReturned FROM #CountResults)) AS que INNER JOIN Download_All_Distinct dad WITH (NOLOCK) ON que.Material_Attachment_ID=dad.Material_Attachment_ID WHERE dad.Download_Date >=DATEADD(year, -1, GETDATE()) -->Query to calculate Experts based on Topic ID (PA)</span></blockquote>
<div>
--<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUiCVzyg_6qtaWcuVF_eq7dsCGOJqkTdL8cszyGzUNcOvhOpA6nz3RdFBFMJ-SKXd5Mp7ihfIoUYHQst5HBHArQqCq6b6HdCAvhUNvynih8fKBHMkZgQX-IE7FJNII1xsSCuy3fYWUoutz/s1600/UmWat.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="304" data-original-width="326" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUiCVzyg_6qtaWcuVF_eq7dsCGOJqkTdL8cszyGzUNcOvhOpA6nz3RdFBFMJ-SKXd5Mp7ihfIoUYHQst5HBHArQqCq6b6HdCAvhUNvynih8fKBHMkZgQX-IE7FJNII1xsSCuy3fYWUoutz/s400/UmWat.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">http://www.quickmeme.com/img/98/98dd84943a5bcb086e5ec689072c0e6caa04bcc9314a37ae721268b5b798d533.jpg</td></tr>
</tbody></table>
<br />
Better, but why didn't it solve our problem?</div>
<div>
<br /></div>
<div>
Replacing two spaces with one space does *not* replace three spaces with one space, or four spaces with one space, etc. Using this REPLACE simply turns every two spaces into one (or four spaces into two, or six spaces into three) - it *doesn't* clean up all the white space.</div>
<div>
<br /></div>
<div>
There are two ways to handle this - the first is a brute force method of using lots of REPLACE statements to repetitively replace two spaces with one as many times as you think is important:</div>
<div>
<br /></div>
<div>
--</div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace; white-space: pre;">SELECT REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(<MyStringWithLotsOfSpaces>
, ' ', ' ')
, ' ', ' ')
, ' ', ' ')
, ' ', ' ')
, ' ', ' ')
, ' ', ' ')
, ' ', ' ')
, ' ', ' ')
, ' ', ' ')
, ' ', ' ')
, ' ', ' ') as MyStringWithHopefullyNoMoreSpaces </span></blockquote>
</div>
<div>
--</div>
<div>
<br /></div>
<div>
In most cases with enough REPLACE statements this will work, but it is ugly.</div>
<div>
<br /></div>
<div>
The second, and more elegant, method is described by Jeff Moden (<a href="http://www.sqlservercentral.com/Authors/Articles/Jeff_Moden/80567/">blog</a>) in an <b><a href="http://www.sqlservercentral.com/Authors/Articles/Jeff_Moden/80567/">article on SQLServerCentral</a> </b>and leverages the ability to REPLACE multiple characters at once.</div>
<div>
<br /></div>
<div>
For this method, instead of replacing a double space with a single space, we will replace it with what Jeff calls an "unlikely character" such as the Backspace (ASCII CHAR(8)):</div>
<div>
<br /></div>
<div>
--</div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT REPLACE(<span style="white-space: pre;"> </span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(<MyStringWithLotsOfSpaces></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, ' ', ' '+CHAR(8)) /* Change Two Spaces to A Space and a Backspace */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>as MyStringWithLotsOfSpacesAndNowBackSpaces</span></blockquote>
<div>
--</div>
</div>
<div>
<br /></div>
<div>
This makes a string that had multiple spaces now have a CHAR(8) as every other character.</div>
<div>
<br /></div>
<div>
Next, now that your former rows of strings ooooooooo instead looks like oxoxoxoxo, we will replace the flipped pattern, CHAR(8)+' ' with just an empty string - this removes all of the intermediate patterns:</div>
<div>
<br /></div>
<div>
--</div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT REPLACE(<span style="white-space: pre;"> </span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(<MyStringWithLotsOfSpaces></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, ' ', ' '+CHAR(8)) /* Change Two Spaces to A Space and a Backspace */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(8)+' ','') /* Change a Backspace and a Space to Nothing */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>as MyStringWithAtMoseOneSpaceAndAtMostOneBackSpace</span><br />
<div>
<br /></div>
</blockquote>
</div>
<div>
--</div>
<div>
<br /></div>
<div>
This removes all of the "xo" pairs so now the oxoxoxoxo becomes just o (a space). If there were originally an even number of spaces you would have had oxoxoxox and after the REPLACE you would end up with just ox (space+CHAR(8)) - this means you need one more REPLACE to strip off any remaining CHAR(8):</div>
<div>
<br /></div>
<div>
--</div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">SELECT REPLACE(<span style="white-space: pre;"> </span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(<MyStringWithLotsOfSpaces></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, ' ', ' '+CHAR(8)) /* Change Two Spaces to A Space and a Backspace */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(8)+' ','') /* Change a Backspace and a Space to Nothing */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(8), '') /* Change Any Remaining Backspaces to Nothing */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>as MyStringWithAtMostOneSpaceBetweenEachWord</span></blockquote>
</div>
<div>
--</div>
<div>
<br /></div>
<div>
As Jeff shows in his article, the result play out like this:</div>
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 250px;">
<colgroup><col style="mso-width-alt: 7168; mso-width-source: userset; width: 147pt;" width="196"></col>
<col style="mso-width-alt: 2889; mso-width-source: userset; width: 59pt;" width="79"></col>
</colgroup><tbody>
<tr height="40" style="height: 30.0pt;">
<td class="xl64" height="40" style="height: 30.0pt; text-align: center; width: 147pt;" width="196">Original
String<br />
(Odd Number)</td>
<td class="xl63" style="border-left: none; text-align: center; width: 59pt;" width="79">ooooooooo</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt; text-align: center;">Step 1</td>
<td class="xl63" style="border-left: none; border-top: none; text-align: center;">oxoxoxoxo</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt; text-align: center;">Step 2</td>
<td class="xl63" style="border-left: none; border-top: none; text-align: center;">o<strike>xoxoxoxo</strike></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt; text-align: center;">Step 3</td>
<td class="xl63" style="border-left: none; border-top: none; text-align: center;">o</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt; text-align: center;">Final </td>
<td class="xl63" style="border-left: none; border-top: none; text-align: center;">o</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" style="height: 15.0pt;"></td>
<td></td>
</tr>
<tr height="40" style="height: 30.0pt;">
<td class="xl64" height="40" style="height: 30.0pt; text-align: center; width: 147pt;" width="196">Original
String<br />
(Even Number)</td>
<td class="xl63" style="border-left: none; text-align: center;">oooooooo</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt; text-align: center;">Step 1</td>
<td class="xl63" style="border-left: none; border-top: none; text-align: center;">oxoxoxox</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt; text-align: center;">Step 2</td>
<td class="xl63" style="border-left: none; border-top: none; text-align: center;">o<strike>xoxoxo</strike>x</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt; text-align: center;">Step 3</td>
<td class="xl63" style="border-left: none; border-top: none; text-align: center;">ox</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt; text-align: center;">Final </td>
<td class="xl63" style="border-left: none; border-top: none; text-align: center;">o</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
--<br />
<br />
Now that we know how to strip out those offending whitespaces, let's go back to our original query:<br />
<br />
--<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT REPLACE(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>REPLACE(QueryText</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(13), ' ' ) /* Change CR to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(10), ' ') /* Change LF to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>, CHAR(9), '') /* Change TAB to Space */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>as QueryText</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">FROM <whatever DMV></span></blockquote>
--<br />
<br />
We now need to wrap this in our space-remover REPLACES like this:<br />
<br />
--<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT REPLACE(<br /><span style="white-space: pre;"> </span>REPLACE(<br /><span style="white-space: pre;"> </span>REPLACE(<br /><span style="white-space: pre;"> </span>REPLACE(<br /><span style="white-space: pre;"> </span>REPLACE(<br /><span style="white-space: pre;"> </span>REPLACE(QueryText<br /><span style="white-space: pre;"> </span>, CHAR(13), ' ' ) /* Change CR to Space */<br /><span style="white-space: pre;"> </span>, CHAR(10), ' ') /* Change LF to Space */<br /><span style="white-space: pre;"> </span>, CHAR(9), '') /* Change TAB to Space */<br /><span style="white-space: pre;"> </span>, ' ', ' '+CHAR(8)) /* Change Two Spaces to A Space and a Backspace */<br /><span style="white-space: pre;"> </span>, CHAR(8)+' ','') /* Change a Backspace and a Space to Nothing */<br /><span style="white-space: pre;"> </span>, CHAR(8), '') /* Change Any Remaining Backspaces to Nothing */<br /><span style="white-space: pre;"> </span>as QueryText<br />FROM <whatever DMV></span></blockquote>
</div>
<div>
--<br />
<br />
Is this ugly? heck yeah!<br />
<br />
Does it work? <b style="background-color: yellow;"><span style="color: red;">HECK YEAH!</span></b></div>
<div>
<br /></div>
--<br />
<br />
Original QueryText:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT @DownloadCount=COUNT(*) <br /> FROM ( <br /> SELECT DISTINCT ma.Material_Attachment_ID <br /> FROM Topic_Main tm WITH (NOLOCK) <br /> INNER JOIN Material_Topic mt WITH (NOLOCK) ON tm.Topic_ID=mt.Topic_ID <br /> INNER JOIN Material_Attachment ma WITH (NOLOCK) ON mt.Material_id=ma.Material_id <br /> WHERE tm.Invisible_Flag=0 AND ma.Attachment_Doc_Type_ID=@DocID AND tm.Topic_ID IN (SELECT CountReturned FROM #CountResults)) AS que <br /> INNER JOIN Download_All_Distinct dad WITH (NOLOCK) ON que.Material_Attachment_ID=dad.Material_Attachment_ID<br /><span style="white-space: pre;"> </span>WHERE dad.Download_Date >=DATEADD(year, -1, GETDATE()) <br /> <br /> -->Query to calculate Experts based on Topic ID (PA) </span> </blockquote>
<br />
Repaired QueryText:<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">SELECT @DownloadCount=COUNT(*) FROM ( SELECT DISTINCT ma.Material_Attachment_ID FROM Topic_Main tm WITH (NOLOCK) INNER JOIN Material_Topic mt WITH (NOLOCK) ON tm.Topic_ID=mt.Topic_ID INNER JOIN Material_Attachment ma WITH (NOLOCK) ON mt.Material_id=ma.Material_id WHERE tm.Invisible_Flag=0 AND ma.Attachment_Doc_Type_ID=@DocID AND tm.Topic_ID IN (SELECT CountReturned FROM #CountResults)) AS que INNER JOIN Download_All_Distinct dad WITH (NOLOCK) ON que.Material_Attachment_ID= dad.Material_Attachment_ID WHERE dad.Download_Date >=DATEADD(year, -1, GETDATE()) -->Query to calculate Experts based on Topic ID (PA) </span></blockquote>
--<br />
<br />
This "repaired" text is easily paste-able into Excel into a single column, giving us an easily manageable spreadsheet.<br />
<br />
...and all it takes is six REPLACEs!<br />
<br />
Obviously you can *NOT* simply copy the "repaired" text into a query window and hit execute - if nothing else this method breaks inline comments which makes the code unexecutable. It is useful now for manual analysis and comparison - for example looking at expensive queries, or pattern matching for certain object names in the code - but not for execution.<br />
<br />
--<br />
<br />
Do I advise you to wrap all of your text fields in six REPLACES?<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLCeNywf95BXTtupJ8_fZwOdemLLL7_UgBdcG2_yUSRCEtzpJ1ppWCKQp66apb_Z2enYIN-cQx8NmGt8AEOXaNgGYq9XPXk7uqNV_4UImhp81s2IL6M2uF4LK8sFQGjGPnOP3UVsHb-vv3/s1600/WhatOnEarth.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="349" data-original-width="620" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLCeNywf95BXTtupJ8_fZwOdemLLL7_UgBdcG2_yUSRCEtzpJ1ppWCKQp66apb_Z2enYIN-cQx8NmGt8AEOXaNgGYq9XPXk7uqNV_4UImhp81s2IL6M2uF4LK8sFQGjGPnOP3UVsHb-vv3/s640/WhatOnEarth.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://i.imgflip.com/t362n.jpg</td></tr>
</tbody></table>
This is definitely an "edge" case - as mentioned above 90%+ of the time you will simply right-click, copy with headers, paste into Excel, and go on your merry way.<br />
<br />
...but save this set of REPLACEs into your script repository - because sooner or later...you will need it.<br />
<br />
I guarantee it.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_bE8qcpOppoblAAmPSHrhdNPx8_BSiScefOcPE0rVVxAmBLtW7ulq3kvhmX_vJTUjDqZ8BOLViR7arGqjit6jtTWmZcEE9AuGnadg0z_xWxncoN2DJntL8_bAv9f9e77L_7DwFZsGLlb/s1600/thats-the-fact-jack.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="464" data-original-width="710" height="418" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju_bE8qcpOppoblAAmPSHrhdNPx8_BSiScefOcPE0rVVxAmBLtW7ulq3kvhmX_vJTUjDqZ8BOLViR7arGqjit6jtTWmZcEE9AuGnadg0z_xWxncoN2DJntL8_bAv9f9e77L_7DwFZsGLlb/s640/thats-the-fact-jack.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/75015382/thats-the-fact-jack.jpg</td></tr>
</tbody></table>
<br />
Hope this helps!<br />
<br />@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-77696386599229401072019-02-12T13:23:00.000-06:002019-02-12T13:28:09.899-06:00T-SQL Tuesday #111 - Why Do You Do What You Do?<div class="separator" style="clear: both; text-align: center;">
<a href="https://andyleonard.blog/2019/02/t-sql-tuesday-111-what-is-your-why/"><img border="0" data-original-height="150" data-original-width="150" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyxKov2SMJaNr8Y7SGy8Y5a_cMhkhdjbFjM0xabCPMDpt5mLFP-RyusGT-7ABw4Z083UnfkQN912saUhUUfVymFdtLfUaw5KZeKVEh1TcMyPsmsgpnwjrACg4W2eI8eDx8tQNf_YJDVd95/s200/T-SQLTuesday.jpg" width="200" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="font-family: inherit;">This month's T-SQL Tuesday is hosted by Andy Leonard (<a href="https://andyleonard.blog/andy/">blog</a>/<a href="https://twitter.com/andyleonard?lang=en">@AndyLeonard</a>) and his topic was this:</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<blockquote class="tr_bq">
<span style="background-color: white; color: #333333;"><span style="font-family: "georgia" , "times new roman" , serif;"><b><i>That’s the question this month: <a href="https://andyleonard.blog/2019/02/t-sql-tuesday-111-what-is-your-why/">Why do you do what you do?</a></i></b></span></span></blockquote>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">For me this was the easiest T-SQL Tuesday I have ever seen. Some of you may consider this a cop-out, but here is my answer:</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBJ9vo2aNMOyhka2jMN7bHUj-oHJyg4cb0ZN9vLrX_3h45Gkgu2Y8KC1DOIzIAK1gHI_OGW8-6RhArzqq3SDJ3j6gPCm5cYE8XPQmsk9ikEhyGi2YOdxe-D4A6s8M0hjzzlOg17X7zr3dX/s1600/DSC_0416.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1067" data-original-width="1600" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBJ9vo2aNMOyhka2jMN7bHUj-oHJyg4cb0ZN9vLrX_3h45Gkgu2Y8KC1DOIzIAK1gHI_OGW8-6RhArzqq3SDJ3j6gPCm5cYE8XPQmsk9ikEhyGi2YOdxe-D4A6s8M0hjzzlOg17X7zr3dX/s640/DSC_0416.JPG" width="640" /></a></div>
<br />
<br />
<br />@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-11810267796540434212019-01-01T15:08:00.001-06:002019-01-01T15:10:09.135-06:00Why Can't I Shrink TempDB?I know, I know....#OMGShrinkingIsBadDontEverDoThatOrElseEtcEtcEtc<br />
<br />
We all know that there are simply times you have to shrink some files. There are risks - blocking, significant I/O, fragmentation, and more - all of which mean you should not shrink a file willy-nilly without considering the impacts...but sometimes you are having a production issue and don't have any choice. Similarly, sometimes you are in Dev/Test and it is simply more practical to shrink a file than to add drive space or re-architect the full solution.<br />
<br />
In many cases it comes down to that unfortunate reality that there's a way the book/class does it, and another way we have to do it "in the field."<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDqK8kuYsJuFsO76VcRogiWRYtQEOM0S2Og-Q7nK6gPwAnD9BWdyF6xG5ha7cm7iH6vDJ0yEcti6sbbbGPZFwuBaeZiFflHEj6J0fpz5tRDphvug8LZKJ0LqlIMk1rJs0jViAD7WtriNIR/s1600/plans-kids.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="551" data-original-width="640" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDqK8kuYsJuFsO76VcRogiWRYtQEOM0S2Og-Q7nK6gPwAnD9BWdyF6xG5ha7cm7iH6vDJ0yEcti6sbbbGPZFwuBaeZiFflHEj6J0fpz5tRDphvug8LZKJ0LqlIMk1rJs0jViAD7WtriNIR/s400/plans-kids.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">http://twitchlol.com/wp-content/uploads/2013/09/Battle-Plan-for-kids.jpg</td></tr>
</tbody></table>
Of course you also have to remember Law #9842 of being a DBA - <b>all database systems are Production to someone</b>. It may be a developer or a QA team rather than an end user, but it is still PROD to them!)<br />
<br />
--<br />
<br />
In this story, TempDB DATA files were using almost all of the space on the drive, meaning TempLog couldn't grow, but the DATA files were mostly empty by the time it escalated to me.<br />
<br />
Even though the files were mostly empty, my attempts to shrink them were throwing an error and the files were not shrinking:<br />
<br />
--<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><b>Msg 5054, Level 16, State 1, Line 1</b></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><b>Could not cleanup worktable IAM chains to allow shrink or remove file operation. Please try again when tempdb is idle.</b></span><br />
<br />
--<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgriJ_kVUL8ARH2yXLB09q-53vh-yqAgQwItClSKNLwRN4C57zJ9t3pHjHD8mLxfPNHtej1LFIIpRmgiHDAvoB5qCUlhjnZ8JH4ngpZREox9mbZCyeGtjwREu5tYTnq04Klnd_85KCSdHx9/s1600/skeletor__by_ieatatwaffenhouse_d95oxt2-fullview.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="272" data-original-width="400" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgriJ_kVUL8ARH2yXLB09q-53vh-yqAgQwItClSKNLwRN4C57zJ9t3pHjHD8mLxfPNHtej1LFIIpRmgiHDAvoB5qCUlhjnZ8JH4ngpZREox9mbZCyeGtjwREu5tYTnq04Klnd_85KCSdHx9/s400/skeletor__by_ieatatwaffenhouse_d95oxt2-fullview.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">www.deviantart.com/ieatatwaffenhouse/art/Skeletor-553757222</td></tr>
</tbody></table>
Googling the message led me to one of my top five authoritative sources, Paul Randal of <a href="http://sqlskills.com/">SQLskills.com</a> (<a href="https://twitter.com/paulrandal?lang=en">@PaulRandal</a>/<a href="https://www.sqlskills.com/blogs/paul/">blog</a>). The relevant blog post is <a href="https://www.sqlskills.com/blogs/paul/shrinking-tempdb-longer-prohibited/">https://www.sqlskills.com/blogs/paul/shrinking-tempdb-longer-prohibited/</a><br />
<br />
While my error message isn't featured in the body of the blog post, it *is* in the final comment and reply in the article. By that information, it appears that this error reflects that certain system structures are on pages that can't be moved without system restart, which means TempDB can't be manually shrunk on this instance w/o SQL service restart.<br />
<br />
(Paul does describe in his article the old-school fear that "shrinking TempDB leads to corruption" and how his extensive experience leads him and Microsoft to now believe that is not true <b>*on modern versions of SQL Server (2005+)*</b>)<br />
<br />
--<br />
<br />
Hope this helps!<br />
<br />@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-89210029722233223212018-12-13T10:44:00.000-06:002018-12-13T10:44:59.708-06:00Things I Learned at Summit v20 - Visual Studio Code<span style="text-align: justify;">Part of a series of posts on cool stuff I learned at PASS Summit v20 (2018) - in this post we'll look at a code editing tool that I hadn't seen before - Visual Studio Code.</span><br />
<span style="text-align: justify;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: justify;">
--</div>
<div style="text-align: justify;">
<br /></div>
<span style="text-align: justify;">When I attend a session at a technical event - Summit/SQL Saturday/etc. - the question inevitably comes:</span><br />
<span style="text-align: justify;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ferXz5Lc9xr6_3ZJBeL5v50rv-Xma1l27Nb2v8ebHNju4-TMYJk0UcY5oF30u7ZcTk7dd7po2o9fK8ZqIMasIUTbbJPON3WWibAQu6R-RNdYGJ4xYie8RibkAbOvd-Pcirkir5gd5x7Q/s1600/GrantQuestion.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ferXz5Lc9xr6_3ZJBeL5v50rv-Xma1l27Nb2v8ebHNju4-TMYJk0UcY5oF30u7ZcTk7dd7po2o9fK8ZqIMasIUTbbJPON3WWibAQu6R-RNdYGJ4xYie8RibkAbOvd-Pcirkir5gd5x7Q/s640/GrantQuestion.jpg" width="480" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ScaryDBA and current PASS President Grant Fritchey at SQL Saturday Iowa City 2018</td></tr>
</tbody></table>
<span style="text-align: justify;">I always answer that I'm a DBA, but really we're all Developers as well - it's just what language we use.</span><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">I have been developing in T-SQL for almost 20 years, and for much of that I have been using the ultimate editing tool...Microsoft Notepad.</span><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">Yup...Notepad.</span><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">In the early days I developed in Query Analyzer (Yes, I'm old) and then Management Studio, but over time most of the work I have done is now at client sites on client servers, so I don't run Management Studio on my laptop very often (pretty much just when I write blogs and work on presentations actually).</span><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">I write my code in Notepad and then copy-paste into the client window and execute.</span><span style="text-align: justify;">..and it has worked for me for some time.</span><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">Sure there's no Intellisense, but I lived with it. I have had times in the past (although I haven't re-tested in some time) where Management Studio became a resource hog - especially with multiple sessions open - and made my laptop unhappy, so running little tiny Notepad was the trade-off and it worked for me.</span><br />
<span style="text-align: justify;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWFfjz8MV5yz7c5nWF3bjowCmtZ704V6UYdcF4LCxaZ14-9pGGpTAGjmuxb43ko2L-qDwi9K2dVy1mWbqTCl05__zy66oRqNUUIVNVvB4vUQKJrLciFglByqh6AMT_djqmkdkJ6zq1QJ1y/s1600/ItWorkedForMe.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="375" data-original-width="500" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWFfjz8MV5yz7c5nWF3bjowCmtZ704V6UYdcF4LCxaZ14-9pGGpTAGjmuxb43ko2L-qDwi9K2dVy1mWbqTCl05__zy66oRqNUUIVNVvB4vUQKJrLciFglByqh6AMT_djqmkdkJ6zq1QJ1y/s400/ItWorkedForMe.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://i.chzbgr.com/full/1300811520/h8F002C7D/</td></tr>
</tbody></table>
<span style="text-align: justify;">As a "TSQL Developer" I never had the need for full-on MS Visual Studio to justify the cost to myself or my employers.</span><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">--</span><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">In several sessions at Summit v20 I saw the presenters open a different tool; you could tell from the appearance that it wasn't commercial MS Visual Studio, but it wasn't Management Studio either.</span><br />
<span style="text-align: justify;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUVsce8RUyOh14lalQQjTAzMWsb1t9o8WqkssJ-yiSED060KhjKMo5kSagpnW0HTWAB5KuwgnrZ0uUIvMZa55IGpYN5XapeA7KZmMCvNMmwDSfXa48uGQmDWMH4P8FlshAEnZE0a-m-PKT/s1600/Screenshot.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="817" data-original-width="1491" height="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUVsce8RUyOh14lalQQjTAzMWsb1t9o8WqkssJ-yiSED060KhjKMo5kSagpnW0HTWAB5KuwgnrZ0uUIvMZa55IGpYN5XapeA7KZmMCvNMmwDSfXa48uGQmDWMH4P8FlshAEnZE0a-m-PKT/s640/Screenshot.JPG" width="640" /></a></div>
<span style="text-align: justify;"><br /></span>
<div style="text-align: justify;">
The second time I saw it, I asked the speaker what they were running, and they gave a three minute demo of an open source tool called <b>Visual Studio Code</b>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
https://code.visualstudio.com/</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
It is an open-source tool...</div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVyRn6OdPpX7ubfvTfbDa2X3VlQBekqNUon7B9cLWei5S6JCuP_v2rHbdv48aCf_qkzaef7Z1RcV7POoOiXzOEzOLyY9Jnplsph5j-E1C97ZJaFGmaW2JSt-CWq3eGgkSSiEBDBXsGWjnK/s1600/i-felt-a-great-disturbance-in-the-force-as-if-millions-of-voices-suddenly-cried-out-in-terror-and-we.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="900" data-original-width="1600" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVyRn6OdPpX7ubfvTfbDa2X3VlQBekqNUon7B9cLWei5S6JCuP_v2rHbdv48aCf_qkzaef7Z1RcV7POoOiXzOEzOLyY9Jnplsph5j-E1C97ZJaFGmaW2JSt-CWq3eGgkSSiEBDBXsGWjnK/s640/i-felt-a-great-disturbance-in-the-force-as-if-millions-of-voices-suddenly-cried-out-in-terror-and-we.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/68516476/i-felt-a-great-disturbance-in-the-force-as-if-millions-of-voices-suddenly-cried-out-in-terror-and-we.jpg</td></tr>
</tbody></table>
<div style="text-align: justify;">
Yes, yes...OPEN SOURCE! #TheWaveOfTheFuture</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
As I was saying, it is an open-source tool, and because of that it can run on multiple operating systems, including Windows, MacOS, and Linux.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
It turned out that was why the speakers I saw were running it - it was a tool they could run on the MacBooks they use to present.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
(Not going to get into a philosophical MS vs Mac argument here, but the next time you are at a SQL Server event, watch how many high-end presenters are using Macs - it may surprise you!)</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I have played with it some since I returned from Summit and it is growing on me - the first time I opened a TSQL file it prompted me to install a SQL extension, which wasn't an issue.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I can see how this tool will be useful to all DBA's, but especially those that also developer in some other language - Visual/Python/etc. - as well as those that like Mac or Linux.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
--</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Hope this helps!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-5061461524852284282018-11-29T18:59:00.000-06:002018-11-29T18:59:24.249-06:00Things I Learned at Summit v20 - Trace Flag 4199<div style="text-align: justify;">
Part of a series of posts on cool stuff I learned at PASS Summit v20 (2018) - in this first post we'll look at a trace flag I had never even heard of, let alone deployed - 4199.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBplU5tUMCtZgu43i0_zUA9hnC4qbO7DNdrGvZO4B-vuIDEihgqnTedsL0tONrRUoD9kQF0jY9LUisIpwCbNkxnq_nDuUiK_hkegpJfKxng20LVUs42DaKfD3KYXaQz3dm0lOehU8QngxA/s1600/LetsStartAtTheBeginning.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="344" data-original-width="756" height="288" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBplU5tUMCtZgu43i0_zUA9hnC4qbO7DNdrGvZO4B-vuIDEihgqnTedsL0tONrRUoD9kQF0jY9LUisIpwCbNkxnq_nDuUiK_hkegpJfKxng20LVUs42DaKfD3KYXaQz3dm0lOehU8QngxA/s640/LetsStartAtTheBeginning.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://i.imgflip.com/15frvt.jpg</td></tr>
</tbody></table>
<div style="text-align: justify;">
What is a Trace Flag? According to <a href="https://docs.microsoft.com/en-us/SQL/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql" target="_blank">Microsoft</a>:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<b><span style="font-family: "trebuchet ms" , sans-serif;">Trace flags are used to temporarily set specific server characteristics or to switch off a particular behavior. </span></b></div>
</blockquote>
<div style="text-align: justify;">
At the most basic, you can set or unset a trace flag in order to modify how SQL Server works. This can be done globally (instance-wide) or for a particular session.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
There are a LOT of trace flags, and several are widely used, such as 1204 and 1222 (Deadlock Info) and 1118 (Disable Single Page Allocations), but I haven't heard a Microsoft employee tell me I should "almost always" turn any trace flag on - until now.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
--</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
On Tuesday of Summit week, I was in the pre-conference session put on by the Microsoft MSSQL Tiger Team - the Senior Product Managers of SQL Server Engineering (<a href="https://blogs.msdn.microsoft.com/sql_server_team/">blog</a>/<a href="https://twitter.com/mssqltiger">@mssqltiger</a>).</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7f-XCETeEiDi3zKq6mrWmA9Ht7UOjl28oeuzmC4_unEcYty2fMm-XvJYKsY7hSH6FfJqbVYUX5-xYcBcxZHyxdVjNx7pIsyMj3ZATeL-E1CGHBiHOBGSl41Qf_LsZ_fMbI4x_rPTHyHz0/s1600/WereNotWorthy.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="315" data-original-width="600" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7f-XCETeEiDi3zKq6mrWmA9Ht7UOjl28oeuzmC4_unEcYty2fMm-XvJYKsY7hSH6FfJqbVYUX5-xYcBcxZHyxdVjNx7pIsyMj3ZATeL-E1CGHBiHOBGSl41Qf_LsZ_fMbI4x_rPTHyHz0/s640/WereNotWorthy.jpeg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://fico.i.lithium.com/t5/image/serverpage/image-id/31298i0D30CC780E2784AD?v=1.0</td></tr>
</tbody></table>
<div style="text-align: justify;">
The session was titled "Modernize Your SQL Server with Bob Ward, the Tiger Team, and CSS Escalation Engineers" and it...was...awesome!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
One of the presenters was Pedro Lopes (<a href="https://blogs.msdn.microsoft.com/blogdoezequiel/" target="_blank">blog</a>/<a href="https://twitter.com/SQLPedro" target="_blank">@SQLPedro</a>), a Senior PM for the Relational Engine. In his part of the day he talked about several features of the engine and the optimizer, but the "What...what did he say?" moment for me was when he talked about trace flag 4199...and how we should have it turned on pretty much everywhere.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Wait...what?</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhORhhREfhWNbwHzyzGDFHCwihLc90JLJUDC6a7FMHJAnFYK-QlZlBYc9OBbF8-03skYwPUHBeJye1PrEa0i1N7yNA9wwdRiLpSu8bIlw7cC10FtBrR5em1jibkc6-juO31MiLSSK25VEml/s1600/SayWhat.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="287" data-original-width="432" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhORhhREfhWNbwHzyzGDFHCwihLc90JLJUDC6a7FMHJAnFYK-QlZlBYc9OBbF8-03skYwPUHBeJye1PrEa0i1N7yNA9wwdRiLpSu8bIlw7cC10FtBrR5em1jibkc6-juO31MiLSSK25VEml/s400/SayWhat.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://vignette.wikia.nocookie.net/halofanon/images/d/de/BEAN-say-what.jpg/revision/latest?cb=20130302200428</td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
Trace Flag 4199 enables query optimizer fixes that are included in CUs (and the CU breakpoint releases formerly known as "service packs") after RTM.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
What does this mean? If you aren't running with TF 4199, then your Query Optimizer (QO) is running the same as RTM, regardless of what CU level you have applied to your engine.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
For example, if you are running SQL Server 2012 SP4 (<a href="https://sqlserverbuilds.blogspot.com/">11.0.7001.0</a>) but you aren't running with TF 4199, then your QO is running the same as someone whose instance is running 2012 RTM (11.0.2100.60). There are plenty of other things changed by applying the CU, but Query Optimizer function isn't one of them...without 4199.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
That melted my mind a little, and I could tell the same was true for the attendees sitting near me - we can religiously apply CUs and fixes but unless we're running this TF (which none of us had ever even *heard* of) then you aren't fixing (improving) your Query Optimizer.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5FMY-yKOljyaruo0Fjeo-42yCsDBNTi34DtKPDXcyQA-BrHWt9Gyc8w0TEAhjn23ChZGFdmTWzT3x1S0pmM7NGp-ImAzjOn9iAxua9rKtXVu3L9dT5GR6aFNQlhyvwywgWp4EYlkGFBze/s1600/WellThatSucks.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="375" data-original-width="500" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5FMY-yKOljyaruo0Fjeo-42yCsDBNTi34DtKPDXcyQA-BrHWt9Gyc8w0TEAhjn23ChZGFdmTWzT3x1S0pmM7NGp-ImAzjOn9iAxua9rKtXVu3L9dT5GR6aFNQlhyvwywgWp4EYlkGFBze/s400/WellThatSucks.jpeg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://i.chzbgr.com/full/3519512832/h0B54C8A3/</td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
Query Optimizer fixes are shipped as OFF by default in order to maintain compatibility and performance when CUs are deployed (so there aren't <a href="https://cloudblogs.microsoft.com/sqlserver/2018/06/11/sql-server-automatic-tuning-around-the-world/">plan regressions</a>). Originally there was a new trace flag for each fix, so to turn on multiple fixes you would have to enable multiple trace flags.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
As described at <a href="https://support.microsoft.com/en-us/help/974006/sql-server-query-optimizer-hotfix-trace-flag-4199-servicing-model">https://support.microsoft.com/en-us/help/974006/sql-server-query-optimizer-hotfix-trace-flag-4199-servicing-model</a>, starting way back in SQL2005-SP3-CU6, SQL2008-SP1-CU7, and SQL2008R2 RTM, the ability to enable query optimizer fixes was rolled into one switch, TF 4199. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
While reading the article I tripped over one sentence:</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: "trebuchet ms" , sans-serif;"><b>Because trace flag 4199 is recommended only for customers who are seeing specific performance issues, customers are advised to remove trace flag 4199 after they migrate their databases to the latest compatibility level because trace flag 4199 will be reused for future fixes that may not apply to your application and could cause unexpected plan performance changes on a production system</b></span></div>
</blockquote>
<div style="text-align: justify;">
This was interesting to see, because it ran contrary to the advice from this session and several other places I found references to enabling 4199, but this sentence reads like standard lawyerly boilerplate which is enough to make me treat it with healthy distrust.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>(For this blog post I took a step I never have for a blog post before - I reached out to Pedro directly to verify my interpretation of his message to make sure I wasn't misrepresenting his content. He graciously responded with a few comments, including the fact that he is trying to get the above highlighted sentence updated to reflect changes in how TF 4199 works under SQL 2016+ (see below)).</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
--</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
At the pre-conference session, Pedro's comments were basically that while there was a time when we all "waited for SP1" to let everyone else test, that isn't how the modern SQL Server development model works. With the extensive testing that occurs these days as well as the "Cloud First" model that has everything live in production in Azure long before it gets to the on-premises product, there simply isn't that much risk to deploying RTM software or to deploying CUs as they come out.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
IMPORTANT NOTE - There is still always (*always*) due diligence - patch DEV before PROD (we all do *that* at least, right?) - but by the time we get a new CU for an on-prem SQL Server it has already been used by thousands (hundreds of thousands) of users in Microsoft testing and on Azure.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
In effect, we are already waiting for other people to test it, even without waiting at all.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1TZNdxVcFcHqamO7BSD6G1NeOSCxFMHRpMK47vY9VXWhiXO3OeREPSdfm45mfCtSIcrGcLogX6lPuZy3QUdOe3ePKNbEjf9iBpfUWkD7l9UN98bRMEtIbce7G89WZ8lo8k2ptytUFjiYM/s1600/MindBlown.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="537" data-original-width="550" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1TZNdxVcFcHqamO7BSD6G1NeOSCxFMHRpMK47vY9VXWhiXO3OeREPSdfm45mfCtSIcrGcLogX6lPuZy3QUdOe3ePKNbEjf9iBpfUWkD7l9UN98bRMEtIbce7G89WZ8lo8k2ptytUFjiYM/s320/MindBlown.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://ih0.redbubble.net/image.400523286.2984/flat,550x550,075,f.u3.jpg</td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
While researching this topic I found another well-put opinion <a href="https://dba.stackexchange.com/questions/102292/trace-flag-4199-enable-globally">in one of the forum answers here</a> by SQL MVP Gianluca Sartori (<a href="https://spaghettidba.com/">blog</a>/<a href="https://twitter.com/spaghettidba">@spaghettidba</a>):</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
--</div>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<b><span style="font-family: "trebuchet ms" , sans-serif;">Personally, whenever I build a new server for a new project I always enable TF4199 globally. The same applies when I upgrade existing instances to newer versions.</span></b></div>
</blockquote>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<span style="font-family: "trebuchet ms" , sans-serif;"><b>The TF enables new fixes that would affect the behaviour of the application, but for new projects the risk of regression is not an issue. For instances upgraded from previous versions,<span style="background-color: yellow;"> the differences between old and new version are a concern on their own and having to deal with plan regression is expected anyway, </span></b><span style="background-color: yellow; font-weight: bold;">so </span><span style="background-color: yellow; font-weight: bold;">I prefer fighting with it with TF4199 enabled.</span><span style="background-color: white;"> <i><emphasis mine></i></span></span></div>
</blockquote>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<b><span style="font-family: "trebuchet ms" , sans-serif;">AS far as existing databases is concerned, there is only one way to know: test it. You can capture a workload on the existing setup and replay it after enabling the flag. RML Utilities can help you automate the process, as described in this answer.</span></b></div>
</blockquote>
<blockquote class="tr_bq">
<div style="text-align: justify;">
<b><span style="font-family: "trebuchet ms" , sans-serif;">Obviously, the flag affects the whole instance, so you'll have to test all the databases sitting there.</span></b></div>
</blockquote>
<div style="text-align: justify;">
--</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Another piece to the TF 4199 story is how it relates to database compatibility level. Prior to SQL 2016, 4199 was an all or nothing - if you were running SQL 2014 SP1 with 4199 enabled, you got the Query Optimizer fixes included in 2014 SP1, regardless of the DB Compat level.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Starting in SQL 2016, DB Compat Level is relevant with 4199 enabled:</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJbXk_JifxzKuXVl-Af3FE97tFdEIvnJuw629OC8MGO3LS3EMHWj0uNzd6kSlxe7Q0koDynrVCBIuRohhkqoZClANSP0jhyphenhyphenU5wkEu3hs1jPbyLejdaweASv2ZY1oA6KrWMTpv_Vs-oXPWm/s1600/4199_CompatLevel.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="299" data-original-width="1560" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJbXk_JifxzKuXVl-Af3FE97tFdEIvnJuw629OC8MGO3LS3EMHWj0uNzd6kSlxe7Q0koDynrVCBIuRohhkqoZClANSP0jhyphenhyphenU5wkEu3hs1jPbyLejdaweASv2ZY1oA6KrWMTpv_Vs-oXPWm/s640/4199_CompatLevel.JPG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://sqlbits.com/Downloads/550/SQLBits%20-%20Enhancements%20that%20will%20make%20your%20SQL%20database%20engine%20Part%202.pdf</td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
On a SQL Server 2016 server, running in 130 compatibility automatically enables fixes from previous compatibility levels, even without running 4199; the purpose of 4199 in SQL 2016 is to enables fixes *after 2016 RTM* for databases in compatibility 130 - fixes before 2016 RTM are already enabled in compatibility 130.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
This model is continued in 2017+ <a href="https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-2017#4199">as described here</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
This is consistent with another piece of info I learned at Summit v20 from the Tiger Team - <b style="background-color: yellow;">start certifying for Compatibility Level, not SQL Server version</b>. When developing and testing, verify your code for DBCompat 130, <b>*not*</b> SQL Server 2016. (I may write more about that later.)</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
--</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: inherit;">One other item Pedro highlighted in his email response to me was that there are multiple trace flags that Microsoft recommends for various systems, especially high-traffic/high-performance systems. These still aren't "turn on everywhere" but are frequently useful. </span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;">They are laid out in a pair of MS support articles:</span></div>
<blockquote class="tr_bq" style="text-align: justify;">
<a data-saferedirecturl="https://www.google.com/url?q=https://support.microsoft.com/help/2964518&source=gmail&ust=1543586611321000&usg=AFQjCNELn2TDfy5ssTBqpzEXB9gulkGrrg" href="https://support.microsoft.com/help/2964518" style="background-color: white; color: #1155cc;" target="_blank"><span style="font-family: inherit;">Recommended updates and configuration options for SQL Server 2012 and SQL Server 2014 with high-performance workloads</span></a></blockquote>
<blockquote class="tr_bq" style="text-align: justify;">
<a data-saferedirecturl="https://www.google.com/url?q=https://support.microsoft.com/help/4465518&source=gmail&ust=1543586611321000&usg=AFQjCNGPNTZTITd45KQCIQrqLHNgqpYKcw" href="https://support.microsoft.com/help/4465518" style="background-color: white; color: #1155cc;" target="_blank"><span style="font-family: inherit;">Recommended updates and configuration options for SQL Server 2017 and 2016 with high-performance workloads</span></a></blockquote>
<div style="text-align: justify;">
<span style="font-family: inherit;">Many of these items and other related high-performance configurations are detailed at:</span></div>
<blockquote class="tr_bq" style="text-align: justify;">
<a data-saferedirecturl="https://www.google.com/url?q=http://aka.ms/sqlperfcenter&source=gmail&ust=1543586611321000&usg=AFQjCNGIMCrs5ekSf7h6psvYUJ2vPkIXDw" href="http://aka.ms/sqlperfcenter" style="background-color: white; color: #1155cc;" target="_blank"><span style="font-family: inherit;">http://aka.ms/sqlperfcenter</span></a></blockquote>
<div style="text-align: justify;">
<span style="font-family: inherit;">Thanks Pedro for your response - and thanks Tiger Team for your amazing pre-con!</span></div>
<span style="font-family: inherit;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlx6ZcSHtTl48IvZSFoVpMtkulQgEmDT_4RhchSKXVJgNJ0bPX3CN6BW78tuMl5enwG4pIxAjBfiV8IGOQa8vWze5HwYwtORgh9sqwPXlUzpVR2J6YCH0Om6VTLyTvz_dzGs-Q7A1TAPgh/s1600/YoureAwesome.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="530" data-original-width="694" height="305" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlx6ZcSHtTl48IvZSFoVpMtkulQgEmDT_4RhchSKXVJgNJ0bPX3CN6BW78tuMl5enwG4pIxAjBfiV8IGOQa8vWze5HwYwtORgh9sqwPXlUzpVR2J6YCH0Om6VTLyTvz_dzGs-Q7A1TAPgh/s400/YoureAwesome.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://sayingimages.com/wp-content/uploads/dont-try-to-deny-it-awesome-meme.jpg</td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: inherit;">--</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Hope this helps!</div>
<div style="text-align: justify;">
<br /></div>
@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com1tag:blogger.com,1999:blog-4402664127960334547.post-70916489376440526472018-10-17T13:11:00.000-05:002018-10-17T13:11:30.729-05:00Invalid value given for parameter PASSWORD. Specify a valid parameter value.I still use sp_help_revlogin to transfer logins between servers. I know there are other options, including a <a href="https://gallery.technet.microsoft.com/scriptcenter/Fully-TransferMigrate-SQL-25a0cf05#content/" target="_blank">set of Powershell commands contained in dbatools</a> (#YouCanDoAnythingWithPowershell) but this is a case where the old method works so I don't mess with it.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8PoagQ9j59tJm3aAtb2nINKr9jx0OYhnpGUEcsgrZamNwZEchzyeYq8ZQVZpQz0w_SuhSQQDEzY9uIGZ0fzrbaDlmJlgXAMArg2ZSFsa4ajjPVUcfBUl2tAs6Bptp8i_UiKEymB4aJjBI/s1600/TooOld.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="349" data-original-width="479" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8PoagQ9j59tJm3aAtb2nINKr9jx0OYhnpGUEcsgrZamNwZEchzyeYq8ZQVZpQz0w_SuhSQQDEzY9uIGZ0fzrbaDlmJlgXAMArg2ZSFsa4ajjPVUcfBUl2tAs6Bptp8i_UiKEymB4aJjBI/s400/TooOld.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">http://wanna-joke.com/wp-content/uploads/2013/08/funny-pictures-too-olf-for-internet.jpg</td></tr>
</tbody></table>
<br />
Having said that, I know a lot of people still use sp_help_revlogin, so I wanted to document something I tripped over.<br />
<br />
--<br />
<br />
This morning trying to use a saved script to transfer a login to a new server, I ran into this:<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">Msg 15021, Level 16, State 2, Line 1 </span><span style="font-family: "courier new" , "courier" , monospace;"><br />Invalid value given for parameter PASSWORD. Specify a valid parameter value.</span></blockquote>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZozyRSTa4ALjex1wLzpo8lcI73q-QLySoloZhYEWgD8RIDvnRbDE_F67kdJvMZn63eDl27lsDZhVLwKREkHXMPzHVqqHoaJp0iLqlIG1J_zyWqe1Bo5OAYHolKMxLYiXBdDqi83prR80L/s1600/UmOK.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="266" data-original-width="362" height="293" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZozyRSTa4ALjex1wLzpo8lcI73q-QLySoloZhYEWgD8RIDvnRbDE_F67kdJvMZn63eDl27lsDZhVLwKREkHXMPzHVqqHoaJp0iLqlIG1J_zyWqe1Bo5OAYHolKMxLYiXBdDqi83prR80L/s400/UmOK.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://pics.me.me/um-ok-memecrunch-com-19987825.png</td></tr>
</tbody></table>
<br />
This was a new one on me, but a little Google led me to the problem, and it was described in the notes for the sp_help_revlogin procedure itself at <a href="https://support.microsoft.com/en-us/help/918992/how-to-transfer-logins-and-passwords-between-instances-of-sql-server">https://support.microsoft.com/en-us/help/918992/how-to-transfer-logins-and-passwords-between-instances-of-sql-server</a>:<br />
<br />
--<br />
<blockquote class="tr_bq">
<span style="background-color: white; font-family: "segoe ui" , "segoeui" , "helvetica neue" , "helvetica" , "arial" , sans-serif; font-size: 15px;">A password can be hashed in the following ways:</span><br />
<ul class="sbody-free_list" style="box-sizing: inherit; list-style: disc; margin: 0px 0px 16px 32px; padding: 0px 20px;">
<li style="box-sizing: inherit; margin-bottom: 8px; margin-top: 8px;"><span class="text-base" style="box-sizing: inherit; outline: none;">VERSION_SHA1</span>: This hash is generated by using the SHA1 algorithm and is used in SQL Server 2000 through SQL Server 2008 R2.</li>
</ul>
<ul class="sbody-free_list" style="box-sizing: inherit; list-style: disc; margin: 0px 0px 16px 32px; padding: 0px 20px;">
<li style="box-sizing: inherit; margin-bottom: 8px; margin-top: 8px;"><span class="text-base" style="box-sizing: inherit; outline: none;">VERSION_SHA2</span>: This hash is generated by using the SHA2 512 algorithm and is used in SQL Server 2012 and later versions.</li>
</ul>
</blockquote>
--<br />
<br />
Sure enough I checked and the server I was trying to deploy onto was a SQL 2008R2 server (yes our clients still have lots of 2005/2008/2008R2).<br />
<br />
The script I had saved looked like this:<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">CREATE LOGIN [MyLogin] </span><span style="font-family: "courier new" , "courier" , monospace;"><br />WITH PASSWORD = 0x0200A52324E0FFEBABFAD9327A62EECD2A5D648FF3B98D97C5D020FC16552BA728464BAAC04C8EFDE3BB0235A1F3648E419B038C04C8EFDE3BB0235A1F3648E419B0385A5933 HASHED <br />/* Hash slightly character masked :) */</span><span style="font-family: "courier new" , "courier" , monospace;"><br />, SID = 0x7FCDC703D88B5C48A47D7D13699658E2</span><span style="font-family: "courier new" , "courier" , monospace;"><br />, DEFAULT_DATABASE = [master]</span><span style="font-family: "courier new" , "courier" , monospace;"><br />, CHECK_POLICY = OFF</span><span style="font-family: "courier new" , "courier" , monospace;"><br />, CHECK_EXPIRATION = OFF</span></blockquote>
As a test, I ran an sp_help_revlogin for the same login (same password) on SQL 2008 server:<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">CREATE LOGIN [MyLogin] </span><span style="font-family: "courier new" , "courier" , monospace;"><br />WITH PASSWORD = 0x0100E02F8267F60</span><span style="font-family: "courier new" , "courier" , monospace;">81A5AB316F8A6891C</span><span style="font-family: "courier new" , "courier" , monospace;">81A5AB316F8A6891CCC HASHED <br />/* Hash slightly character masked :) */</span><span style="font-family: "courier new" , "courier" , monospace;"><br />, SID = 0x14B5D0191E908D499C83C1695F13F7F3</span><span style="font-family: "courier new" , "courier" , monospace;"><br />, DEFAULT_DATABASE = [master]</span><span style="font-family: "courier new" , "courier" , monospace;"><br />, CHECK_POLICY = OFF</span><span style="font-family: "courier new" , "courier" , monospace;"><br />, CHECK_EXPIRATION = OFF</span></blockquote>
Note that the second password hash is significantly shorter (which makes perfect sense since SHA1 is a shorter hash than SHA2, <a href="https://www.thesslstore.com/blog/difference-sha-1-sha-2-sha-256-hash-algorithms/" target="_blank">as described here</a>.) This is one of the key reasons SHA1 has fallen out of favor - there have been <a href="https://www.computerworld.com/article/3173616/security/the-sha1-hash-function-is-now-completely-unsafe.html" target="_blank">known issues with SHA1 for years.</a><br />
<br />
(Another reason to get off SQL 2005/2008/2008R2...as if you should need another reason in the year 2018!)<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidubwPobZFDyEPOVstC03IuB4fYp0rVI3zOOjCpaAyEGC2Qg-eOKpk9fsuwwQyWBL-PSJKrsg-O9f4dQcdpHW2d2bFrUrBSb80lAYdHFDWjGWYs1ULGd29kv5SZi6O95ymC3BBD0JwvMAa/s1600/old_technology_640_01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="398" data-original-width="459" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidubwPobZFDyEPOVstC03IuB4fYp0rVI3zOOjCpaAyEGC2Qg-eOKpk9fsuwwQyWBL-PSJKrsg-O9f4dQcdpHW2d2bFrUrBSb80lAYdHFDWjGWYs1ULGd29kv5SZi6O95ymC3BBD0JwvMAa/s400/old_technology_640_01.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">http://img.izismile.com/img/img6/20130327/original640/old_technology_640_01.jpg</td></tr>
</tbody></table>
<br />
The bottom line is that to have login scripts like this, you need two versions, a SQL2005-2008R2 SHA1 version, and a SQL 2012+ SHA2 version.<br />
<br />
*OR*<br />
<br />
If you truly only want one copy of your script, it needs to be a SHA1 (short hash) version. SQL 2005/2008/2008 R2 don't understand the 2012+ SHA2 long hash, but SQL 2012+ is backward-compatible to the SHA1 short hash.<br />
<br />
Having said that, I would still use the SHA2 hash script whenever possible.<br />
<br />
--<br />
<br />
Hope this helps!<br />
<br />
<br />@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com3tag:blogger.com,1999:blog-4402664127960334547.post-88178873272236831602018-09-26T10:20:00.001-05:002018-09-26T10:20:28.433-05:00Coming Soon to Minnesota...Lincoln...and Seattle!!!It's that time of year when <a href="https://www.sqlsaturday.com/default.aspx" target="_blank">SQLSaturdays</a> start to slow down (in the U.S. anyway) as we march towards Summit and the holiday season.<br />
<br />
Having said that, I have three speaking engagements in the near future - two SQLSaturdays and...SUMMIT!!!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMKNpDIuT8AnHTqRLaYyef8DtUUYL4MwPg1Nfm2YHBeq1Xmdd1HsXjbC4S47Ls3IT4d4loQo2AUGyL2Vk5EVelLamWAjkciJJNxdTGPDWG1dNDg5ZxqCsMJKcDbJucoBNed61a730FPe0I/s1600/PASSSummitV20.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMKNpDIuT8AnHTqRLaYyef8DtUUYL4MwPg1Nfm2YHBeq1Xmdd1HsXjbC4S47Ls3IT4d4loQo2AUGyL2Vk5EVelLamWAjkciJJNxdTGPDWG1dNDg5ZxqCsMJKcDbJucoBNed61a730FPe0I/s320/PASSSummitV20.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://pbs.twimg.com/profile_images/1037416795282403329/vrSIsVTR_400x400.jpg</td></tr>
</tbody></table>
<br />
I will be giving slight variations on the same talk at all three events as I tweak possible changes for my Summit talk.<br />
<br />
--<br />
<br />
<a href="https://www.sqlsaturday.com/796/eventhome.aspx" target="_blank">SQLSaturday #796</a> - Minnesota - St Paul, MN - October 6th<br />
<br />
<a href="https://www.sqlsaturday.com/767/eventhome.aspx" target="_blank">SQLSaturday #767</a> - Lincoln - Lincoln, NE - October 27th<br />
<br />
<a href="https://www.pass.org/summit/2018/Home.aspx" target="_blank">PASS Summit v.20</a> - Seattle, WA - November 5th-9th<br />
<br />
--<br />
<br />
Minnesota and Lincoln are always amazing events, and this is only my second time speaking at Summit. I have spoken at more than a dozen SQLSaturdays and yet I get edgy thinking about being on stage at Summit (it's just a really big SQLSaturday, right? ...right?)<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghc0vhZ5k7nET47x_NXDzG8M7cA1glbVdM_MDXTipm2Xy-h6Err-XRFOWBnVJ81Onj9UWJbACFjWT1gKD91NgBCrylv5A7IHCczDQHye2VvbTsycgaEQY3XOCuO8SyZb2X5ybKHUI6bB-L/s1600/TellingYourself.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghc0vhZ5k7nET47x_NXDzG8M7cA1glbVdM_MDXTipm2Xy-h6Err-XRFOWBnVJ81Onj9UWJbACFjWT1gKD91NgBCrylv5A7IHCczDQHye2VvbTsycgaEQY3XOCuO8SyZb2X5ybKHUI6bB-L/s320/TellingYourself.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">http://he.memegenerator.net/instance/59791161/mr-bean-you-just-keep-telling-yourself-that</td></tr>
</tbody></table>
--<br />
<br />
The talk I am giving is my Extended Events talk:<br />
<br />
--<br />
<blockquote class="tr_bq">
<b><span style="border: 0px; box-sizing: border-box; color: #333333; font-family: "Gotham SSm A", "Gotham SSm B", Arial, sans-serif; font-size: 15px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a href="https://www.pass.org/summit/2018/Sessions/Details.aspx?name=getting-started-with-extended-events&sid=77572" target="_blank">Getting Started with Extended Events</a></span> </b></blockquote>
<blockquote class="tr_bq">
<b><span style="border: 0px; box-sizing: border-box; color: #333333; font-family: "Gotham SSm A", "Gotham SSm B", Arial, sans-serif; font-size: 15px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a data-bind="text: Name" href="https://www.blogger.com/null" style="border: 0px; box-sizing: border-box; color: #f0493e; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white; color: black; white-space: pre-wrap;">Few subjects in Microsoft SQL Server inspire the same amount of Fear, Uncertainty, and Doubt (FUD) as Extended Events. Many DBAs continue to use Profiler and SQL Trace even though they have been deprecated for years. Why is this?</span></a></span> </b></blockquote>
<blockquote class="tr_bq">
<b><span style="border: 0px; box-sizing: border-box; color: #333333; font-family: "Gotham SSm A", "Gotham SSm B", Arial, sans-serif; font-size: 15px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a data-bind="text: Name" href="https://www.blogger.com/null" style="border: 0px; box-sizing: border-box; color: #f0493e; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white; color: black; white-space: pre-wrap;">Extended Events started out in SQL Server 2008 with no user interface and only a few voices in the community documenting the features as they found them. Since then, it has blossomed into a full feature of SQL Server and an amazingly low-impact replacement for Profiler and Trace.</span></a></span><span style="border: 0px; box-sizing: border-box; color: #333333; font-family: "Gotham SSm A", "Gotham SSm B", Arial, sans-serif; font-size: 15px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a data-bind="text: Name" href="https://www.blogger.com/null" style="border: 0px; box-sizing: border-box; color: #f0493e; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white; color: black; white-space: pre-wrap;">
</span></a></span><span style="border: 0px; box-sizing: border-box; color: #333333; font-family: "Gotham SSm A", "Gotham SSm B", Arial, sans-serif; font-size: 15px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a data-bind="text: Name" href="https://www.blogger.com/null" style="border: 0px; box-sizing: border-box; color: #f0493e; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white; color: black; white-space: pre-wrap;"></span></a></span></b></blockquote>
<blockquote class="tr_bq">
<span style="border: 0px; box-sizing: border-box; color: #333333; font-family: "Gotham SSm A", "Gotham SSm B", Arial, sans-serif; font-size: 15px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><a data-bind="text: Name" href="https://www.blogger.com/null" style="border: 0px; box-sizing: border-box; color: #f0493e; font-family: inherit; font-size: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white; color: black; white-space: pre-wrap;"><b>Come learn how to get started - the basics of sessions, events, actions, targets, packages, and more. We will look at some base scenarios where Extended Events can be very useful as well as considering a few gotchas along the way. You may never go back to Profiler again!</b></span></a></span></blockquote>
--<br />
<br />
I have been tweaking it to add more demos and extend the length (Summit sessions are 75 minutes and most SQLSaturday sessions are 60-70 minutes.) Even if you have seen me present this session before I hope you will get something out of it.<br />
<br />
--<br />
<br />
Another important part of SQLSaturdays and Summit to me are the pre-conference sessions/workshops. They do cost an extra fee but it is worth it for a full day of in-depth training on a topic by a dedicated speaker (events like this don't give preconference slots to just anybody).<br />
<br />
All three of these events have preconference sessions, and to me as primarily a systems DBA I recommend the following:<br />
<br />
--<br />
<br />
SQLSaturday Minnesota (Full List at <a href="https://www.eventbrite.com/e/sqlsaturday-796-minnesota-pre-cons-tickets-49272636783?aff=SQLSaturday">https://www.eventbrite.com/e/sqlsaturday-796-minnesota-pre-cons-tickets-49272636783?aff=SQLSaturday</a>)<br />
<br />
<a href="https://www.sqlsaturday.com/796/Sessions/Details.aspx?sid=84960" target="_blank">Data Security for the Cloud</a> by Ed Leighton-Dick from Kingfisher Technologies - I have known Ed for some time and he has put a lot of time into becoming a rising star in the security area.<br />
<br />
--<br />
<br />
SQLSaturday Lincoln (Full List at <a href="https://www.sqlsaturday.com/767/eventhome.aspx">https://www.sqlsaturday.com/767/eventhome.aspx</a>)<br />
<br />
<a href="https://www.eventbrite.com/e/sql-saturday-767-david-klee-level-up-your-cloud-infrastructure-skills-tickets-49056238530" target="_blank">Level UP! Your Cloud Infrastructure Skills</a> by David Klee of Heraflux - David is one of the top (if not the top) speaker on SQL Server on VMs and the cloud.<br />
<br />
<a href="https://www.eventbrite.com/e/sqlsaturday-767-data-security-for-the-cloud-with-ed-leighton-dick-tickets-49063262539" target="_blank">Data Security for the Cloud</a> by Ed (see above) - if you don't see Ed in Minnesota you have another chance in Lincoln!<br />
<br />
--<br />
<br />
<u>Summit (Full List at <a href="https://www.pass.org/summit/2018/Learn/Pre-ConferenceSessions.aspx">https://www.pass.org/summit/2018/Learn/Pre-ConferenceSessions.aspx</a>) </u><br />
<br />
<a href="https://www.pass.org/summit/2018/Sessions/Details.aspx?sid=80308" target="_blank">SQL Server Security</a> by Denny Cherry of Denny Cherry & Associates Consulting (DCAC) - Denny is a security (and all-around) SQL Server expert who always gives a great talk.<br />
<br />
<a href="https://www.pass.org/summit/2018/Sessions/Details.aspx?sid=80548" target="_blank">Modernize your SQL Server with Bob Ward, the Tiger Team, and CSS Escalation Engineers</a> by Bob Ward and the SQL Tiger Team from Microsoft - nobody can melt your brain like Bob Ward. Any time you can see Bob speak, you should...period.<br />
<br />
<a href="https://www.pass.org/summit/2018/Sessions/Details.aspx?sid=80418" target="_blank">Fixing Query Performance Problems from Estimates, Statistics, Heuristics, and Cardinality</a> by Kimberly L. Tripp of SQLskills.com - Kimberly knows more about statistics and the related topics than anyone I know, and she shares it so well. <br />
<br />
Kimberly and Bob are in the same time slot (all-day Tuesday) and in this case I am going to see Bob but I have already had weeks of training from Kimberly and if her topic sounds more interesting to you it will be worth it!<br />
<br />
--<br />
<br />
Hope to see you at these events and in the preconference sessions!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG8Pox_8OHptqO1u_lg6OXNuQRlgC64xEToSFzh1glupl-oERpkDFIB_O5Fr9-z7jAbZ3zfQ9xbth03sWEii5z7CfI874zoosCyRF4bbrep32T8VCKksxKqNFwo2eKR2xLTBjRbyLNUI3T/s1600/see-you-soon.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="400" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG8Pox_8OHptqO1u_lg6OXNuQRlgC64xEToSFzh1glupl-oERpkDFIB_O5Fr9-z7jAbZ3zfQ9xbth03sWEii5z7CfI874zoosCyRF4bbrep32T8VCKksxKqNFwo2eKR2xLTBjRbyLNUI3T/s320/see-you-soon.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/68890668/see-you-soon.jpg</td></tr>
</tbody></table>
<br />
<br />@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-55020263306751426002018-09-04T14:48:00.000-05:002018-09-04T14:51:44.070-05:00Did Not Know That - Redirecting CMD to the ClipboardOne of the items I frequently deal with as a Production DBA is drive alarms. I have written <a href="http://nebraskasql.blogspot.com/2018/01/toolbox-why-is-my-database-so-big.html" target="_blank">previously</a> about looking for space inside database files, but what if your problem is non-database files?<br />
<br />
The goto tool in Windows for me has always been <a href="https://docs.microsoft.com/en-us/sysinternals/downloads/du" target="_blank">du (Disk Usage)</a> created by Mark Russinovich (<a href="http://www.trojanhorsethebook.com/blog/" target="_blank">blog</a>/<a href="https://twitter.com/markrussinovich" target="_blank">@markrussinovich</a>) as part of his <a href="https://docs.microsoft.com/en-us/sysinternals/" target="_blank">Sysinternals</a> project.<br />
<br />
du is a very straightforward command tool the traverses the directory structure below the current path and returns the folder sizes of the given folders. For example, the output for C:\Windows on a given server looks like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU8SeF1lt_c-cAAhSX_izT3zOb25i97dlKh2d6az3zPwQ3vIkTeliQdOTBuVGa5fOtIyLoUCcLuxeJM9Quv_v0ackK61kh6Rn9D9uRceDfagCfJyxcbb-GH3AIp5-ahTevHUO2qSIcZ_0B/s1600/DU_Output.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="840" data-original-width="399" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU8SeF1lt_c-cAAhSX_izT3zOb25i97dlKh2d6az3zPwQ3vIkTeliQdOTBuVGa5fOtIyLoUCcLuxeJM9Quv_v0ackK61kh6Rn9D9uRceDfagCfJyxcbb-GH3AIp5-ahTevHUO2qSIcZ_0B/s1600/DU_Output.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Fine to look at, but a bit onerous to manipulate - after all this is just a screenshot.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The first way I knew to deal with this was via the >> redirect:</div>
<blockquote class="tr_bq" style="clear: both; text-align: left;">
<span style="font-family: "courier new" , "courier" , monospace;">du -l 1 >> Output4.txt</span></blockquote>
<div class="separator" style="clear: both; text-align: left;">
This would create a text file at the path being searched containing the output from the command, which can then be copy-pasted out to another site:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVSh0-yAk7eAsDPqYfaHSkLEMMX3DaM-Z3tuSzFWqlTaPRQ6d-UKBcWohnPf8_P7sh4xqDPl_Fb0_hAf4nPVIC8sNtLKUCHn4NeMbjgZ8BVwfBC5B0GqMweRqH_xQoHQ6tPiR-9X4qmL8u/s1600/DU_Output1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="502" data-original-width="406" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVSh0-yAk7eAsDPqYfaHSkLEMMX3DaM-Z3tuSzFWqlTaPRQ6d-UKBcWohnPf8_P7sh4xqDPl_Fb0_hAf4nPVIC8sNtLKUCHn4NeMbjgZ8BVwfBC5B0GqMweRqH_xQoHQ6tPiR-9X4qmL8u/s1600/DU_Output1.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
To clean it up for manipulation (in Excel for example), you can add a parameter to du to turn the output to comma- or tab-delimited format (either -c or -ct):</div>
<blockquote class="tr_bq" style="clear: both; text-align: left;">
<span style="font-family: "courier new" , "courier" , monospace;">du -ct -l 1 >> output5.txt</span></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLD_gs9mNnLPZRk0yOvezsURTxh0RYOXJujahH_jhBmMYveuW1kRJl0er8hc30n0Rwb6k6jb8w27ZYPM8mPPFFlecR0sj269rL0McYmxARvO-txNZCPyXX6LQ1lbAOsGFplpJ4Yr0AUxWk/s1600/DU_Output2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="502" data-original-width="754" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLD_gs9mNnLPZRk0yOvezsURTxh0RYOXJujahH_jhBmMYveuW1kRJl0er8hc30n0Rwb6k6jb8w27ZYPM8mPPFFlecR0sj269rL0McYmxARvO-txNZCPyXX6LQ1lbAOsGFplpJ4Yr0AUxWk/s1600/DU_Output2.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
--</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The new trick I learned is that you can use a pipe - similar to Powershell - to redirect the output of the du command to another command, and that there is a command to send the output of a command directly to the clipboard (unbelievably enough, called "clip"):</div>
<blockquote class="tr_bq" style="clear: both; text-align: left;">
<span style="font-family: "courier new" , "courier" , monospace;">du -ct -l 1 | clip</span></blockquote>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB2pDgZxLjw23r4jlWO0IABuFpmdaXJWXM03O3DGh33T8aWyUKthbxm9TeEqSYG7PkCJzrVPFz49P_4l3chrmG0wlYw3e_exU2F7bi9hlrZ84Lg7ZOxJtNdacAznFo4B7n179nBSTWzCgn/s1600/MindBlown.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="190" data-original-width="266" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB2pDgZxLjw23r4jlWO0IABuFpmdaXJWXM03O3DGh33T8aWyUKthbxm9TeEqSYG7PkCJzrVPFz49P_4l3chrmG0wlYw3e_exU2F7bi9hlrZ84Lg7ZOxJtNdacAznFo4B7n179nBSTWzCgn/s400/MindBlown.jpeg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">http://ru.memegenerator.net/instance/57285847/mind-blown-cat-mind-blown</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: left;">
I found this trick in a <a href="https://www.labnol.org/software/copy-command-output-to-clipboard/2506/" target="_blank">helpful blog post here.</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Once it's in the clipboard, it can be pasted straight into Excel where it can be easily sorted, for example to find the largest directories:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqgHlWyPzY2P-joyhULgaNeSuqb-xEClC9YbDco4ijM9PO-URf2701Fb-ZUxGuVYUuyS2T9r5Jhn5QrBD8N5gVan82FIjELOY7mu4b7ImgNf4teTvKIbSTztbzFnow65WuqMOgIGAR0MfB/s1600/DU_Output3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="626" data-original-width="764" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqgHlWyPzY2P-joyhULgaNeSuqb-xEClC9YbDco4ijM9PO-URf2701Fb-ZUxGuVYUuyS2T9r5Jhn5QrBD8N5gVan82FIjELOY7mu4b7ImgNf4teTvKIbSTztbzFnow65WuqMOgIGAR0MfB/s1600/DU_Output3.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Pretty cool, huh?</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
This same process of piping into clip works with a wide variety of command line commands, but this is the one for which I see the most immediate value.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
--</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Hope this helps!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-51877293982984917322018-08-02T16:29:00.000-05:002018-08-02T16:29:36.897-05:00The Mystery of the Exploding T-Log<div class="MsoNormal">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">There were a stack of
errors overnight in the DB123 database on SQL01, including one<span style="background: white;"> <b>horror show</b></span> error:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span></span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Log
Name: Application</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Source:
MSSQLSERVER</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Date:
5/24/2018 12:49:39 AM</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Event
ID: 3314</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Task Category: Server</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Level:
Error</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Keywords:
Classic</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">User:
N/A</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Computer:
SQL01.client99.com</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Description:</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">During undoing of a logged
operation in database 'DB123', an error occurred at log record ID
(195237:96178:4). Typically, the specific failure is logged previously as an
error in the Windows Event Log service. <b><span style="background: yellow;">Restore
the database or file from a backup, or repair the database.</span></b></span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable">
<tbody>
<tr>
<td style="padding: 4.5pt 4.5pt 4.5pt 4.5pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUQB6M86JLZl_EabZP1-d_ilDrVNnfGPFyV1PHq1Sp3MVZ56ZDbjNrGuiVG5wb9cL4ZDAXnOFqvX2pngkximPTgpEvY47FjPmMyD86CVtVgQGoM8Czwq3z-CutoYVOE_48X5NtPO9o4deW/s1600/Cat.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="419" data-original-width="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUQB6M86JLZl_EabZP1-d_ilDrVNnfGPFyV1PHq1Sp3MVZ56ZDbjNrGuiVG5wb9cL4ZDAXnOFqvX2pngkximPTgpEvY47FjPmMyD86CVtVgQGoM8Czwq3z-CutoYVOE_48X5NtPO9o4deW/s1600/Cat.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://i.imgflip.com/rlu4s.jpg?a424656</td></tr>
</tbody></table>
</td></tr>
</tbody></table>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">The catch is that when I checked the server, the database was online.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit=""><br /></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">Say what?</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">It started with the LOG
drive filling generating a long string of 9002’s:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span><span style="font-family: "times new roman" , serif;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Log
Name: Application</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Source:
MSSQLSERVER</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Date:
5/24/2018 12:49:39 AM</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Event
ID: 9002</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Task Category: Server</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Level:
Error</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Keywords:
Classic</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">User:
N/A</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Computer:
SQL01.client99.com</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Description:</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">The transaction log for
database 'DB123' is full due to 'ACTIVE_TRANSACTION'.</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">Followed by a “crash”
including the horror show error:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span><span style="font-family: "times new roman" , serif;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Log
Name: Application</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Source:
MSSQLSERVER</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Date:
5/24/2018 12:49:39 AM</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Event
ID: 9001</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Task Category: Server</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Level:
Error</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Keywords:
Classic</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">User:
N/A</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Computer:
SQL01.client99.com</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Description:</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">The log for database
'DB123' is not available. Check the event log for related error messages.
Resolve any errors and restart the database.</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">--</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Log
Name: Application</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Source:
MSSQLSERVER</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Date:
5/24/2018 12:49:39 AM</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Event
ID: 3314</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Task Category: Server</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Level:
Error</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Keywords:
Classic</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">User:
N/A</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Computer:
SQL01.client99.com</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Description:</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">During undoing of a logged
operation in database 'DB123', an error occurred at log record ID
(195237:96178:4). Typically, the specific failure is logged previously as an
error in the Windows Event Log service. <b><span style="background: yellow;">Restore
the database or file from a backup, or repair the database.</span></b></span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">…which seems scary, but
then the database seemed to magically recover on its own:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span><span style="font-family: "times new roman" , serif;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Log
Name: Application</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Source:
MSSQLSERVER</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Date:
5/24/2018 12:49:41 AM</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Event
ID: 17137</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Task Category: Server</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Level:
Information</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Keywords:
Classic</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">User:
N/A</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Computer:
SQL01.client99.com</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Description:</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Starting up database
'DB123'.</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">--</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Log
Name: Application</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Source:
MSSQLSERVER</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Date:
5/24/2018 12:49:45 AM</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Event
ID: 3450</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Task Category: Server</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Level:
Information</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Keywords:
Classic</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">User:
N/A</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Computer:
SQL01.client99.com</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Description:</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Recovery of database
'DB123' (5) is 0%% complete (approximately 4502 seconds remain). Phase 1 of 3.
This is an informational message only. No user action is required.</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">There was a huge string
of Error 18456 (login failures) since DB123 was unavailable during regular
recovery, followed eventually by:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span><span style="font-family: "times new roman" , serif;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Log
Name: Application</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Source:
MSSQLSERVER</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Date:
5/24/2018 1:08:12 AM</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Event
ID: 3421</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Task Category: Server</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Level:
Information</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Keywords:
Classic</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">User:
N/A</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Computer:
SQL01.client99.com</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Description:</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">Recovery completed for
database DB123 (database ID 5) in 1107 second(s) (analysis 52027 ms, redo
238039 ms, undo 700990 ms.) This is an informational message only. No user
action is required.</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;">--<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;">…and all was well.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;"><br /></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEgVkMRMRMT_A6cmMNMuRgzGdK8b5QIXaa7PK-3bsLsngmylVLGMchCC8ciEHtrCq7xy7mbApwvdRfoqz69TYXlHi-CsouPvePi9m_imcoA2JbxH0kHB6x8zlGuTYBrnXi6rbFI4HYeRUN/s1600/whut-i-dont-understand-this.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="360" data-original-width="552" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEgVkMRMRMT_A6cmMNMuRgzGdK8b5QIXaa7PK-3bsLsngmylVLGMchCC8ciEHtrCq7xy7mbApwvdRfoqz69TYXlHi-CsouPvePi9m_imcoA2JbxH0kHB6x8zlGuTYBrnXi6rbFI4HYeRUN/s1600/whut-i-dont-understand-this.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">http://www.thingsmadefromletters.com/wp-content/uploads/2013/10/whut-i-dont-understand-this.jpg</td></tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;">I went looking for
similar situations and found this:<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;"><a href="https://www.sqlservercentral.com/Forums/Topic1525719-146-1.aspx"><span style="color: blue;">https://www.sqlservercentral.com/Forums/Topic1525719-146-1.aspx</span></a><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;">In this situation the
drive filled and the database crashed, going through recovery once there was
additional free space on the drive, which sounded exactly like the situation
here.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;">In short, there was no
actual corruption crash, just insufficient disk space.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;">--<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;">Using the <a href="http://nebraskasql.blogspot.com/2016/06/finding-file-growths-with-extended.html" target="_blank"><span style="color: blue;">default trace query described here</span></a>,
I checked for autogrowths, and here was what they looked like:<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: -.15pt; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 0px;">
<tbody>
<tr style="height: 15.0pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td nowrap="" style="border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span style="font-family: inherit; font-size: 12pt;"><b><u>EventName</u></b><o:p></o:p></span></div>
</td>
<td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit=""><b><u>DatabaseName</u></b><o:p></o:p></span></div>
</td>
<td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit=""><b><u>FileName</u></b><o:p></o:p></span></div>
</td>
<td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit=""><b><u>ApplicationName</u></b><o:p></o:p></span></div>
</td>
<td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit=""><b><u>HostName</u></b><o:p></o:p></span></div>
</td>
<td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit=""><b><u>LoginName</u></b><o:p></o:p></span></div>
</td>
<td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit=""><b><u>Duration</u></b><o:p></o:p></span></div>
</td>
<td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit=""><b><u>TextData</u></b><o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 1;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">1013000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 2;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">920000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 3;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">873000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 4;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">1083000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 5;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">646000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 6;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Ivanti<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">903000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 7;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">880000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 8;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">846000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 9;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">1176000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 10;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">846000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 11; mso-yfti-lastrow: yes;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 102.3pt;" width="136"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">Log
File Auto Grow<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.15pt;" width="118"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 66.85pt;" width="89"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">DB123_log<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 144.65pt;" width="193"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">.Net
SqlClient Data Provider<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: .9in;" width="86"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WEB05<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.15pt;" width="99"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">WebLogin01<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 57.5pt;" width="77"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">1416000<o:p></o:p></span></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; padding: 0in 5.4pt 0in 5.4pt; width: 58.8pt;" width="78"><div align="center" class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-align: center;">
<span 12pt="" font-size:="" inherit="">NULL<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit="">Since the TEXTDATA is
NULL I can’t say what process caused the growths for sure, but they started at
12:22am local server time. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit="">I could tell the client
that since they came from the .NET provider they aren’t caused by
Index/Statistics maintenance or anything else internal.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit="">To try to run down what
might be causing the autogrowths I set up an Extended Events session to capture
statement completion events (rpc_completed, sp_statement_completed, and
sql_batchcompleted) to see what was actually running during the time
slice. Sure enough there was a smoking gun:</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMj-ybDvP4jFxz6M2YHd-8x1fCBoILU6oW4-M00VNP-D7r9tlql_fk9OkBfTmnD9rH3OFewtHk1Rrj7J2Aky5lBq1w5d-FJh71uS_tVzFSzP4ez7zq2-uqChb-7dAEau6FIF0YrrdnL5nY/s1600/XEvents_LargeDuration.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="357" data-original-width="1095" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMj-ybDvP4jFxz6M2YHd-8x1fCBoILU6oW4-M00VNP-D7r9tlql_fk9OkBfTmnD9rH3OFewtHk1Rrj7J2Aky5lBq1w5d-FJh71uS_tVzFSzP4ez7zq2-uqChb-7dAEau6FIF0YrrdnL5nY/s1600/XEvents_LargeDuration.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;">Check out the row near
the middle with a very large duration, logical_reads count, *<b>and</b>* writes
count.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><br /></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqwI8uSxf3K2W0IhvMDeQ7XHnhkcy519Uiz-gW1IgU9KELu16hs7FeF9_IRhuaAvC7XO8Q_05kKvi0UUyK1cMyFxdrgvXrTxN2O3RtmUVERrUT3OxjnmF6ceZglc7SypeH-jaMPEESjdjF/s1600/problem.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="871" data-original-width="620" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqwI8uSxf3K2W0IhvMDeQ7XHnhkcy519Uiz-gW1IgU9KELu16hs7FeF9_IRhuaAvC7XO8Q_05kKvi0UUyK1cMyFxdrgvXrTxN2O3RtmUVERrUT3OxjnmF6ceZglc7SypeH-jaMPEESjdjF/s400/problem.jpg" width="283" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://steemitimages.com/DQmarWgB1ztrx628DTGpkteJeKiU3waad9YRtm5jVedJxws/problem.jpg</td></tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">Durations
in SQL 2012 Extended Events are in microseconds – a very small unit.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit=""><span style="font-family: inherit , serif; font-size: 12pt;">The catch
is the duration for this statement is 6,349,645,772 (6 billion) microseconds…<b><span style="background: yellow;">105.83 minutes!</span></b></span><span style="font-size: 12pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit=""><span style="font-family: inherit , serif; font-size: 12pt;">--</span><span style="font-size: 12pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit=""><span style="font-family: inherit , serif; font-size: 12pt;">The DB123
database is in SIMPLE recovery (note - when I find this I question it – isn’t
point-in-time recovery important? – but that is another discussion). The
relevance here is that in SIMPLE recovery, LOG backups are irrelevant (and
actually *<b>can’t</b>* be run) – once a transaction or batch completes the
LDF/LOG file space is marked available for re-use, meaning that *<b>usually</b>*
the LDF file doesn’t grow very large. (usually!)</span><span style="font-size: 12pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit=""><span style="font-family: inherit , serif; font-size: 12pt;">A
database in SIMPLE recovery growing large LDF/LOG files almost always mean a
long-running unit of work or accidentally open transactions (a BEGIN TRAN with
no subsequent CLOSE TRAN) – looking at the errors in the SQL Error Log last
night, the 9002 log file full errors stopped at 1:45:51am server time, which
means the offending unit of work ended then one way or another (crash or
success).</span><span style="font-size: 12pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit=""><span style="font-family: inherit , serif; font-size: 12pt;">Sure enough
when I filtered the XEvents event file to things with a duration > 100
microseconds and then scanned down to 1:45:00 I quickly saw the row shown
above. Note this doesn’t mean the unit of work was excessively
large in CPU/RAM/IO/etc. (and in fact the query errored out due to lack of LOG
space) but the excessive duration made all of the tiny units of work over the
previous 105 minutes have to persist in the transaction LDF/LOG file until this
unit of work completed, preventing all of the LOG from that time to be marked
for re-use until this statement ended.</span><span style="font-size: 12pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit=""><span style="font-family: inherit , serif; font-size: 12pt;">--</span><span style="font-size: 12pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span 12pt="" font-size:="" inherit=""><span style="font-family: inherit , serif; font-size: 12pt;">The query
in question is this:</span><span style="font-size: 12pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit , serif; font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span></span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">exec sp_executesql N'DELETE from SecurityAction </span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">WHERE ActionDate < @1 AND </span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">(ActionCode != 102 AND ActionCode != 103 AND ActionCode !=
129 </span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">AND ActionCode != 130)',N'@1 datetime',@1='2017-09-14 00:00:00'</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">Stripping off the
sp_executesql wrapper and the parameter replacement turns it into this:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span><span style="font-family: "times new roman" , serif;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">DELETE from SecurityAction</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">WHERE ActionDate < '2017-09-14 00:00:00'</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">AND</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">(</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">ActionCode != 102</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">AND ActionCode != 103</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">AND ActionCode != 129</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">AND ActionCode != 130</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; text-indent: .5in;">
<span style="font-family: "consolas"; font-size: 12pt;">)</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">Checking out
DB123.dbo.SecurityAction, the table is 13GB with 14 million rows. Looking
at a random TOP 1000 rows I see rows that would satisfy this query that are at
least 7 months old (from February 2017) and there may be even older rows – I
didn’t want to spend the resources to run an ORDER BY query to find the
absolute oldest. I don’t know if this means this individual statement has
been failing for a long time or maybe this DELETE statement is a recent
addition to the overnight processes and has been failing since then.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">The DELETE looks like it
must be a scheduled/regular operation from a .NET application running on WEB05
since we are seeing it each night in a similar time window.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">The immediate term
action they chose was to run a batched DELETE to purge this table down – once
it has been purged down maybe the nightly operation will run with a short
enough duration to not break the universe.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">I told them it should be
able to be handled with a TOP DELETE something like this:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span><span style="font-family: "times new roman" , serif;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">WHILE 1=1</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">BEGIN</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
DELETE TOP (10000) from SecurityAction</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
WHERE ActionDate < '2017-09-14 00:00:00'</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
AND</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
(</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
ActionCode != 102</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
AND ActionCode != 103</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
AND ActionCode != 129</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
AND ActionCode != 130</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">
)</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;">END</span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: "consolas"; font-size: 12pt;"> </span><span style="font-family: inherit; font-size: 12pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">This would DELETE rows
in 10,000 row batches; wrapping it in the WHILE 1=1 allows the batch to run
over and over without ending. Once there are no more rows to satisfy the
criteria the query *<b>WILL CONTINUE TO RUN</b>* but will simply delete -0-
rows each time, and then when the user is ready to stop the batch they
simply cancel it.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">You could write a WHILE
clause that actually checks for the existence of rows that meet the criteria,
but in this case there were so many rows that meet the criteria that running
the check itself is more intensive than simply allowing the DELETE to run over
and over.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">It took several hours of
running the "batched" loop, but eventually the table got down from 14
million rows to 900,000 rows without growing the LDF file past 2GB!</span><span style="font-family: "times new roman" , serif;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: 12pt;"><br /></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAp-9NvGmvnU9panI2-3gZ4UPZYIzqh8qecrsciXbJdTILUn-6l3EQ_xho7U573-gsOqQyQ5GKcfzUJ7O85Iblb4VkDFBsiss6x_7jOlsMR09Wx3ZJyWCAA82uH2oli5hW5n0eCxhvqiG8/s1600/booyah.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAp-9NvGmvnU9panI2-3gZ4UPZYIzqh8qecrsciXbJdTILUn-6l3EQ_xho7U573-gsOqQyQ5GKcfzUJ7O85Iblb4VkDFBsiss6x_7jOlsMR09Wx3ZJyWCAA82uH2oli5hW5n0eCxhvqiG8/s1600/booyah.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/80336841/booyah.jpg</td></tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">Lesson #1 - don't run
giant deletes without considering the impact.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">Lesson #2 (and maybe the
more important) - "horror show" errors aren't always a horror show -
always investigate fully!<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">--<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="font-size: 12pt;"><span 12pt="" font-size:="" inherit="">Hope this helps!</span><span style="font-family: "times new roman" , serif;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
</div>
<div class="MsoNormal">
<br /></div>
@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com4tag:blogger.com,1999:blog-4402664127960334547.post-12638179184595910552018-06-21T19:51:00.000-05:002018-06-22T10:04:01.206-05:00Speaking This Weekend in Iowa City!<a href="http://www.sqlsaturday.com/752/EventHome.aspx" target="_blank">Come out to SQL Saturday Iowa</a> at the University of Iowa this Saturday 06/23/2018 for a SQL Saturday that never disappoints - Iowa always puts on a fun event with great atmosphere and informative sessions.<br />
<br />
I am giving the premiere of my new presentation "<b>Intro to Powershell for the SQL Server DBA</b>"<br />
<br />
--<br />
<br />
Many DBA's have the same outlook on Powershell - we all know we should use it, but we don't think we have time to learn one more tool that isn't even really part of SQL Server anyway. I was one of these DBA's for many years, but recently I have come to respect the *power* of Powershell.<br />
<br />
Come learn the basics of Powershell, how Powershell and SQL Server interact with each other, and finally how to use Powershell to automate common SQL Server tasks such as maintenance and SQL Server installations. If you need to interact with Windows or Active Directory, odds are Powershell is the right tool for the job - come learn how to use it!<br />
<br />
--<br />
<br />
There are also many other amazing speakers and sessions this weekend, including Microsoft Data Platform MVP's David Klee (<a href="https://twitter.com/kleegeek" target="_blank">@kleegeek</a>) and Ed Leighton-Dick (<a href="https://twitter.com/kleegeek" target="_blank">@eleightondick</a>).<br />
<br />
Hope to see you there!<br />
<br />
<br />@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-55767779874476855892018-06-15T10:53:00.000-05:002018-06-15T10:53:01.826-05:00Revoke the permission(s) before dropping the server principal<span style="font-family: inherit;">As a remote DBA I often have to log in to client systems for a fixed amount of time and then remove logins and other security after the work is done.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">This morning while cleaning up I ended up with a new error for me:</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">--</span><br />
<blockquote>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="background-color: white; text-align: justify;">Msg 15173, Level 16, State 1, Line 1</span><br style="background-color: white; box-sizing: border-box; text-align: justify;" /><span style="background-color: white; text-align: justify;">Server principal ‘NtiretyMirror’ has granted one or more permission(s). Revoke the permission(s) before dropping the server principal.</span></span></blockquote>
<span style="font-family: inherit;">--</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Interesting.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">At first I thought the error was that the login had *been* granted a permission, which seemed bizarre to me - every day I drop logins with all types of permissions and role memberships.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">When I Google'd the base portion of the error - "<span style="background-color: white; text-align: justify;">Revoke the permission(s) before dropping the server principal" I found that I was incorrect, as described in <a href="https://blogs.msdn.microsoft.com/sqlserverfaq/2010/02/09/drop-failed-for-login-since-it-has-granted-one-or-more-permissions/" target="_blank">an MSDB article here</a>.</span></span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">The problem wasn't that the login had permissions, but rather than it had granted someone *else* permissions.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ7Ix_1T1SAeFsHgIHX_UAIKc88dquHC1qxtgdhR5Vindd9w8McusrTtPOQFbwQHayMpbyJ5pWPgqODELqyuD3dSoduBaprTCbBdFM1Nrv-e1ZfnNSarxrQytih1-N1S4sT_-sInNfYoGE/s1600/ReadAllTheWords.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span style="color: black;"><img border="0" data-original-height="355" data-original-width="500" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ7Ix_1T1SAeFsHgIHX_UAIKc88dquHC1qxtgdhR5Vindd9w8McusrTtPOQFbwQHayMpbyJ5pWPgqODELqyuD3dSoduBaprTCbBdFM1Nrv-e1ZfnNSarxrQytih1-N1S4sT_-sInNfYoGE/s400/ReadAllTheWords.jpg" width="400" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small;">https://i.imgflip.com/qygsn.jpg</span></td></tr>
</tbody></table>
<span style="font-family: inherit;">The next question became how to tell what permissions we are talking about. Since the permissions weren't on the NtiretyMirror login itself, how could I find out what permissions were involved?</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">There was a basic query in the MSDB post, but I tweaked it to give a cleaner resultset:</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">--</span><br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">DECLARE @GrantorName nvarchar(4000)</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">SET @GrantorName = 'NtiretyMirror' <span style="white-space: pre;"> </span>/* Login in Question */</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">SELECT b.name as Grantor</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">, c.name as Grantee</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">, a.state_desc as PermissionState</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">, a.class_desc as PermissionClass</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">, a.type as PermissionType</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">, a.permission_name as PermissionName</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">, a.major_id as SecurableID </span><br />
<span style="font-family: "courier new" , "courier" , monospace;">FROM sys.server_permissions a</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">JOIN sys.server_principals b</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">ON a.grantor_principal_id = b.principal_id</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">JOIN sys.server_principals c</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">ON a.grantee_principal_id = c.principal_id</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">WHERE grantor_principal_id =</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">(</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>SELECT principal_id</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>FROM sys.server_principals</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="white-space: pre;"> </span>WHERE name = @GrantorName</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">)</span><br />
<br /></blockquote>
--<br />
<br />
Sure enough I found an offending row:<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 800px;">
<colgroup><col style="mso-width-alt: 3291; mso-width-source: userset; width: 68pt;" width="90"></col>
<col style="mso-width-alt: 2084; mso-width-source: userset; width: 43pt;" width="57"></col>
<col style="mso-width-alt: 3986; mso-width-source: userset; width: 82pt;" width="109"></col>
<col style="mso-width-alt: 3949; mso-width-source: userset; width: 81pt;" width="108"></col>
<col style="mso-width-alt: 3913; mso-width-source: userset; width: 80pt;" width="107"></col>
<col style="mso-width-alt: 4169; mso-width-source: userset; width: 86pt;" width="114"></col>
</colgroup><tbody>
<tr align="center" height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="height: 15.0pt; width: 68pt;" width="90"><bold><b>Grantor</b></bold></td>
<td class="xl63" style="border-left: none; width: 43pt;" width="57"><bold><b>Grantee</b></bold></td>
<td class="xl63" style="border-left: none; width: 82pt;" width="109"><bold><b>PermissionState</b></bold></td>
<td class="xl63" style="border-left: none; width: 81pt;" width="108"><bold><b>PermissionClass</b></bold></td>
<td class="xl63" style="border-left: none; width: 80pt;" width="107"><bold><b>PermissionType</b></bold></td>
<td class="xl63" style="border-left: none; width: 86pt;" width="114"><bold><b>PermissionName</b></bold></td>
<td class="xl63" style="border-left: none; width: 86pt;" width="114"><bold><b>SecurableID</b></bold></td>
</tr>
<tr align="center" height="20" style="height: 15.0pt;">
<td class="xl63" height="20" style="border-top: none; height: 15.0pt;">NtiretyMirror</td>
<td class="xl63" style="border-left: none; border-top: none;">public</td>
<td class="xl63" style="border-left: none; border-top: none;">GRANT</td>
<td class="xl63" style="border-left: none; border-top: none;">ENDPOINT</td>
<td class="xl63" style="border-left: none; border-top: none;">CO</td>
<td class="xl63" style="border-left: none; border-top: none;">CONNECT</td>
<td class="xl63" style="border-left: none; border-top: none;">6</td>
</tr>
</tbody></table>
<br />
--<br />
<br />
I looked in sys.endpoints and found that ID =6 is the mirroring endpoint.<br />
<br />
Surprise, surprise - when I had set up mirroring (as NtiretyMirror - get it?) I had granted CONNECT to public as part of the process, and not the NtiretyMirror login owned that GRANT.<br />
<br />
I could try to REVOKE the CONNECT, but did I really want to risk breaking mirroring?<br />
<br />
I found the safer thing to do was to change the ownership of the Mirroring endpoint via ALTER AUTHORIZATION:<br />
<br />
--<br />
<blockquote>
<span style="font-family: "courier new" , "courier" , monospace;">USE [master]</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">GO</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">ALTER AUTHORIZATION ON ENDPOINT::mirroring TO sa;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">GO</span></blockquote>
--<br />
<br />
Once I changed the ownership of the endpoint, my original query showed no permissions related to NtiretyMirror, and I was able to drop it successfully with the normal DROP LOGIN statement.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgks9kTjY1xVNGIfX4LdQ5C7av0AB_iVO3vwcBeKOhYnBqTdyCtsIwYkCn9FCPgrS5hYRurFeuYZN2Ax2v3SiTmlR-U6cMC8NJic9MWlEUe1qpYDn_6xr0QB0K3p7gWFY7Xn0voWM3_2DVw/s1600/woohoo.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="400" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgks9kTjY1xVNGIfX4LdQ5C7av0AB_iVO3vwcBeKOhYnBqTdyCtsIwYkCn9FCPgrS5hYRurFeuYZN2Ax2v3SiTmlR-U6cMC8NJic9MWlEUe1qpYDn_6xr0QB0K3p7gWFY7Xn0voWM3_2DVw/s400/woohoo.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">https://memegenerator.net/img/instances/66310140.jpg</td></tr>
</tbody></table>
<br />
<br />
Hope this helps!<br />
<br />
@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0tag:blogger.com,1999:blog-4402664127960334547.post-8710866601591572152018-06-09T09:11:00.000-05:002018-06-09T09:11:33.116-05:00Double Win- Watch DeWitt and Help SQLSoldier's Loved Ones!<br />
<div class="MsoNormal">
Brent Ozar (<a href="https://www.brentozar.com/blog/" target="_blank">blog</a>/<a href="https://twitter.com/BrentO" target="_blank">@BrentO</a>) is sponsoring a special webcast in a couple
weeks, with an amazing presenter:<o:p></o:p></div>
<div class="MsoNormal">
<o:p><br /></o:p></div>
<div class="MsoNormal">
<o:p><img height="200" src="https://www.brentozar.com/wp-content/uploads/2018/06/dr-david-dewitt-350x350.jpeg" width="200" /></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="https://www.brentozar.com/archive/2018/06/announcing-a-very-special-sqlfamily-webcast-with-dr-david-dewitt/">https://www.brentozar.com/archive/2018/06/announcing-a-very-special-sqlfamily-webcast-with-dr-david-dewitt/</a><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The webcast (“SQL Query Optimization. Why is it so hard to
get right?”) is free, but with a suggested donation to the Robert Davis
Memorial and Grief Fund:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="https://www.gofundme.com/memorial-and-grief-fund-for-chrissy">https://www.gofundme.com/memorial-and-grief-fund-for-chrissy</a>
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img height="212" src="https://d2g8igdw686xgo.cloudfront.net/28842996_15227870920_r.jpeg" width="320" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you don’t know who these people are, you should…<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="https://en.wikipedia.org/wiki/David_DeWitt">Dr. David
DeWitt</a> is currently with MIT but spent years at Microsoft as a Technical
Fellow at the Jim Gray Systems Lab. He presented keynotes at the PASS
Summit for years and gives an awesome talk regardless of the topic.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Robert Davis (<a href="https://twitter.com/SQLSoldier">SQL
Soldier</a>) was a SQL Server MVP and Microsoft Certified Master who was
helpful to many over the years online in the forums and in-person at
events. He died suddenly and without warning earlier this years, leaving
behind his wife.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Sign up for the webcast if you can. and if you feel so moved
please give to the fund as well!<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
Thanks!<br />
<br />
<br />
<br />@DBA_ANDYhttp://www.blogger.com/profile/09130139756284009675noreply@blogger.com0