Vertica的这些事<十四>—— vertica优化

简介: DELETE_VECTORS 数据模型: 1、  规范化你的表 2、  使用核实的压缩格式 表设计: 1、  使用分区 2、  定义主键外键 3、  默认的数字类型长度可能比实际需要的大。例如:NUMBERC 该类型默认的长度是38位,如果实际的长度比这个小,那你建表的时候最好加上适合的长度。 4、  对于一个True/False值,Boolean类型比char(1)类型和

DELETE_VECTORS

数据模型:

1、  规范化你的表

2、  使用核实的压缩格式

表设计:

1、  使用分区

2、  定义主键外键

3、  默认的数字类型长度可能比实际需要的大。例如:NUMBERC 该类型默认的长度是38位,如果实际的长度比这个小,那你建表的时候最好加上适合的长度。

4、  对于一个True/False值,Boolean类型比char(1)类型和integer类型更快。

Projections

1、  Segmentation vs. Replication (unsegmented)简单的说,如果数据量大的话使用Segmentation,小的话使用unsegmented

2、  使用order by ,理想的order by 的字段应该全部在where查询字句中出现(详见另一篇文章【】)

3、  列长度的规范,不要一味的定义大长度,在过滤条件和join时的字段如果是字符类型,最好使用int类型。

4、  GROUP BY:使用group by 时,一定要explain查看执行计划,如果执行计划中使用的【GROUP BY HASH】这时候就要修改你的查询sql或者projection的,group by最好使用【GROUP BY PIPELINE】这种方式使用更少的内存,查询更快!

5、  清楚不必要的projection,多余的projection意味着查询是要花费更多的时间去选择。

6、  Projection中的order 字段首先选用过滤的字段,然后选用join使用的列。

7、  确保Projection数据均匀分布在各个节点上,以免查询时产生数据倾斜。

查询:

1、  避免使用in

2、  避免使用union

3、  Select 时避免使用*,查询时选择合适的列

4、  使用with子句

5、  避免使用别名,例如 groupby 1,2,3

6、  在子查询中使用orderby

7、  避免使用不等关系,例如:>=,not in 等

8、  对于复杂的sql,可以多使用临时表

9、  delete_vectors中的数据尽量清除

资源(Resources)

1、  PROFILE,查看查询所需要的内存

2、  建立专用的资源池

目录
相关文章
|
3天前
|
SQL 自然语言处理 关系型数据库
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
【SQL开发实战技巧】系列(十八):数据仓库中时间类型操作(进阶)INTERVAL、EXTRACT以及如何确定一年是否为闰年及周的计算
日期操作函数(INTERVAL、EXTRACT)的使用以及如何确定一年是否为闰年及周的计算两个小案例【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。本章主要介绍的是关于时间类型的一些常规操作。
【SQL开发实战技巧】系列(十八):数据仓库中时间类型操作(进阶)INTERVAL、EXTRACT以及如何确定一年是否为闰年及周的计算
|
存储 数据采集 监控
摸鱼不如来了解一下--操作数据存储(ODS)和数据仓库(DW)的区别与联系
操作数据存储(ODS)和数据仓库(DW)的区别与联系
478 0
|
SQL 大数据 流计算
Flink入坑指南 第四章:SQL中的经典操作Group By+Agg
Flink入坑指南系列文章,从实际例子入手,一步步引导用户零基础入门实时计算/Flink,并成长为使用Flink的高阶用户。 简介 Group By + Agg这个最经典的SQL使用方式。Group By是SQL中最基础的分组操作,agg的全称是aggregation(聚合操作),是一类SQL算子的统称,Flink中最常用的Agg操作有COUNT/SUM/AVG等,详情参见Flink支持的聚合操作列表。
9029 0
|
SQL 存储 关系型数据库
步步深入MySQL:架构->查询执行流程->SQL解析顺序!
一、前言 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识。 二、MySQL架构总览 架构最好看图,再配上必要的说明文字。
1108 0
Vertica的这些事<十五>—— Vertica备份元数据信息
—备份资源池 SELECT 'CREATE RESOURCE POOL ' || name || CASE WHEN memorysize IS NULL THEN ' ' ELSE ' MEMORYSIZE ' || '''' || memorysize
1480 0
Vertica的这些事<十一>—— Vertica 管理
1、版本信息 dbadmin=> SELECT version(); version ------------------------------------ Vertica Analytic Database v7.
1390 0
|
Oracle 关系型数据库 C++
Vertica的这些事<七>—— Vertica中实现Oracle中的ws_concat功能
vertica中没有类似Oracle中的ws_concat函数功能,需要开发UDF,自己对C++不熟悉,所有只有想其他方法解决了。 上代码: SELECT node_state, MAX(DECODE(row_number, 1, a.node_name)) || NVL(MAX(DECODE(row_number, 2, ',' || a.node_
1911 0
Vertica的这些事<十>—— vertica中group by 和join 语句的优化
vertica group by优化语句,先对语句进行explain 操作查看预执行计划,其中group by 分为 GROUPBY PIPELINED 和 GROUPBY HASH,通过执行计划可以清楚的看到vertica到底采用的那种执行方式,优化一般就是吧GROUPBY HASH优化为GROUPBY PIPELINED 下面讲一下官网举得例子 CRE
1935 0