{"id":793,"date":"2020-05-13T14:05:00","date_gmt":"2020-05-13T14:05:00","guid":{"rendered":"https:\/\/www.sequallity.co.uk\/?p=793"},"modified":"2020-05-14T09:44:29","modified_gmt":"2020-05-14T09:44:29","slug":"top-10-sql-server-performance-tuning-tips","status":"publish","type":"post","link":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/","title":{"rendered":"Top 10 SQL Server Performance Tuning Tips"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Top 10 SQL Server Performance Tuning Tips for On-Premises and Virtualised SQL Servers<\/h2>\n\n\n\n<p>I have been thinking recently about what is the most effective changes you can make to a SQL Server system and subsequently how these changes rank for importance. Maybe it\u2019s all those <a href=\"https:\/\/www.youtube.com\">Youtube<\/a> videos I watch, so here are our Top 10 SQL Performance Tuning tips in reverse order&#8230;<\/p>\n\n\n\n<p>It\u2019s a tough call because let\u2019s say missing indexes is the number one villain for one SQL Server system. But for another SQL solution, the indexes could be entirely appropriate and reviewed after each new release of the app and the database. So, it\u2019s not the number 1 suspect in this case, however, in general I\u2019m going to have to say that maybe, just maybe, adding your missing indexes could bring the most overall improvement to your slow SQL Server systems. Plus, there\u2019s one other approach which really boosts the SQL queries and that\u2019s not even in the list.&nbsp; This list details the properties you can change, more easily.<\/p>\n\n\n\n<p>In our time, <a href=\"https:\/\/www.sequallity.co.uk\">Sequallity<\/a> have <a href=\"https:\/\/www.sequallity.co.uk\/sql-server-health-check\">health checked<\/a> many SQL Servers. I couldn\u2019t tell you exactly how many but it\u2019s probably in the hundreds to thousands, as just one client in the past had well over 250 SQL Servers. Someone joked they saw a SQL Server in the coffee machine. Would that be Expresso edition?<\/p>\n\n\n\n<p>The way that I decided which was the superior tip was by running a bubble sort on the two tips, for example, hmmm, would I rather add missing statistics or fix deadlocking in general\u2026So a really nerdy SQL game of Would You Rather?<\/p>\n\n\n\n<p>So, let\u2019s get on with it and of course, let\u2019s do it like they do on the internet in reverse countdown order\u2026definitely too much Youtube\u2026<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" width=\"684\" height=\"238\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number10.jpg\" alt=\"SQL Performance Tips Number 10\" class=\"wp-image-808 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number10.jpg 684w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number10-300x104.jpg 300w\" data-sizes=\"(max-width: 684px) 100vw, 684px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 684px; --smush-placeholder-aspect-ratio: 684\/238;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">10. Maintenance &#8211; Missing Statistics<\/h2>\n\n\n\n<p>I learned this years ago, it\u2019s a nice little trick.&nbsp; I call this Missing Statistics and no one has told me off yet! Please don\u2019t <a href=\"https:\/\/www.microsoft.com\">Microsoft<\/a>, I mean well.<\/p>\n\n\n\n<p>All compound indexes only use the first column in the statistic histogram.&nbsp; What sp_createstats, the \u2018indexonly\u2019 flavour does is add statistics for secondary and subsequent columns (in indexes) where they don\u2019t exist. So the Query Optimizer has got a much better shot at getting a plan right and by using the correct indexes.&nbsp; It\u2019s a no-brainer.<\/p>\n\n\n\n<p>sp_createstats \u201ccreate single-column statistics on columns that are not already the first column in a statistics object. Creating single-column statistics increases the number of histograms, which can improve cardinality estimates, query plans, and query performance. The first column of a statistics object has a histogram; other columns do not have a histogram.\u201d<\/p>\n\n\n\n<p>Check out <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/system-stored-procedures\/sp-createstats-transact-sql?view=sql-server-ver15\">sp_createstats<\/a>&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"692\" height=\"217\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number9.jpg\" alt=\"SQL Performance Tips Number 9\" class=\"wp-image-807 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number9.jpg 692w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number9-300x94.jpg 300w\" data-sizes=\"(max-width: 692px) 100vw, 692px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 692px; --smush-placeholder-aspect-ratio: 692\/217;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">9. Server Status &#8211; Deadlocks<\/h2>\n\n\n\n<p>On the whole I\u2019d say deadlocks aren\u2019t a problem.&nbsp; But, sometimes they can be hideous. I once saw an <a href=\"https:\/\/www.oracle.com\">Oracle<\/a> system ported to SQL code (yes literally, ported, line-by-line) and it suffered terrible deadlocks, there were literally hundreds.&nbsp; To overcome the majority of the issues, we enabled the snapshot isolation in SQL Server where writers don\u2019t block readers.&nbsp; It really helped though it didn\u2019t cure all of the problems (Oracle has a different locking mechanism) and then we cherry-picked what was left and worked on those.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"724\" height=\"205\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number8.jpg\" alt=\"SQL Performance Tips Number 8\" class=\"wp-image-806 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number8.jpg 724w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number8-300x85.jpg 300w\" data-sizes=\"(max-width: 724px) 100vw, 724px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 724px; --smush-placeholder-aspect-ratio: 724\/205;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">8. Server Status &#8211; Blocking<\/h2>\n\n\n\n<p>Now blocking happens much more than deadlocking, this is where queries are holding up other queries. They will run, they\u2019re just being held at the starting blocks.&nbsp; This can be for a variety of reasons and can include inappropriate locking mechanisms deployed. When I was younger (much younger), many years ago, I saw that an Service Pack fix of Microsoft said basically using NOLOCK brought back incorrect rows and using READ COMMITTED brought back incorrect rows. Shoot. I can\u2019t win. Not only has my code got to be right, sometimes the Engine can be occasionally wrong too. It\u2019s a good ancillary point, don\u2019t always assume you\u2019re to blame.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"728\" height=\"211\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number7-2.jpg\" alt=\"SQL Performance Tips Number 7\" class=\"wp-image-809 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number7-2.jpg 728w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number7-2-300x87.jpg 300w\" data-sizes=\"(max-width: 728px) 100vw, 728px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 728px; --smush-placeholder-aspect-ratio: 728\/211;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">7. Server Configuration &#8211; TempDB<\/h2>\n\n\n\n<p>Now luckily, in latter versions of SQL Server, this is taken care of but if you\u2019re on anything up to SQL Server 2014 and you don\u2019t have a DBA or a DBA-aware developer, then your TempDB may not be not configured correctly.&nbsp; This includes having multiple data files plus all of them need to be the same size, and trace flags 1117 and trace flags 1118 should be enabled globally or considered.<\/p>\n\n\n\n<p>I\u2019d say typically I find that TempDB is hammered more than any other user database and setting it up optimally encourages sterling cross-server performance.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"713\" height=\"232\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number6.jpg\" alt=\"SQL Performance Tips Number 6\" class=\"wp-image-803 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number6.jpg 713w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number6-300x98.jpg 300w\" data-sizes=\"(max-width: 713px) 100vw, 713px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 713px; --smush-placeholder-aspect-ratio: 713\/232;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">6. Server Status &#8211; Power Options<\/h2>\n\n\n\n<p>Unfortunately, Windows has the default power option set to Balanced.&nbsp; This is good to save the environment and power usage.&nbsp; For SQL Servers &#8211; this is not good.&nbsp; As SQL Server handles multiple queries simultaneously, any damping down effect of the CPUs is really bad for overall performance.&nbsp; This would be the same for other servers too, guests and hosts in Virtual environments. Plus your Exchange server, if it\u2019s still on-premises. Even desktops and laptops improve with these changes. Check out the Windows Counter, % Performance Limit in Processor Information.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"696\" height=\"211\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number5.jpg\" alt=\"SQL Performance Tips Number 5\" class=\"wp-image-802 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number5.jpg 696w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number5-300x91.jpg 300w\" data-sizes=\"(max-width: 696px) 100vw, 696px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 696px; --smush-placeholder-aspect-ratio: 696\/211;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">5. Maintenance &#8211; Reindexing<\/h2>\n\n\n\n<p>I always say in the <a href=\"https:\/\/www.sequallity.co.uk\/sql-server-training\/\">SQL Server training courses<\/a> we deliver, if I had to choose between updating statistics and reindexing tables which would I prefer? I know this is a strange, dystopian world whereby choice is limited. When the push correlates with the shove, it would always be to update those statistics.&nbsp; With up-to-date statistics, the Query Optimizer chooses optimal plans and you are getting the best out of the SQL Server. Reindexing can happen, weekly, monthly or quarterly.&nbsp; There\u2019s no real need to reindex nightly.&nbsp; But, and there always is a but, if you have the window of overnight opportunity then I say, go for it (unless you\u2019re going to destroy your SSDs, don\u2019t do dat, as Arnie would say)<\/p>\n\n\n\n<p>If you don\u2019t have that luxury and you need management of your reindexing strategy then you need a different tack altogether. Maybe a bespoke script.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"670\" height=\"192\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number4.jpg\" alt=\"SQL Performance Tips Number 4\" class=\"wp-image-801 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number4.jpg 670w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number4-300x86.jpg 300w\" data-sizes=\"(max-width: 670px) 100vw, 670px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 670px; --smush-placeholder-aspect-ratio: 670\/192;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">4. Server Configuration &#8211; &nbsp;Parallelism<\/h2>\n\n\n\n<p>OK, this is one of those default ones too\u2026the default for Cost Threshold for Parallelism (CTFP) and MaxDOP are both incorrect by default.&nbsp; Now in SQL Server 2019, you can change the memory and the CTFP during the install, about time too!<\/p>\n\n\n\n<p>When queries parallelise, they can be much quicker as more threads are helping solve the query.&nbsp; Small queries may well suffer because when a query is parallelised, the results are then glued back together and this gluing can add overhead with waiting as some threads will take their time.&nbsp; I have seen this in action with queries taking 11 seconds, dropping down to 0.5 seconds.&nbsp; It\u2019s amazing.<\/p>\n\n\n\n<p>MaxDop should be changed to 4 or 8 to match the cores and query profiles and CTFP should be set to 30, 50, 120 or whatever matches your server work. This could consist of lots of small fast queries, lots of long, intensive queries or a mixture of both.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"689\" height=\"246\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number3.jpg\" alt=\"SQL Performance Tips Number 3\" class=\"wp-image-800 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number3.jpg 689w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number3-300x107.jpg 300w\" data-sizes=\"(max-width: 689px) 100vw, 689px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 689px; --smush-placeholder-aspect-ratio: 689\/246;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">3. Server Configuration &#8211; Memory<\/h2>\n\n\n\n<p>If this is not set and left at the default, Windows could be squeezed out by SQL Server.&nbsp; Don\u2019t let SQL bully Windows, keep SQL in check by setting the Max Memory Setting in Server Properties &#8211; Memory.<\/p>\n\n\n\n<p>Be aware however that from SQL 2012 onwards this figure refers to data buffer only (basically table and index structures).&nbsp; This means that SQL Server will defintely use more memory than this.&nbsp; As a rough estimate choose half the amount of RAM you allocate to the data buffers.&nbsp; There is always a sweet spot and with more Server Analysis, you can dial this up and down until you\u2019ve hit that most sweetest of sweet spots.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"691\" height=\"206\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number2.jpg\" alt=\"SQL Performance Tips Number 2\" class=\"wp-image-799 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number2.jpg 691w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number2-300x89.jpg 300w\" data-sizes=\"(max-width: 691px) 100vw, 691px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 691px; --smush-placeholder-aspect-ratio: 691\/206;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">2. Maintenance \u2013 Statistics<\/h2>\n\n\n\n<p>Ahhhh, the smell of freshly updated statistics, can you smell that?&nbsp; The Query Optimizer is finding everything a breeze as the statistics are telling it accurately about the tables in the database and how they\u2019re constituted. Something like that, or statistics reveal the number of rows and the uniqueness of data or not. I\u2019ve always loved up-to-date statistics.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"684\" height=\"203\" data-src=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number1.jpg\" alt=\"SQL Performance Tips Number 1\" class=\"wp-image-796 lazyload\" data-srcset=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number1.jpg 684w, https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number1-300x89.jpg 300w\" data-sizes=\"(max-width: 684px) 100vw, 684px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 684px; --smush-placeholder-aspect-ratio: 684\/203;\" \/><\/figure>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">1. Missing Indexes<\/h2>\n\n\n\n<p>Indexes make SQL Server faster.&nbsp; 1000s of percent faster (possibly).&nbsp; This isn\u2019t always the case, but on systems with absent or missing indexes, they need to be added. I&#8217;m talking about the ones suggested by the Missing Index DMVs plus the ones you capture by analysing the queries (but this takes a lot longer).<\/p>\n\n\n\n<p class=\"has-text-align-center\">Say I\u2019m your Number One, Missing Indexes!<\/p>\n\n\n\n<p>So there we have it, &#8216;Add your missing indexes&#8217; is Top of the SQL Server Performance Pops.<\/p>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">Top 10 SQL Server Performance Tuning Tips Honourable Mentions<\/h2>\n\n\n\n<p>Just outside the Top 40\u2026OK, I said Top 10 and now I\u2019m blathering on about Top 40&#8230;<\/p>\n\n\n\n<p>Query Reworking \u2013 Sometimes this is a last resort and cannot be done at all but sometimes it can and boy, can you get massive improvements with this.&nbsp; For our clients, we\u2019ve got queries taking 15 minutes down to 45 seconds and then some\u2026 We really enjoy doing this. There\u2019s Death by a Thousand Cuts or there\u2019s Query Repetition due to badly behaving applications\u2026there are all sorts in here.<\/p>\n\n\n\n<p>Resource Waits \u2013 This tells you what is causing the most WAIT time on your SQL Server, it may be something to cogitate over or maybe something to celebrate over but bottom line, it may need some further investigation there Columbo, if there is just something you don&#8217;t understand.<\/p>\n\n\n\n<p>Optimize for Ad-Hoc SQL &#8211; this tells SQL to reclaim space from the procedure cache for memory hungry single-use plans. Saves some critical memory for data, which ain&#8217;t bad.<\/p>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">Top 10 SQL Server Performance Tuning Tips Conclusions<\/h2>\n\n\n\n<p>To be fair, I changed the order this Top 10 SQL Server Performance Tuning Tips even as I posted it. Maybe there isn&#8217;t a special button you can push to make a slow SQL Server go faster, but if you approach it in a methodical way, analysing, investigating and testing before implementation, you&#8217;ll go a long way to performance tuning your slow SQL Server.<\/p>\n\n\n\n<h2 class=\"has-text-align-center wp-block-heading\">Top 10 SQL Server Performance Tuning Tips Script<\/h2>\n\n\n\n<p>And lo and behold, we&#8217;ve developed a script to run just this check here at <a href=\"https:\/\/www.sequallity.co.uk\/find-the-top-10-sql-server-performance-problems\/\"><strong><em>Find the Top 10 SQL Server Performance Problems<\/em><\/strong><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Top 10 SQL Server Performance Tuning Tips for On-Premises and Virtualised SQL Servers I have been thinking recently about what is the most effective changes you can make to a SQL Server system and subsequently how these changes rank for importance. Maybe it\u2019s all those Youtube videos I watch, so here are our Top 10 SQL Performance Tuning tips in reverse order&#8230; It\u2019s a tough call because let\u2019s say missing<\/p>\n<div class=\"read-more\"><a class=\"btn read-more-btn\" href=\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/\">Read More<\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[715,716],"tags":[718,717],"class_list":["post-793","post","type-post","status-publish","format-standard","hentry","category-sql-server-performance-tuning","category-sql-server-tips","tag-sql-server-top-10-tips","tag-top-10-tips"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.8 (Yoast SEO v20.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Top 10 SQL Server Performance Tuning Tips for On-Premise\/Virtualised<\/title>\n<meta name=\"description\" content=\"Our Top 10 SQL Server Performance Tuning Tips for on-premise or virtualised SQL Servers. Tips to improve your slow SQL Servers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Top 10 SQL Server Performance Tuning Tips\" \/>\n<meta property=\"og:description\" content=\"Our Top 10 SQL Server Performance Tuning Tips for on-premise or virtualised SQL Servers. Tips to improve your slow SQL Servers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL Server Consultancy and SQL Server Training\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Sequallity-Ltd-437772140011198\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-13T14:05:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-14T09:44:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number10.jpg\" \/>\n<meta name=\"author\" content=\"John Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sequallity\" \/>\n<meta name=\"twitter:site\" content=\"@sequallity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/\"},\"author\":{\"name\":\"John Parker\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/person\/a607249919447f52446059e05c32ae4f\"},\"headline\":\"Top 10 SQL Server Performance Tuning Tips\",\"datePublished\":\"2020-05-13T14:05:00+00:00\",\"dateModified\":\"2020-05-14T09:44:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/\"},\"wordCount\":1742,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#organization\"},\"keywords\":[\"SQL Server Top 10 Tips\",\"Top 10 Tips\"],\"articleSection\":[\"SQL Server Performance Tuning\",\"SQL Server Tips\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/\",\"url\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/\",\"name\":\"Top 10 SQL Server Performance Tuning Tips for On-Premise\/Virtualised\",\"isPartOf\":{\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#website\"},\"datePublished\":\"2020-05-13T14:05:00+00:00\",\"dateModified\":\"2020-05-14T09:44:29+00:00\",\"description\":\"Our Top 10 SQL Server Performance Tuning Tips for on-premise or virtualised SQL Servers. Tips to improve your slow SQL Servers.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server Performance Tuning\",\"item\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/sql-server-performance-tuning\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Top 10 SQL Server Performance Tuning Tips\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#website\",\"url\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/\",\"name\":\"SQL Server Consultancy and SQL Server Training\",\"description\":\"where SQL and Quality join...\",\"publisher\":{\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#organization\",\"name\":\"Sequallity Limited\",\"url\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2018\/09\/Sequality_Logo_Blue-Cyan-Blend_Large.jpg\",\"contentUrl\":\"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2018\/09\/Sequality_Logo_Blue-Cyan-Blend_Large.jpg\",\"width\":800,\"height\":229,\"caption\":\"Sequallity Limited\"},\"image\":{\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Sequallity-Ltd-437772140011198\/\",\"https:\/\/twitter.com\/sequallity\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/person\/a607249919447f52446059e05c32ae4f\",\"name\":\"John Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a7f67ba401f89da69efc12c5309f35c08d867db69cddc738a4ab325da67106c3?s=96&d=monsterid&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a7f67ba401f89da69efc12c5309f35c08d867db69cddc738a4ab325da67106c3?s=96&d=monsterid&r=g\",\"caption\":\"John Parker\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Top 10 SQL Server Performance Tuning Tips for On-Premise\/Virtualised","description":"Our Top 10 SQL Server Performance Tuning Tips for on-premise or virtualised SQL Servers. Tips to improve your slow SQL Servers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/","og_locale":"en_GB","og_type":"article","og_title":"Top 10 SQL Server Performance Tuning Tips","og_description":"Our Top 10 SQL Server Performance Tuning Tips for on-premise or virtualised SQL Servers. Tips to improve your slow SQL Servers.","og_url":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/","og_site_name":"SQL Server Consultancy and SQL Server Training","article_publisher":"https:\/\/www.facebook.com\/Sequallity-Ltd-437772140011198\/","article_published_time":"2020-05-13T14:05:00+00:00","article_modified_time":"2020-05-14T09:44:29+00:00","og_image":[{"url":"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2020\/04\/Number10.jpg"}],"author":"John Parker","twitter_card":"summary_large_image","twitter_creator":"@sequallity","twitter_site":"@sequallity","twitter_misc":{"Written by":"John Parker","Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/#article","isPartOf":{"@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/"},"author":{"name":"John Parker","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/person\/a607249919447f52446059e05c32ae4f"},"headline":"Top 10 SQL Server Performance Tuning Tips","datePublished":"2020-05-13T14:05:00+00:00","dateModified":"2020-05-14T09:44:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/"},"wordCount":1742,"commentCount":0,"publisher":{"@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#organization"},"keywords":["SQL Server Top 10 Tips","Top 10 Tips"],"articleSection":["SQL Server Performance Tuning","SQL Server Tips"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/","url":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/","name":"Top 10 SQL Server Performance Tuning Tips for On-Premise\/Virtualised","isPartOf":{"@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#website"},"datePublished":"2020-05-13T14:05:00+00:00","dateModified":"2020-05-14T09:44:29+00:00","description":"Our Top 10 SQL Server Performance Tuning Tips for on-premise or virtualised SQL Servers. Tips to improve your slow SQL Servers.","breadcrumb":{"@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/top-10-sql-server-performance-tuning-tips\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/"},{"@type":"ListItem","position":2,"name":"SQL Server Performance Tuning","item":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/sql-server-performance-tuning\/"},{"@type":"ListItem","position":3,"name":"Top 10 SQL Server Performance Tuning Tips"}]},{"@type":"WebSite","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#website","url":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/","name":"SQL Server Consultancy and SQL Server Training","description":"where SQL and Quality join...","publisher":{"@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#organization","name":"Sequallity Limited","url":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/logo\/image\/","url":"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2018\/09\/Sequality_Logo_Blue-Cyan-Blend_Large.jpg","contentUrl":"https:\/\/www.sequallity.co.uk\/wp-content\/uploads\/2018\/09\/Sequality_Logo_Blue-Cyan-Blend_Large.jpg","width":800,"height":229,"caption":"Sequallity Limited"},"image":{"@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Sequallity-Ltd-437772140011198\/","https:\/\/twitter.com\/sequallity"]},{"@type":"Person","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/person\/a607249919447f52446059e05c32ae4f","name":"John Parker","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a7f67ba401f89da69efc12c5309f35c08d867db69cddc738a4ab325da67106c3?s=96&d=monsterid&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a7f67ba401f89da69efc12c5309f35c08d867db69cddc738a4ab325da67106c3?s=96&d=monsterid&r=g","caption":"John Parker"}}]}},"_links":{"self":[{"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/posts\/793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/comments?post=793"}],"version-history":[{"count":15,"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/posts\/793\/revisions"}],"predecessor-version":[{"id":940,"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/posts\/793\/revisions\/940"}],"wp:attachment":[{"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/media?parent=793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/categories?post=793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sequallity.co.uk\/sql-server-consultancy\/wp-json\/wp\/v2\/tags?post=793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}