vertica group by優化語句,先對語句進行explain 操作檢視預執行計畫,其中group by 分為 groupby pipelined 和 groupby hash,通過執行計畫可以清楚的看到vertica到底採用的那種執行方式,優化一般就是吧groupby hash優化為groupby pipelined
下面講一下官網舉得例子
create table sortopt (
a int not null,
b int not null,
c int,
d int
create projection sortopt_p (
a_proj,
b_proj,
c_proj,
d_proj )
as select * from sortopt
order by a,b,c
unsegmented all nodes;
insert into sortopt values(5,2,13,84);
insert into sortopt values(14,22,8,115);
insert into sortopt values(79,9,401,33);
第一種情況 group by a
group by a,b
group by b,a
group by a,b,c
group by c,a,b
如果是按照上面的這種group by 則使用的是groupby pipelined,因為group by 後的字段全部在projection中預排序 group by a,b,c,d
這種情況則是採用的groupby hash 不建議~
第二種情況
group by a,c
執行 按照groupby hash 因為a,c欄位沒有相鄰,如果是
group by a,c或者group by b,c則會按照groupby pipelined 執行
第三種情況
group by 之前有 where條件時
select a from tab where a = 10 group by b 此時按照 groupby pipelined
select a from tab where a = 10 group by c 此時按照 groupby hash 以為按照c排序的
處理的所有的 projectionn 列的列未出現在 where 子句等值條件中,如果上如改為select a from tab
where a = 10 and b=10 group by c 則會按照groupby pipelined 執行
通過以上3中情況的介紹,希望大家對vertica的group by有一定的理解。
Vertica 分頁查詢
最近用到vertica 分頁 但是 在網上一搜 什麼 都沒有 可能是因為這個問題太簡單了吧。希望我的這個能給跟我一樣的菜鳥一點幫助 vertica 分頁超級 好用 用的函式是 limit 和 offset 例如 select from test limit 5 offset 0 搜尋前五條資料 也可...
Vertica新增磁碟
本次實驗環境是在虛擬機器上 vmware 12 作業系統是centos 6.5 64位 1.首先停止節點上的vertica資料庫,具體方法有很多 admintools t stop node s 192.168.xx.xx admintools tool stop node hosts 192.16...
mysql中group by 用法簡介
sql語句group by 用法簡介 經常很多情況下,我們用來做統計的資料表都是無比雜亂的,凡是每一條資料都是無厘頭的往裡插入,但是我們在按照分類或者分組來顯示統計資料的時候,這個時候就要用到神奇的group by,如下 基本語法 select 欄位1 sum 欄位2 from 名 group by...