<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    專業(yè)點,那叫“條件謂詞下推”

    共 780字,需瀏覽 2分鐘

     ·

    2021-04-27 12:16

    sql優(yōu)化中join中的優(yōu)化手段:謂詞下推。 


    謂詞下推,就是在將過濾條件下推到離數(shù)據(jù)源更近的地方,最好就是在table_scan時就能過濾掉不需要的數(shù)據(jù),在關(guān)系代數(shù)中謂詞是可以左右上下移動的,由于join查詢的特殊性,在優(yōu)化join condition中的謂詞時,對應(yīng)不同的join 內(nèi)型,有不同的策略

    inner join

    inner join的結(jié)果集是左表和有表都要滿足條件,所以inner join condtion中的條件都是可以下推的,比如下面的查詢

    select e.* from emp e inner join dept d on e.deptno = d.deptno and emp.deptno=5;

    優(yōu)化后的查詢

    select e. from (select * from emp where emp.deptno =5) e  inner join  (select * from deptno where deptno =5 ) on on e.deptno = d.deptno;

    left join 由于左表是保留表,所有join condition 中的左表條件會失效,右表的條件可以下推,對right join. 則相反;

    對于outter join 由于左表和右表都是保留表,則都不能下推;

    對于anti join,由于查詢的結(jié)果集是不滿足join 條件的集合,如果謂詞下推,查詢結(jié)果集將會為null, 當(dāng)然有一種思路可以在謂詞時下推時將條件取非,獲取正確結(jié)果;


    瀏覽 44
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    夜夜操综合网二区 | 丁香五月婷婷综合网 | 亚洲精品成a在线 | 亚洲无码1000 | 色婷婷资源网 |