<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=koi8-r"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Gulim;
        panose-1:2 11 6 0 0 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@Gulim";
        panose-1:2 11 6 0 0 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;
        mso-fareast-language:KO;}
h4
        {mso-style-priority:9;
        mso-style-link:"Heading 4 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Arial",sans-serif;
        color:black;
        font-weight:bold;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Gulim",sans-serif;
        color:windowtext;
        mso-fareast-language:KO;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.Heading4Char
        {mso-style-name:"Heading 4 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 4";
        font-family:"Arial",sans-serif;
        color:black;
        font-weight:bold;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Hi Marty,<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>We found an issue with constraints and QEP some time ago.<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Defining constraints seemed to destroy the performance of selected selects.<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>They tracked it down to fault in the greedy optimizer.<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:12.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:EN-GB'>Bug 132120 (GENERIC)<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:10.0pt;font-family:"Arial",sans-serif;color:black;mso-fareast-language:EN-GB'>Greedy enumeration omits useful indexes for query with outer join. <o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>You don’t seem to have the same thing but it does smell similar – if you switch of greedy optimisation do you still get it?<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Cheers<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Adrian<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US>From:</span></b><span lang=EN-US> info-ingres-bounces@lists.planetingres.org <info-ingres-bounces@lists.planetingres.org> <b>On Behalf Of </b>Martin Bowes<br><b>Sent:</b> 12 March 2018 11:44<br><b>To:</b> info-ingres@lists.planetingres.org<br><b>Subject:</b> [Info-ingres] Adding a constraint constrained my row estimate<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hi All,<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>On Ingres 11. 0.0 (a64.lnx/100) + p15255<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Here is the QEP with no constraint between the tables.<o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>QUERY PLAN 3,2, no timeout, of simple aggregate </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> aggregate expression -> count(*) </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> K Join(basket_id,</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> item_type)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Tups 641 Pages 1</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> D9 C2</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> / \</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Proj-rest basket_item</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Sorted(basket_id) (x)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Tups 2 Pages 1 B-Tree(basket_id,</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> D4 C0 item_type)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Tups 1454547 Pages 22752</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>/</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>basket_main</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>(m)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>B-Tree(basket_id)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>Tups 3596 Pages 18</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal>********************************************************************<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>‚€€€€€€€€€€€€€ƒ</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>col1 </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>†€€€€€€€€€€€€€‡</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>********************************************************************</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ----------</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> | 0|</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> KJOIN </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> at 330</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> et 641 </span><span style='font-family:Wingdings'>ß</span><span style='font-family:"Courier New"'>A little over, but ball park.</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ad 6</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ed 9</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ac 0</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ec 225</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> et 0</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ----------</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>/</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal>And after adding a constraint for basket_item(basket_id) to refer to basket_main(basket_id)<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>QUERY PLAN 3,2, no timeout, of simple aggregate </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> aggregate expression -> count(*) </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> K Join(basket_id,</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> item_type)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Tups 1 Pages 1</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> D8 C2</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> / \</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Proj-rest basket_item</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Sorted(basket_id) (x)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Tups 2 Pages 1 B-Tree(basket_id,</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> D4 C0 item_type)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> Tups 1454547 Pages 22752</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>/</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>basket_main</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>(m)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>B-Tree(basket_id)</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>Tups 3596 Pages 18</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>********************************************************************</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>‚€€€€€€€€€€€€€ƒ</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>col1 </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>†€€€€€€€€€€€€€‡</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>********************************************************************</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ----------</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> | 0|</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> KJOIN </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> at 330</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> et 1 </span><span style='font-family:Wingdings'>ß</span><span style='font-family:"Courier New"'> What the hell just happened?</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ad 6</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ed 8</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ac 0</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ec 154</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> et 0</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> ----------</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>/</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'> </span><o:p></o:p></p><p class=MsoNormal>So why has a constraint altered my row estimate?<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>I tried this on 10.2 and the et stayed at the original estimate of 641.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Marty<o:p></o:p></p></div></body></html>