{"id":17149,"date":"2022-03-10T08:12:09","date_gmt":"2022-03-10T07:12:09","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/"},"modified":"2025-10-01T12:01:27","modified_gmt":"2025-10-01T10:01:27","slug":"sqlbits-2022-levelling-up-my-performance-tuning-skills","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/","title":{"rendered":"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills"},"content":{"rendered":"<p>As a consultant at <a href=\"https:\/\/www.dbi-services.com\/\">dbi services<\/a>, I am lucky enough to have time dedicated to training and conferences. This week I have the chance to attend one of the most important conferences for Data professionals: <a href=\"https:\/\/sqlbits.com\/\">SQLBits 2022<\/a>.<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-54928 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg\" alt=\"\" width=\"503\" height=\"286\" \/><\/a><\/p>\n<p>The SQLBits conference is currently taking place at <a href=\"https:\/\/www.excel.london\/\">ExCel London<\/a> and features over 300 sessions over 5 days.<br \/>\nTuesday and Wednesday, the pre-conference, were dedicated to full-day training sessions. Wednesday to Thursday are the general sessions, the conference itself, the main formats being 50 minutes and 20 minutes. The Saturday is totally free to attend.<br \/>\nThe entire conference can be followed in person in London or virtually at home. I am staying away this year and will attend the 5 days.<\/p>\n<p>You can find the full agenda at <a href=\"https:\/\/arcade.sqlbits.com\/sessions\/\">https:\/\/arcade.sqlbits.com\/sessions\/<\/a><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_agenda.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-54929 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_agenda.jpg\" alt=\"\" width=\"1483\" height=\"465\" \/><\/a>As I particularly like performance topics, I naturally chose the following two training sessions<\/p>\n<ul>\n<li>Mastering Parameter Sniffing par <a href=\"https:\/\/www.brentozar.com\/\">Brent Ozar<\/a><\/li>\n<li>The Professional Performance Tuning Blueprint par <a href=\"https:\/\/www.erikdarlingdata.com\/\">Erik Darling<\/a><\/li>\n<\/ul>\n<p>In this blog post, I will share a few tips and interesting Performance-related information I noticed during these training days.<\/p>\n<h3>Mastering Parameter Sniffing<\/h3>\n<p>I don&#8217;t need to introduce you to Brent Ozar. Brent delivered a high-quality session. He has so much knowledge and stories about SQL Server that we always have something to learn from listening to him.<\/p>\n<h5 style=\"padding-left: 40px\">Comment Injection<\/h5>\n<p>One very interesting technique Brent used to circumvent parameter sniffing is what he called &#8220;Comment Injection&#8221;.<\/p>\n<p>The idea is very simple: SQL Server caches execution plan based on the query text.<br \/>\nWhen submitting the same query text twice SQL Server will reuse the plan stored in cache saving on compilation time.<br \/>\nBased on this observation, to correct a parameter sniffing problem on a query inside a stored procedure, it is possible to modify the query text according to the parameter used. Multiple query texts mean multiple execution plans.<\/p>\n<p>Here is a screenshot of such an example:<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_Comment_Injection.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-54902 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_Comment_Injection.jpg\" alt=\"\" width=\"1938\" height=\"1049\" \/><\/a> They are way more Users with Reputation value 1 than other values in the <a href=\"https:\/\/www.brentozar.com\/archive\/2015\/10\/how-to-download-the-stack-overflow-database-via-bittorrent\/\">Stack Overflow database<\/a>. The value 1 results in more data so it performs better with its own execution plan, unlike other values. Adding a comment in the query text we manage to cache 2 execution plans for the query. Pretty cool.<\/p>\n<h5 style=\"padding-left: 40px\">Memory Grant Feedback negative effect<\/h5>\n<p>Brent talked about Memory Grant Feedback (MGF) feature introduced with SQL Server 2019.<br \/>\nHe went to demo how bad query performance can be when both MGF and parameter sniffing mess with the Memory Grant estimation at runtime.<\/p>\n<p>This type of scenario can be identified by observing the minimum and maximum Memory Grant amounts from the cache plan.<br \/>\nFor example with <a href=\"https:\/\/www.brentozar.com\/blitzcache\/\">sp_BlitzCache<\/a>.<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_MemoryGrant.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-54904 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_MemoryGrant.jpg\" alt=\"\" width=\"1713\" height=\"844\" \/><\/a>This should be improved with SQL Server 2022.<\/p>\n<h5 style=\"padding-left: 40px\">Compilation time overhead<\/h5>\n<p>When discussing Parameter Sniffing we have to talk about Query Hints such as OPTION(RECOMPILE).<br \/>\nOne can wonder what is the CPU overhead of recompilation when a query is run dozens or hundreds of times per second on the server.<br \/>\nBrent did the demo using Erik Darling&#8217;s <a href=\"https:\/\/www.erikdarlingdata.com\/sp_humanevents\/\">sp_HumanEvents<\/a> to measure a Stored Procedure compilation time. It is impressively simple and effective. I&#8217;ll definitely add this tool to my troubleshooting toolbox.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">EXEC dbo.sp_HumanEvents @event_type = 'recompilations', @seconds_sample = 30;<\/pre>\n<h5 style=\"padding-left: 40px\">The maximum amount of Memory used by a query<\/h5>\n<p>Brent mentioned an interesting fact, namely that an SQL query can consume up to 25% of the \u201cMax Server Memory\u201d parameter.<br \/>\nI could not find a reference to this in the Microsoft docs but found an old article by the SQL Server Query Processor Team which is not online anymore but can be read from web.archive.org:<\/p>\n<p><a href=\"http:\/\/web.archive.org\/web\/20140218021939\/http:\/\/blogs.msdn.com\/b\/sqlqueryprocessing\/archive\/2010\/02\/16\/understanding-sql-server-memory-grant.aspx\">http:\/\/web.archive.org\/web\/20140218021939\/http:\/\/blogs.msdn.com\/b\/sqlqueryprocessing\/archive\/2010\/02\/16\/understanding-sql-server-memory-grant.aspx<\/a><\/p>\n<blockquote><p>The server calculates the memory limit for one query. By default, this is 25% (20% on 32bit SQL 2005) of total query memory (which is set by memory broker as about 90% of server memory). This per-query limit helps to prevent one query from dominating the whole server.<\/p><\/blockquote>\n<p>When SQL Server grants too much memory for a query it can result in memory pressure on the buffer pool which can be seen looking at the famous &#8220;Page life expectancy&#8221; performance counter.<\/p>\n<h5 style=\"padding-left: 40px\">Memory grant Algorithm for SELECT TOP 100 vs SELECT TOP 101<\/h5>\n<p>Brent did a demo of a high variation in performance for a query with SELECT TOP 100 vs the same query with SELECT TOP 101.<br \/>\nThe first one requested a Memory Grant of 5MB and the later 4GB.<\/p>\n<p>He wrote a blog post about this one: <a href=\"https:\/\/www.brentozar.com\/archive\/2017\/09\/much-can-one-row-change-query-plan-part-2\/\">https:\/\/www.brentozar.com\/archive\/2017\/09\/much-can-one-row-change-query-plan-part-2\/<\/a><br \/>\nReading Paul White on this topic it seems it is fixed with compatibility level 150 (SQL Server 2019): <a href=\"https:\/\/www.sql.kiwi\/2010\/08\/sorting-row-goals-and-the-top-100-problem.html\">https:\/\/www.sql.kiwi\/2010\/08\/sorting-row-goals-and-the-top-100-problem.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>The Professional Performance Tuning Blueprint<\/h3>\n<p>I was looking forward to this session with Erik Darling. Having already access to his training videos I know how the content he offers is of excellent quality.<br \/>\nUnfortunately being remote I was not lucky enough to get one of these great t-shirts. What a shame. Next time I will make sure to attend in person.<\/p>\n<p><blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">If you were thinking about coming to my <a href=\"https:\/\/twitter.com\/SQLBits?ref_src=twsrc%5Etfw\">@SQLBits<\/a> precon but needed a bribe, how about a T-shirt? <a href=\"https:\/\/t.co\/Hj9VHK7PRq\">pic.twitter.com\/Hj9VHK7PRq<\/a><\/p>&mdash; Darling Data (@erikdarlingdata) <a href=\"https:\/\/twitter.com\/erikdarlingdata\/status\/1491867302882648075?ref_src=twsrc%5Etfw\">February 10, 2022<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>Here are a few interesting points I noted during this training session.<\/p>\n<h5 style=\"padding-left: 40px\">Query Optimizer &#8220;Cost&#8221; metric<\/h5>\n<p>The Query Optimizer used today in SQL Server was mostly developed for SQL Server 7.0 in the late 90s.<br \/>\nTo compare different plan operators with each other, and choose the most profitable of them, a certain mechanism for assessing the cost of each operator was needed, some numbers.<br \/>\nThe developer responsible for this (sources say his name was Nick) took as a basis the execution time of the operation on his own machine.<br \/>\nThis is the machine we are talking about:<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_Nick_machine.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-54907 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_Nick_machine.jpg\" alt=\"\" width=\"574\" height=\"254\" \/><\/a> Thus, a plan cost of 1 meant that the optimizer estimates the execution time of a request on Nick&#8217;s machine in 1 second.<br \/>\nSome constants also went from there, for example, random access is a constant (0.003125) which is still hardcoded inside the server and is used to estimate the cost of a random access operation.<\/p>\n<p>Source: <a href=\"http:\/\/www.queryprocessor.ru\/good-enough-plan\/\">http:\/\/www.queryprocessor.ru\/good-enough-plan\/<\/a><\/p>\n<p>Back in those days, they were no SSD, no Flash storage, maybe only 2GB of memory, etc&#8230; So random I\/O was costed very highly in SQL Server because disks needed to spin, it&#8217;s an expensive thing.<br \/>\nThe issue is that SQL Server is stuck on this stuff. it assumes only physical IO, no pages on the buffer pool.<br \/>\nThat&#8217;s why the following execution plan shows a Clustered index scan for only 1600 rows instead of a Seek.<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_QueryCost_Scan.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-54895 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_QueryCost_Scan.jpg\" alt=\"\" width=\"615\" height=\"282\" \/><\/a><\/p>\n<p>This is where the Query Tuning magic comes into play helping the Query Optimizer choose in this case a better nonclustered index.<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_QueryCost_Seek.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-54896 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_QueryCost_Seek.jpg\" alt=\"\" width=\"550\" height=\"252\" \/><\/a><\/p>\n<p>Cost should not be used to compare execution plan performance anymore. More on this below.<\/p>\n<h5 style=\"padding-left: 40px\">Operator Costs vs Operator time<\/h5>\n<p>Again, Erik said a few words about the operator\u2019s costs and recommended that the operator\u2019s time be used instead when tuning queries.<br \/>\nAll &#8220;Costs&#8221; we see in Execution plans are estimates. Erik calls them &#8220;Query bucks&#8221;.<\/p>\n<p>Don&#8217;t focus too much on Cost:<\/p>\n<ul>\n<li>You can have very high cost queries that finish very quickly.<\/li>\n<li>You can have a low cost query that is very slow (caused by parameter sniffing for example).<\/li>\n<\/ul>\n<p>Stop looking at Cost. Start looking at Operator time.<br \/>\nStop tuning queries on Estimated plans. Run the query, get the actual plan, look at the operator time.<\/p>\n<h5 style=\"padding-left: 40px\">Missing index recommendations<\/h5>\n<p>It&#8217;s always good to remind that missing index recommendations we can find in Execution plans should not be created blindly.<br \/>\nA recommendation with a &#8220;95% impact&#8221; on a query running in 10 milliseconds will not make much difference for users.<\/p>\n<p>More on this topic here for example https:\/\/www.erikdarlingdata.com\/sql-server\/dealing-with-wide-missing-index-requests\/<\/p>\n<h5 style=\"padding-left: 40px\">Query Store and plan forcing will fix all performance issues<\/h5>\n<p>Nope. We can force a specific plan for a query using the Query Store feature.<br \/>\nBut, as Erik said: &#8220;..what if you don&#8217;t have a good plan to force ?&#8221;<br \/>\nYou need to fix it yourself, with query tuning techniques.<\/p>\n<h5 style=\"padding-left: 40px\">Query rewriting<\/h5>\n<p>Erik demonstrated some really cool techniques of query tuning.<\/p>\n<p>Rewriting parts of the code so SQL Server takes it as a cue to perform rows filtering early in the execution plan reducing the overall execution time of the query.<br \/>\nHere using a Self Join, the p1 alias does all the filtering, the p2 alias does the display :<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SelfJoin.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-54918 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SelfJoin.jpg\" alt=\"\" width=\"1161\" height=\"787\" \/><\/a><\/p>\n<p>Or rewriting a query using a Function twice in the WHERE clause by using a CROSS APPLY. The function is then executed only once for the query instead of twice for every row.<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/blog_27_CrossApply.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-54920 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/blog_27_CrossApply.jpg\" alt=\"\" width=\"675\" height=\"398\" \/><\/a><\/p>\n<p>The whole session by Erik was full demos of very interesting techniques to improve query performance with topics like query rewrites, batch mode, how to design indexes, table variables, functions, CTE, etc.<br \/>\nWe were provided with all the demonstration scripts. I will have to spend a couple of weeks working on that to fully understand it.<\/p>\n<h4>Conclusion<\/h4>\n<p>I already learned so many things in the first two days of SQLBits. It really is a must for Microsoft data professionals.<br \/>\nI recommend attending the full-day training sessions, you&#8217;ll learn new things from top experts.<br \/>\nIf you didn&#8217;t register for the sessions today or on Friday, don&#8217;t miss out on the totally free Saturday.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-54897 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits.jpg\" alt=\"\" width=\"1560\" height=\"896\" \/><\/a><\/p>\n\n\n<p>Written by <a href=\"https:\/\/www.linkedin.com\/in\/steven-naudet-aa540158\/\">Steven Naudet<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As a consultant at dbi services, I am lucky enough to have time dedicated to training and conferences. This week I have the chance to attend one of the most important conferences for Data professionals: SQLBits 2022. The SQLBits conference is currently taking place at ExCel London and features over 300 sessions over 5 days. [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[99],"tags":[49,67,51,2514],"type_dbi":[],"class_list":["post-17149","post","type-post","status-publish","format-standard","hentry","category-sql-server","tag-microsoft","tag-performance","tag-sql-server","tag-sqlbits"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQLBits 2022 \u2013 Levelling up my Performance Tuning skills - dbi Blog<\/title>\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.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills\" \/>\n<meta property=\"og:description\" content=\"As a consultant at dbi services, I am lucky enough to have time dedicated to training and conferences. This week I have the chance to attend one of the most important conferences for Data professionals: SQLBits 2022. The SQLBits conference is currently taking place at ExCel London and features over 300 sessions over 5 days. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-10T07:12:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T10:01:27+00:00\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. 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.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills\",\"datePublished\":\"2022-03-10T07:12:09+00:00\",\"dateModified\":\"2025-10-01T10:01:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/\"},\"wordCount\":1516,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg\",\"keywords\":[\"Microsoft\",\"Performance\",\"SQL Server\",\"SQLBits\"],\"articleSection\":[\"SQL Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/\",\"name\":\"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg\",\"datePublished\":\"2022-03-10T07:12:09+00:00\",\"dateModified\":\"2025-10-01T10:01:27+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills - dbi Blog","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.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/","og_locale":"en_US","og_type":"article","og_title":"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills","og_description":"As a consultant at dbi services, I am lucky enough to have time dedicated to training and conferences. This week I have the chance to attend one of the most important conferences for Data professionals: SQLBits 2022. The SQLBits conference is currently taking place at ExCel London and features over 300 sessions over 5 days. [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/","og_site_name":"dbi Blog","article_published_time":"2022-03-10T07:12:09+00:00","article_modified_time":"2025-10-01T10:01:27+00:00","author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills","datePublished":"2022-03-10T07:12:09+00:00","dateModified":"2025-10-01T10:01:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/"},"wordCount":1516,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg","keywords":["Microsoft","Performance","SQL Server","SQLBits"],"articleSection":["SQL Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/","url":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/","name":"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg","datePublished":"2022-03-10T07:12:09+00:00","dateModified":"2025-10-01T10:01:27+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/03\/Blog_27_SQLBits_small.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sqlbits-2022-levelling-up-my-performance-tuning-skills\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQLBits 2022 \u2013 Levelling up my Performance Tuning skills"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=17149"}],"version-history":[{"count":2,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17149\/revisions"}],"predecessor-version":[{"id":40616,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17149\/revisions\/40616"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=17149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=17149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=17149"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=17149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}