<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] # 概述 數據庫中的查詢改寫(Query Rewrite)是指將一個 SQL 改寫成另外一個更加容易優化的 SQL。 OceanBase 數據庫所支持的查詢改寫規則分為基于規則的查詢改寫和基于代價的查詢改寫。 基于規則的查詢改寫總是會把 SQL 往“好”的方向進行改寫,從而增加該 SQL 的優化空間。一個典型的基于規則的改寫是把子查詢改寫成聯接。如果不改寫,子查詢的執行方式只能是 Nested Loop Join,改寫之后,優化器就也可以考慮 Hash Join 和 Merge Join 的執行方式。 基于代價的查詢改寫并不能總是把 SQL 往“好”的方向進行改寫,需要使用代價模型來判斷。一個典型的基于代價的改寫就是 Or-Expansion。 在數據庫中,一個改寫規則通常需要滿足特定的條件才能夠實現,而且很多規則的改寫可以互相作用(一個規則的改寫會觸發另外一個規則的改寫)。OceanBase 數據庫把所有基于規則的查詢改寫分成若干個規則集合。對于每個規則集合,OceanBase 數據庫采用迭代的方式進行改寫,一直到 SQL 不能被改寫為止或者迭代次數達到預先設定的閾值。類似地,對于基于代價的改寫規則也是采用這種方式處理。 這里需要注意的是,基于代價的改寫之后可能又會重新觸發基于規則的改寫,所以整體上的基于代價的改寫和基于規則的改寫也會采用這種迭代的方式進行改寫。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看