<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Administration', 'Performance', 'DBA', and 'Best Practices'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Administration,Performance,DBA,Best+Practices&amp;orTags=0</link><description>Search results matching tags 'Administration', 'Performance', 'DBA', and 'Best Practices'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Read the New TPC Database Benchmarking Series</title><link>http://sqlblog.com/blogs/kevin_kline/archive/2013/04/22/read-the-new-tpc-database-benchmarking-series.aspx</link><pubDate>Mon, 22 Apr 2013 18:17:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:48816</guid><dc:creator>KKline</dc:creator><description>&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;&lt;span style="line-height:19px;"&gt;Let's talk about database application benchmarking.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;&lt;span style="line-height:19px;"&gt;This is a skill set which, in my opinion, is one of the major differentiators between a journeyman-level DBA and a true master of the trade. In this article published in my monthly column at&amp;nbsp;&lt;a target="_blank" href="http://www.dbta.com/"&gt;&lt;em&gt;Database Trends &amp;amp; Applications magazine&lt;/em&gt;&lt;/a&gt;, I'll give you a brief introduction to TPC benchmarks and, in future articles, I'll be telling you how to extract specific pieces of valuable information from the published benchmark results.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;&lt;span style="line-height:19px;"&gt;But let's get started with an overview …&amp;nbsp;&lt;/span&gt;&lt;a target="_blank" style="line-height:19px;" href="http://www.dbta.com/Articles/Columns/SQL-Server-Drill-Down/Introduction-to-TPC-Database-Benchmarks-86891.aspx"&gt;read more.&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;Many thanks,&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;-Kevin&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:13.333333969116211px;line-height:18.99305534362793px;"&gt;&lt;a href="http://twitter.com/kekline"&gt;- Follow me on Twitter!&lt;/a&gt;&lt;br&gt;&lt;a href="https://plus.google.com/u/1/113032055249023350257?rel=author"&gt;- Google Author&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Quick Tip - Speed a Slow Restore from the Transaction Log</title><link>http://sqlblog.com/blogs/kevin_kline/archive/2012/11/14/quick-tip-speed-a-slow-restore-from-the-transaction-log.aspx</link><pubDate>Wed, 14 Nov 2012 15:59:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:46209</guid><dc:creator>KKline</dc:creator><description>&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;Here's a quick tip for you:&lt;/p&gt;&lt;p style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;During some restore operations on Microsoft SQL Server, the transaction log redo step might be taking an unusually long time. &amp;nbsp;Depending somewhat on the version and edition of SQL Server you've installed, you may be able to increase performance by tinkering with the readahead performance for the redo operations. &amp;nbsp;To do this, you should use the MAXTRANSFERSIZE parameter of the RESTORE statement. &amp;nbsp;For example, if you set MAXTRANSFERSIZE=1048576, it'll use 1MB buffers.&lt;/p&gt;&lt;div style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;&lt;div align="left"&gt;If you change the MAXTRANSFERSIZE, keep an eye on the PerfMon objects for Buffer Manager and Readahead IO. &amp;nbsp;You may also wish to keep an eye on LOGBUFFER wait stats.&lt;/div&gt;&lt;div align="left"&gt;&lt;br&gt;&lt;/div&gt;&lt;div align="left"&gt;I'd love to hear your feedback. &amp;nbsp;Have you tried this technique? &amp;nbsp;Did it work as advertised? &amp;nbsp;Did it require some changes to work on a specific version or edition?&lt;/div&gt;&lt;/div&gt;&lt;div align="left" style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div align="left" style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;Many thanks,&lt;/div&gt;&lt;div align="left" style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div align="left" style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;-Kev&lt;/div&gt;&lt;div align="left" style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div align="left" style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;-&lt;a title="Kevin E. Kline's Twitter Feed" href="http://twitter.com/kekline"&gt;Follow me on Twitter!&lt;/a&gt;&lt;/div&gt;</description></item><item><title>The Zombie PerfMon Counter That Never Dies! Quick Tip</title><link>http://sqlblog.com/blogs/kevin_kline/archive/2012/10/08/the-zombie-perfmon-counter-that-never-dies-quick-tip.aspx</link><pubDate>Mon, 08 Oct 2012 11:55:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:45480</guid><dc:creator>KKline</dc:creator><description>&lt;h2 style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height:19px;"&gt;&lt;/h2&gt;&lt;h2&gt;The PerfMon Counters That Just Won't Die&lt;/h2&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;img class="alignright size-medium wp-image-2093" title="zombie-baby1" width="300" height="296" style="border:1px solid black;cursor:default;float:right;font-size:13px;font-weight:normal;margin:2px;" src="http://kevinekline.com/wp-content/uploads/2012/10/zombie-baby1-300x296.jpg"&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;One of the things that's simultaneously great and horrible about the Internet is that once something gets posted out in the ether, it basically never goes away. &amp;nbsp;(Some day, politicians will realize this. &amp;nbsp;We can easily fact check their consistency). &amp;nbsp;Because of longevity of content posted to the Internet, a lot of performance tuning topics become "zombies". &amp;nbsp;We shoot 'em in dead, but they keep coming back!&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;In other words, those old recommendations&amp;nbsp;&lt;em&gt;were&amp;nbsp;&lt;/em&gt;a suggested best practices for long ago, for a specific version of SQL Server, but are now inappropriately for the newer version. &amp;nbsp;It's not uncommon for me, when speaking at a conference, to encounter someone who's still clinging to settings and techniques which haven't been good practice since the days of SQL Server 2000. &amp;nbsp;Here's an example of&amp;nbsp;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sqlops6.mspx"&gt;Microsoft SQL Server 2000 Best Practices that are very version-specific&lt;/a&gt;.&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;So here's an example. &amp;nbsp;The %Disk Time counter and the Disk Queue Length were heavily recommended as a key performance indicator for IO performance. &amp;nbsp;SQL Server throws a lot of IO at the disks using scatter/gather to maximize the utilization of the disk-based IO subsystem. &amp;nbsp;This approach leads to short bursts of long queue depths during checkpoints and readaheads for an instance of SQL Server. &amp;nbsp;Sometimes the server workload is such that your disk can't keep up with the IO shoved at it and when that happens, you'll see long queue lengths too.&amp;nbsp; The short burst scenario isn't a problem. &amp;nbsp;The lengthening queue length scenario usually is a problem. &amp;nbsp;&amp;nbsp;So is that a good practice?&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;strong&gt;In a word, not-so-much.&lt;/strong&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;Those counters can still be of some use on an instance of SQL Server which only has one hard disk drive. &amp;nbsp;But that's&amp;nbsp;&lt;em&gt;exceedingly&lt;/em&gt;&amp;nbsp;rare these days. &amp;nbsp;Why?&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;The PerfMon counter %Disk time is a bogus performance metric for several reasons. &amp;nbsp;It does not take into account&amp;nbsp;asynchronous&amp;nbsp;I/O requests. &amp;nbsp;It can't tell what the real performance profile is for an underlying&amp;nbsp;&amp;nbsp;RAID set may be, since they contain multiple disk drives. &amp;nbsp;The PerfMon counter Disk Queue Length is also mostly useless, except on SQL Server's with a single physical disk, because the hard disk controller cache obfuscates how many IO operations are actually pending on the queue or not. &amp;nbsp;In fact, some hard disks even have tiny write caches as well, which further muddies the water was to whether the IO is truly queued, in a cache somewhere between the OS and the disk, or has finally made it all the way to the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Cmos"&gt;CMOS&lt;/a&gt;&amp;nbsp;on the disk.&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;h2&gt;Better IO PerfMon Counters&lt;/h2&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;Instead of using those PerfMon counters, use the Ave Disk Reads /sec, Avg Disk Write /sec, and Avg Disk &amp;nbsp;Transfers/sec&amp;nbsp;to track the performance of disk subsystems. &amp;nbsp;These counters track the average number of read IOs, write IOs, and combined read and write IOs to occured in the last second. &amp;nbsp;Occassionally, I like to track the same metrics by volume of data rather than the rate of IO operations. &amp;nbsp;So, to get that data, you may wish to give these volume-specific PerfMon counters a try:&amp;nbsp;Avg Disk &amp;nbsp;Transfer Bytes/sec, Ave Disk Read Bytes /sec, and Avg Disk Write Bytes/sec&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;h2&gt;For SQL Server IO Performance, Use Dynamic Management Views (DMV)&lt;/h2&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;And unless you've been living in a cave, you should make sure to use SQL Server's Dynamic Management Views (DMVs) to check on IO performance for recent versions of SQL Server. &amp;nbsp;Some of my favorite DMV's for IO include:&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;ul&gt;&lt;li&gt;Sys.dm_os_wait_stats&lt;/li&gt;&lt;li&gt;Sys.dm_os_waiting_tasks&lt;/li&gt;&lt;li&gt;Sys.dm_os_performance_counters&lt;/li&gt;&lt;li&gt;Sys.dm_io_virtual_file_stats&lt;/li&gt;&lt;li&gt;Sys.dm_io_pending_io_requests&lt;/li&gt;&lt;li&gt;Sys.dm_db_index_operational_stats&lt;/li&gt;&lt;li&gt;Sys.dm_db_index_usage_stats&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;Many of these DMVs are fully document in this Books Online article here at&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187974.aspx"&gt;Microsoft SQL Server 2012&amp;nbsp;Index Related Dynamic Management Views and Functions&lt;/a&gt;.&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;So how are you tracking IO performance metrics? &amp;nbsp;Which ones are you using?&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;I look forward to hearing back from you!&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;Enjoy,&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;br&gt;&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;-Kev&lt;/div&gt;&lt;div style="font-size:13px;font-weight:normal;"&gt;&lt;p&gt;-&lt;a href="http://twitter.com/kekline"&gt;Follow me on Twitter!&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>New White Paper: SQL Server Extended Events and Notifications</title><link>http://sqlblog.com/blogs/kevin_kline/archive/2012/04/25/new-white-paper-sql-server-extended-events-and-notifications.aspx</link><pubDate>Wed, 25 Apr 2012 13:13:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:42932</guid><dc:creator>KKline</dc:creator><description>&lt;p&gt;SQL Server comes with a wide array of tools for monitoring your environment. There are logs and traces that provide information when errors occur, but these are often used passively to react to events that have already occurred. &amp;nbsp;There's PerfMon, and Profiler, and loads of Dynamic Management Views to check. &amp;nbsp;But where to look?&lt;/p&gt;&lt;p&gt;As database administrators (DBA), we need to monitor our environments proactively and create solutions as issues arise. In this white paper, we will look at a couple technologies – event notifications and extended events – that can help you achieve these goals. With these two features, we’ll look at the error log and deadlocks, and demonstrate how you can get relevant information delivered as it occurs. We’ll also look at ways that run-time errors can be captured and used to help reduce the amount of time required to investigate issues.&lt;/p&gt;&lt;p&gt;This white paper, written by SQL Server MVP Jason Strate (&lt;a title="Jason Strate's SQL Server Blog" href="http://www.jasonstrate.com/"&gt;blog&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a title="Jason Strate's Twitter Feed" href="http://twitter.com/stratesql"&gt;twitter&lt;/a&gt;), is a free download &lt;em&gt;but requires a registration&lt;/em&gt;.&amp;nbsp; &lt;a title="Microsoft SQL Server Extended Events White Paper" href="http://www.quest.com/whitepaper/how-to-use-sql-servers-extended-events-and-notifications816315.aspx"&gt;Download the Extended Events white paper here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;And, as always, I enjoy your feedback. &amp;nbsp;Thanks!&lt;/p&gt;&lt;p&gt;-Kev&lt;/p&gt;&lt;p&gt;&amp;nbsp;Follow me on&amp;nbsp;&lt;a title="Kevin Kline's Twitter Feed" href="http://twitter.com/kekline"&gt;Twitter&lt;/a&gt;!&lt;/p&gt;</description></item></channel></rss>