vertica性能优化汇总
查看系统参数
SELECT
node_name,
parameter_name,
current_value,
default_value
FROM configuration_parameters
WHERE current_value <> default_value order by 2, 1;
-----------------------------------------------------------------
node_name | parameter_name | current_value | default_value
-----------+----------------------+---------------+---------------
ALL | DMLTargetDirect | 0 | 1
ALL | JavaBinaryForUDx | /usr/bin/java |
ALL | MaxClientSessions | 250 | 50
ALL | MaxParsedQuerySizeMB | 10240 | 1024
ALL | MergeOutInterval | 250 | 600
ALL | MoveOutInterval | 500 | 300
(6 rows)
查看队列设置,默认最多4个
SELECT
name,
memorysize,
maxmemorysize,
priority,
runtimepriority,
QUEUETIMEOUT,/*等待超时:时:分*/
runtimeprioritythreshold,
runtimecap,
maxconcurrency /*最大并行*/
FROM V_CATALOG.RESOURCE_POOLS
WHERE name='general';
-----------------------------------------------------------------
name | memorysize | maxmemorysize | priority | runtimepriority | QUEUETIMEOUT | runtimeprioritythreshold | runtimecap | maxconcurrency
---------+------------+---------------+----------+-----------------+--------------+--------------------------+------------+----------------
general | | Special: 90% | 0 | MEDIUM | 00:05 | 2 | | 4
修改资源池的参数
alter resource pool general MAXMEMORYSIZE '80%';
查看当前资源队列
select *from resource_queues;
查看当前正在执行,以及正在等待的SQL
select
substr(current_statement, 1, 200) as stmt,
count(1)
from sessions
where not current_statement is null
and (transaction_id, statement_id)<>(current_trans_id(), current_statement())
group by 1;
查看当前值正在执行的会话:
select * from query_requests where is_executing='true'
根据session_id关闭指定会话:
select CLOSE_SESSION ( 'verdb-1091.eastmone-143932:0x35909')
COMMIT;
查看当前每个节点的资源使用情况
select
node_name,
pool_name,
running_query_count as running,
floor(memory_size_kb /1000000) as memory_gb,
floor(memory_inuse_kb/1000000) as memory_inuse_gb,
floor(query_budget_kb/1000000) as query_budget_gb
from resource_pool_status
where running_query_count > 0
order by pool_name, node_name;
提高SQL大小限制
SELECT get_config_parameter('MaxParsedQuerySizeMB');
SELECT set_config_parameter('MaxParsedQuerySizeMB', 10240);
COMMIT;
修改最大会话数:
SELECT GET_CONFIG_PARAMETER ('MaxClientSessions');
SELECT SET_CONFIG_PARAMETER ('MaxClientSessions', 100);
COMMIT;
优化WOS和ROS
SELECT GET_CONFIG_PARAMETER('MoveOutInterval');
SELECT GET_CONFIG_PARAMETER('MergeOutInterval');
SELECT SET_CONFIG_PARAMETER('MoveOutInterval', 60);
SELECT SET_CONFIG_PARAMETER('MergeOutInterval', 30);
COMMIT;
Vertica 表发生死锁后, 通过下面3个查询即可解锁.
--步骤1: 找到被锁表的 transaction_id
select transaction_id, t.* from v_monitor.locks t;
--步骤2:根据 transaction_id 获得 session_id, 这一步需要登录账号有较高的权限, 否则会差不到对应的session
select session_id from v_monitor.sessions t where transaction_id in (45035996274476153);
--步骤3: 根据session_id, 关闭session
select close_session('v_bigdata_node0001-52084:0xf271e');
commit;
作者:Lave Zhang
出处:http://www.cnblogs.com/lavezhang/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2019-07-30 vertica 中位数函数 MEDIAN 的使用