Vertica系列:性能优化
Vertica 性能非常好, 平时基本不会碰到性能问题, 即使碰到, 优化也很容易, 而且效果往往会很好.
======================
优化工具
======================
1. explain 命令.
在一个大 SQL 执行之前, 使用 profile 来查看资源的预期消耗.
veritica 执行计划除了有普通文本格式, 还有 graphviz 格式的文本输出, 可以使用一些 graphviz viewer网站或工具将这些文本以流程图的形式呈现. 比如这个网站 <http://webgraphviz.com/>
2. v_monitor schema 下有很多监控类表, 可以查看内存/执行时间等消耗.
select * from v_monitor.query_requests ;
select * from v_monitor.query_profiles ;
select * from v_monitor.query_metrics ;
select * from v_monitor.memeory_usage ;
select * from v_monitor.cpu_usage ;
select * from v_monitor.io_usage ;
select * from v_monitor.network_usage ;
3. profile 命令
除了 v_monitor.query_requests 给出的时间和内存消耗, 还可以使用 profile 语句获取SQL的执行成本.
该命令结果可以在vsql 命令行工具看到, 或使用 dbeaver的"输出"tab页查看.

======================
优化手法
======================
1. 数据表 (包括临时表) 建表语句需要重点关注数据的分布
具体分布情况的指令有 order by, SEGMENTED by , PARTITION by 从句.
UNSEGMENTED ALL NODES;
SEGMENTED BY HASH(EID) ALL NODES ;
2. 收集统计信息
如果在执行计划中, 看到 "NO STATISTICS" 字眼, 可以试试收集一下统计信息.
SELECT ANALYZE_STATISTICS('');
3. 尽量避免使用 merge 和 update 语句, 使用 Delete+Insert 代替.
4. Delete 虽然性能比 Update 要好, 但大量数据的删除操作, Vertica 也需要很长时间, 尽量使用 truncate 或 分区删除.
5. 对于复杂的子查询语句,使用临时表来代替.
6. 两个表关联避免不同数据类型之间做"隐式转换", 必要时候先使用临时表转成同样数据类型(包括精度), 然后再做join.
根本点是建模时, 同一个domain在不同表中的类型要保持一致.
7. 重建或新建Projection.
如果在执行计划中, 看到 "BROADCAST Join" 字眼, 有可能关联条件写的不合适, 有可能projection建的不合适.
8. 大数据量的操作(Insert/Update/Delete/CTAS 语句), 要善用 /*+ DIRECT */
Vertica系列:性能优化的更多相关文章
- Mysql系列-性能优化神器EXPLAIN使用介绍及分析
MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 SEL ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- [MySQL性能优化系列]提高缓存命中率
1. 背景 通常情况下,能用一条sql语句完成的查询,我们尽量不用多次查询完成.因为,查询次数越多,通信开销越大.但是,分多次查询,有可能提高缓存命中率.到底使用一个复合查询还是多个独立查询,需要根据 ...
- [MySQL性能优化系列]巧用索引
1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语 ...
- [MySQL性能优化系列]LIMIT语句优化
1. 背景 假设有如下SQL语句: SELECT * FROM table1 LIMIT offset, rows 这是一条典型的LIMIT语句,常见的使用场景是,某些查询返回的内容特别多,而客户端处 ...
- PLSQL_性能优化系列14_Oracle High Water Level高水位分析
2014-10-04 Created By BaoXinjian 一.摘要 PLSQL_性能优化系列14_Oracle High Water Level高水位分析 高水位线好比水库中储水的水位线,用于 ...
- PLSQL_性能优化工具系列16_Best Practices: Proactively Avoiding Database
占位符 PLSQL_性能优化工具系列_Best Practices: Proactively Avoiding Database/Query Performance Issue
- Java GC 专家系列5:Java应用性能优化的原则
本文是GC专家系列中的第五篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种GC ...
- Web性能优化系列
web性能优化之重要,这里并不打算赘述.本系列课程将带领大家认识.熟悉.深刻体会并且懂得如果去为不同的站点做性能优化 同时,本系列将还会穿插浏览器兼容性相关问题的解决方案,因为在我看来,兼容性同样属于 ...
随机推荐
- 【BZOJ1185】[HNOI2007]最小矩形覆盖(凸包,旋转卡壳)
[BZOJ1185][HNOI2007]最小矩形覆盖(凸包,旋转卡壳) 题面 BZOJ 洛谷 题解 最小的矩形一定存在一条边在凸包上,那么枚举这条边,我们还差三个点,即距离当前边的最远点,以及做这条边 ...
- Codeforces Round #554 ( div.2 ) 总结
应该经常需要锻炼一下英语阅读理解能力和代码能力,所以以后还是需要多打打CF. 今天大概就是水一水找找感觉. A. Neko Finds Grapes $n$个箱子,$m$个钥匙 ($n,m \leq ...
- HZNU ACM一日游 2019.3.17 【2,4,6-三硝基甲苯(TNT)】
Travel Diary 早上8:00到HG,听说hjc20032003在等我. 然后他竟然鸽我...最后还是勉强在8:30坐上去偏僻的HZNU的地铁. 到文新,然后带上fjl,打滴滴,一行人来到了H ...
- Luogu P5316 【恋恋的数学题】
是个神仙题 就三种情况,分类讨论. \(k=2\): 因为保证有解,所以直接输出即可. \(k=3\): 由于对应情况可以枚举全排列寻找,所以在此只考虑顺序对应时的情况,不妨设六个数分别为\(g_{a ...
- 【拓扑排序】烦人的幻灯片(slides)
1395:烦人的幻灯片(slides) 时间限制: 1000 ms 内存限制: 65536 KB提交数: 753 通过数: 416 [题目描述] 李教授将于今天下午作一次非常重 ...
- Uva796 Critical Links
用tarjan缩点 然后用dfn[u] < low[v]缩点并且保存起来 在sort一遍输出 #include<stdio.h> #include<string.h> # ...
- Jira配置openLdap服务器进行用户认证
测试环境 注:进过测试,Jira6.3.6和Jira7.3.8界面和配置方法相同,不过7.3.x版本默认的用户组只有jira-software-users和jira-administrators,好在 ...
- nginx thinkphp只能访问首页
代码部署到了服务器上,发现无论怎样请求,都是跳转到index/index/index(模块/控制器/方法),最后需要nginx重新地址即可 参考:Linux下Nginx部署Thinkphp5访问任何地 ...
- [WC2018]州区划分
[WC2018]州区划分 注意审题: 1.有序选择 2.若干个州 3.贡献是州满意度的乘积 枚举最后一个州是哪一个,合法时候贡献sum[s]^p,否则贡献0 存在欧拉回路:每个点都是偶度数,且图连通( ...
- Linux下无法运行Color picker
➜ ~ com.github.ronnydo.colorpicker com.github.ronnydo.colorpicker: error while loading shared librar ...