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

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

新聞中心

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

DISTINCT 算子用于為對數(shù)據(jù)行去重,包括去除重復(fù)的 NULL 值。

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及紗窗等,在成都網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計、軟件開發(fā)等項目上具有豐富的設(shè)計經(jīng)驗(yàn)。

DISTINCT 算子包括 HASH DISTINCT 和 MERGE DISTINCT。

HASH DISTINCT

HASH DISTINCT 算子使用 HASH 算法執(zhí)行 DISTINCT 運(yùn)算。

示例 1:使用 HASH 算法執(zhí)行 DISTINCT 運(yùn)算,對 t1 表的 c1 列進(jìn)行去重處理


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

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

obclient>EXPLAIN SELECT /*+USE_HASH_AGGREGATION*/ DISTINCT c1 FROM t1\G;
*************************** 1. row ***************************
Query Plan: 
|=======================================
|ID|OPERATOR     |NAME|EST. ROWS|COST |
---------------------------------------
|0 |HASH DISTINCT|    |101      |99169|
|1 | TABLE SCAN  |t1  |100000   |66272|
=======================================
Outputs & filters: 
-------------------------------------
  0 - output([t1.c1]), filter(nil), 
      distinct([t1.c1])
  1 - output([t1.c1]), filter(nil), 
      access([t1.c1]), partitions(p0)

上述示例中,執(zhí)行計劃展示中 0 號算子 HASH DISTINCT 執(zhí)行去重運(yùn)算,outputs & filters 詳細(xì)展示了 HASH DISTINCT 算子的具體輸出信息如下:

信息名稱

含義

output

該算子的輸出列。

filter

該算子的過濾謂詞。

由于示例中 HASH DISTINCT 算子沒有設(shè)置 filter,所以為 nil。

partition

查詢需要掃描的分區(qū)。

distinct

指定需要去重的列。

例如,distinct([t1.c1]) 的參數(shù) t1.c1 指定對 t1 表的 c1 列進(jìn)行去重處理,并且采用 HASH 算法。

MERGE DISTINCT

MERGE DISTINCT 算子使用 MERGE 算法執(zhí)行 DISTINCT 運(yùn)算。

示例 2:使用 MERGE 算法執(zhí)行 DISTINCT 運(yùn)算


obclient>EXPLAIN SELECT /*+NO_USE_HASH_AGGREGATION*/ DISTINCT c1 FROM t1\G;
*************************** 1. row ***************************
Query Plan: 
|=======================================
|ID|OPERATOR      |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE DISTINCT|    |3        |40  |
|1 | SORT         |    |3        |39  |
|2 |  TABLE SCAN  |t1  |3        |37  |
=======================================
Outputs & filters: 
-------------------------------------
  0 - output([t1.c1]), filter(nil), 
      distinct([t1.c1])
  1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
  2 - output([t1.c1]), filter(nil), 
      access([t1.c1]), partitions(p0)

上述示例中,0 號算子 MERGE DISTINCT 執(zhí)行去重運(yùn)算,采用了 MERGE 算法,并且由于 2 號算子輸出的數(shù)據(jù)是無序的,而 MERGE DISTINCT 算子需要輸入的數(shù)據(jù)有序,所以在執(zhí)行去重運(yùn)算前需要使用 SORT 算子對數(shù)據(jù)排序。執(zhí)行計劃展示中的 outputs & filters 詳細(xì)展示了 MERGE DISTINCT 算子的輸出信息如下:

信息名稱

含義

output

該算子的輸出列。

filter

該算子的過濾謂詞。

由于示例中 MERGE DISTINCT 算子沒有設(shè)置 filter,所以為 nil。

distinct

指定需要去重的列。

例如,distinct([t1.c1]) 的參數(shù) t1.c1 指定對 t1 表的 c1 列進(jìn)行去重處理,并且采用 MERGE 算法。


分享標(biāo)題:創(chuàng)新互聯(lián)OceanBase教程:OceanBaseDISTINCT
鏈接地址:http://www.5511xx.com/article/djjceis.html