{"id":230,"date":"2011-05-25T11:36:57","date_gmt":"2011-05-25T11:36:57","guid":{"rendered":"http:\/\/www.sitekickr.com\/blog\/?p=230"},"modified":"2011-05-25T11:36:57","modified_gmt":"2011-05-25T11:36:57","slug":"chunky-sql-querie","status":"publish","type":"post","link":"https:\/\/www.sitekickr.com\/blog\/chunky-sql-querie\/","title":{"rendered":"Make those SQL queries chunky"},"content":{"rendered":"<div>I&#39;m by no means saying that my tests below are evidence enough to support the case for &quot;chunky&quot; SQL queries. By chunky, I mean queries that leverage subqueries (like the first example below) to bring in more data.<\/div>\n<div>&nbsp;<\/div>\n<div>The execution times below however, supports chunky queries in every way.<\/div>\n<div>&nbsp;<\/div>\n<ul>\n<li>Faster &#8211; surprisingly<br \/>\n\t\tI would have expected the extra level of complexity to add some execution time. Quite the opposite.<\/li>\n<li>Fewer queries<\/li>\n<li>Simplified script code to process the queries<\/li>\n<\/ul>\n<p>What amazed me most about the execution times below is that the chunky query actually ran faster than the subquery within it.<\/p>\n<div>&nbsp;<\/div>\n<h3>Chunky Query (with subquery)<\/h3>\n<div><code><span class=\"syntax\"><span class=\"syntax_alpha syntax_alpha_reservedWord\">SELECT<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">id<\/span><span class=\"syntax_punct syntax_punct_listsep\">,<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">firstname<\/span><span class=\"syntax_punct syntax_punct_listsep\">,<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">lastname<\/span><span class=\"syntax_punct syntax_punct_listsep\">,<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">company<\/span><\/span>, <br \/>\n\t<\/code><\/div>\n<div><code><span class=\"syntax_alpha syntax_alpha_reservedWord\">&nbsp; (SELECT<\/span> <span class=\"syntax_alpha syntax_alpha_functionName\">sum<\/span><span class=\"syntax_punct syntax_punct_bracket_open_round\">(<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">price<\/span> <span class=\"syntax_punct\">*<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">quantity<\/span> <span class=\"syntax_punct syntax_punct_bracket_close_round\">)<\/span><br \/>\n\t&nbsp;&nbsp; <span class=\"syntax_alpha syntax_alpha_reservedWord\">FROM<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">order_items<\/span><span class=\"syntax_alpha syntax_alpha_reservedWord\"><br \/>\n\t&nbsp;&nbsp; WHERE<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">orders_id<\/span> <span class=\"syntax_punct\">=<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">id<\/span><span class=\"syntax\"><span class=\"syntax_punct syntax_punct_bracket_open_round\"> <\/span><span class=\"syntax_punct syntax_punct_bracket_close_round\">)<\/span> <span class=\"syntax_alpha syntax_alpha_reservedWord\">AS<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">subtotal<\/span><\/span><br \/>\n\t<span class=\"syntax_alpha syntax_alpha_reservedWord\">FROM<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">orders<\/span><br \/>\n\t<span class=\"syntax_alpha syntax_alpha_reservedWord\"><br \/>\n\t<\/span>  <\/code><\/div>\n<div>Query took 0.0255 sec<\/div>\n<div>&nbsp;<\/div>\n<h3>Two Queries to achieve the same data<\/h3>\n<div><code><span class=\"syntax\"><span class=\"syntax_alpha syntax_alpha_reservedWord\">SELECT<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">id<\/span><span class=\"syntax_punct syntax_punct_listsep\">,<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">firstname<\/span><span class=\"syntax_punct syntax_punct_listsep\">,<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">lastname<\/span><span class=\"syntax_punct syntax_punct_listsep\">,<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">company<\/span><\/span><br \/>\n\t<span class=\"syntax_alpha syntax_alpha_reservedWord\">FROM<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">orders<\/span><\/code><\/div>\n<div>&nbsp;<\/div>\n<div>Query took 0.0007 sec<\/div>\n<div>&nbsp;<\/div>\n<div>&nbsp;<\/div>\n<div><code><span class=\"syntax_alpha syntax_alpha_reservedWord\">SELECT<\/span> <span class=\"syntax_alpha syntax_alpha_functionName\">sum<\/span><span class=\"syntax_punct syntax_punct_bracket_open_round\">(<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">price<\/span> <span class=\"syntax_punct\">*<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">quantity<\/span> <span class=\"syntax_punct syntax_punct_bracket_close_round\">)<\/span><br \/>\n\t<span class=\"syntax_alpha syntax_alpha_reservedWord\">FROM<\/span> <span class=\"syntax_alpha syntax_alpha_identifier\">order_items<\/span><span class=\"syntax_alpha syntax_alpha_reservedWord\"><br \/>\n\t<\/span><\/code><\/div>\n<div><code><br \/>\n\t<\/code><\/div>\n<div>Query took 0.0259 sec<\/div>\n<div>&nbsp;<\/div>\n<div>Total: 0.0266 sec<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I&#39;m by no means saying that my tests below are evidence enough to support the case for &quot;chunky&quot; SQL queries. By chunky, I mean queries&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"amp_status":""},"categories":[41,13],"tags":[],"_links":{"self":[{"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/posts\/230"}],"collection":[{"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/comments?post=230"}],"version-history":[{"count":1,"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/posts\/230\/revisions"}],"predecessor-version":[{"id":231,"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/posts\/230\/revisions\/231"}],"wp:attachment":[{"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/media?parent=230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/categories?post=230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sitekickr.com\/blog\/wp-json\/wp\/v2\/tags?post=230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}