日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)OceanBase教程:OceanBaseCOUNT

COUNT 算子用于兼容 Oracle 的 ROWNUM 功能,實(shí)現(xiàn) ROWNUM 表達(dá)式的自增操作。

成都創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、阿巴嘎網(wǎng)絡(luò)推廣、重慶小程序開(kāi)發(fā)、阿巴嘎網(wǎng)絡(luò)營(yíng)銷(xiāo)、阿巴嘎企業(yè)策劃、阿巴嘎品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供阿巴嘎建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):028-86922220,官方網(wǎng)址:www.cdcxhl.com

在一般場(chǎng)景下,當(dāng) SQL 查詢(xún)含有 ROWNUM 時(shí),SQL 優(yōu)化器就會(huì)在生成執(zhí)行計(jì)劃的時(shí)候分配一個(gè) COUNT 算子。當(dāng)然在一些情況下,SQL 優(yōu)化器會(huì)將含有 ROWNUM 的 SQL 改寫(xiě)為 LIMIT 算子,這時(shí)就不會(huì)再分配 COUNT 算子。

正常分配 COUNT 算子的場(chǎng)景

示例 1:含有 ROWNUM 的 SQL 查詢(xún)正常分配 COUNT 算子場(chǎng)景。


obclient>CREATE TABLE t1(c1 INT, c2 INT);
Query OK, 0 rows affected (0.12 sec)

obclient>INSERT INTO t1 VALUES(1, 1);
Query OK, 1 rows affected (0.12 sec)

obclient>INSERT INTO t1 VALUES(3, 3);
Query OK, 1 rows affected (0.12 sec)

obclient>INSERT INTO t1 VALUES(5, 5);
Query OK, 1 rows affected (0.12 sec)

Q1: 
obclient>EXPLAIN SELECT c1,ROWNUM FROM t1\G;
*************************** 1. row ***************************
Query Plan:
| ====================================
|ID|OPERATOR   |NAME|EST. ROWS|COST|
------------------------------------
|0 |COUNT      |    |1        |37  |
|1 | TABLE SCAN|T1  |1        |36  |
====================================

Outputs & filters: 
-------------------------------------
  0 - output([T1.C1], [rownum()]), filter(nil)
  1 - output([T1.C1]), filter(nil), 
      access([T1.C1]), partitions(p0)

obclient>SELECT c1,ROWNUM FROM t1;
+------+--------+
| C1   | ROWNUM |
+------+--------+
|    1 |      1 |
|    3 |      2 |
|    5 |      3 |
+------+--------+
3 rows in set (0.01 sec)

上述示例中,執(zhí)行計(jì)劃展示中的 outputs & filters 詳細(xì)展示了 COUNT 算子的輸出信息如下:

信息名稱(chēng)

含義

output

該算子輸出的表達(dá)式。

其中 rownum() 表示 ROWNUM 對(duì)應(yīng)的表達(dá)式。

filter

該算子上的過(guò)濾條件。

由于示例中 COUNT 算子沒(méi)有設(shè)置 filter,所以為 nil。

從上述執(zhí)行計(jì)劃示例的輸出結(jié)果可以發(fā)現(xiàn),ROWNUM 對(duì)應(yīng)的表達(dá)式的初始值為 1,每通過(guò)一次 COUNT 算子,COUNT 算子就會(huì)為 ROWNUM 對(duì)應(yīng)的表達(dá)式的值加上 1,實(shí)現(xiàn) ROWNUM 表達(dá)式的自增操作。

不分配 COUNT 算子的場(chǎng)景

示例 2:含有 rownum 的 SQL 改寫(xiě)為 LIMIT 后,不分配 COUNT 算子的場(chǎng)景。


Q2:
obclient>EXPLAIN SELECT 1 FROM DUAL WHERE ROWNUM < 2\G;
*************************** 1. row ***************************
Query Plan:
| ====================================
|ID|OPERATOR   |NAME|EST. ROWS|COST|
------------------------------------
|0 |LIMIT      |    |1        |1   |
|1 | EXPRESSION|    |1        |1   |
====================================

Outputs & filters: 
-------------------------------------
  0 - output([1]), filter(nil), limit(?), offset(nil)
  1 - output([1]), filter(nil)
      values({1})

從上述執(zhí)行計(jì)劃示例的輸出結(jié)果可以發(fā)現(xiàn),雖然 SQL 中含有 ROWNUM,但是經(jīng)過(guò) SQL 優(yōu)化器改寫(xiě)之后,已經(jīng)將涉及含有 ROWNUM 的表達(dá)式轉(zhuǎn)換為了等價(jià)的 LIMIT 表達(dá)式,轉(zhuǎn)換的好處在于可以做更多的優(yōu)化,詳細(xì)信息請(qǐng)參見(jiàn) LIMIT。


當(dāng)前題目:創(chuàng)新互聯(lián)OceanBase教程:OceanBaseCOUNT
標(biāo)題來(lái)源:http://m.5511xx.com/article/dpodddd.html