1. 程式人生 > 其它 >vertica效能優化彙總

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/
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。