{"id":198,"date":"2018-10-29T00:00:00","date_gmt":"2013-01-01T00:00:00","guid":{"rendered":"https:\/\/www.sqlhammer.com\/presentation-query-tuning-without-production-data"},"modified":"2026-03-18T21:53:24","modified_gmt":"2026-03-18T21:53:24","slug":"presentation-query-tuning-without-production-data","status":"publish","type":"post","link":"https:\/\/sqlhammer.com\/index.php\/2018\/10\/29\/presentation-query-tuning-without-production-data\/","title":{"rendered":"Presentation: Query Tuning Without Production Data &#8211; SQL Hammer"},"content":{"rendered":"<p><a href=\"http:\/\/sqlhammer.com\/\/presentation-query-tuning-without-production-data\/query-tuning-without-production-data-logo\/\"><img decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sqlhammer.com\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif?resize=631%2C185\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/i1.wp.com\/sqlhammer.com\/\/wp-content\/uploads\/2016\/09\/query-tuning-without-production-data-logo.png?resize=631%2C185\" alt=\"\" \/><\/a><\/p>\n<p><strong>Track:\u00a0<\/strong>Developer \/ Performance<\/p>\n<p><strong>Level:<\/strong> 200<\/p>\n<p><strong>Abstract:<\/strong><\/p>\n<p>The DBA is constantly ringing your phone complaining about why you did not include an index to support your new stored procedure. They have full access to production and do not understand how hard it is to tune a query with an under-powered development machine and a database which is less than 1\/10th the size of the production equivalent. This session will cover query tuning techniques which will stop those phone calls and can be exercised on the worse of development environments. I will focus on query execution plan anti-patterns and faking out the optimizer.<\/p>\n<h2>Materials<\/h2>\n<ul>\n<li><a href=\"https:\/\/sqlhammer.com\/wp-content\/uploads\/2018\/01\/Query-Tuning-Without-Production-Data-20180109.zip\">Slide deck (only)<\/a><\/li>\n<\/ul>\n<ul>\n<li><a href=\"https:\/\/sqlhammer.com\/wp-content\/uploads\/2018\/01\/Query-Tuning-Without-Production-Data-20180109.zip\">Slide deck with demos (over 50 MB)<\/a><\/li>\n<\/ul>\n<h2>Conferences I have presented at<\/h2>\n<p><a href=\"http:\/\/sqlhammer.com\/\/presentation-query-tuning-without-production-data\/sqlsat619-2\/\"><img decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sqlhammer.com\/wp-content\/plugins\/a3-lazy-load\/assets\/images\/lazy_placeholder.gif?resize=300%2C176\" alt=\"\" \/><img decoding=\"async\" src=\"https:\/\/i2.wp.com\/sqlhammer.com\/\/wp-content\/uploads\/2016\/10\/sqlsat619-1-300x176.png?resize=300%2C176\" alt=\"\" \/><\/a><\/p>\n<h2>Some feedback I have received<\/h2>\n<p><em>coming soon<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Track:\u00a0Developer \/ Performance Level: 200 Abstract: The DBA is constantly ringing your phone complaining about why you did not include an index to support your new stored procedure. They have full access to production and do not understand how hard it is to tune a query with an under-powered development machine and a database which [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-198","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/198","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/comments?post=198"}],"version-history":[{"count":1,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/198\/revisions"}],"predecessor-version":[{"id":460,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/posts\/198\/revisions\/460"}],"wp:attachment":[{"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/media?parent=198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/categories?post=198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqlhammer.com\/index.php\/wp-json\/wp\/v2\/tags?post=198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}