vertica常用sql语句总结

在使用vertica的过程中,需要使用一些系统表对数据库集群进行监控,现对一些常用的sql语句进行总结。

1.查看session信息

select * from sessions;

2.关闭某个session

select CLOSE_SESSION ('sessionid');

sessionid由1中的查询获得
3.导出表结构

select export_objects('','tablename');

第一个参数为null表示将结果输出到屏幕,也可以换成一个绝对路径将结果输出到文件中。
4.收集统计信息

select analyze_statistics('tablename');

该函数其实有3个参数,除了表名外,后边还有可选的列参数及收集信息时的抽样百分比(默认为10%)。
5.查看license信息

select audit_license_size();

该函数会输出license允许的数据量及license到期日期,以及目前的数据量。
6.查看某个schema下的所有表的实际占用空间(压缩后的空间使用)

   SELECT 
   anchor_table_schema,
   anchor_table_name,
   SUM(used_bytes) / ( 1024^3 ) AS used_compressed_gb 
   FROM   v_monitor.projection_storage
   Where anchor_table_schema = 'public'
   GROUP  BY anchor_table_schema,
   anchor_table_name;

当然,也可以指定anchor_table_name来查看某个表的压缩后的空间占用。
7.查看某个表下的projection信息

 select get_projections('tablename');

8.对某个表的projection进行刷新
有两种方法:

select START_REFRESH();

该方法会刷新当前schema下的所有未更新到最新的projections,默认会在后台异步执行。

select refresh('tablename');

该方法在前台异步执行,会刷新一个或多个表(参数可以用逗号隔开)。若不指定参数,会刷新所以过期的projections。
9.查看刷新过程及状态

selECT * from projection_refreshes where refresh_status = 'refreshing';

查看哪些projection正在执行刷新。
10.查看每个节点,每个projection的ros容器个数

SELECT node_name, projection_schema, projection_name, SUM(ros_count) AS ros_count FROM v_monitor.projection_storage GROUP BY node_name, projection_schema, projection_name ORDER BY ros_count DESC;

vertica要求每个节点,每个projection的ros容器个数不超过1024,否则,在进行数据加载时可能会报错。
11.查看某个projection的分区个数

seleCT projection_name,count(distinct partition_key) from partitions group by projection_name order by projection_name;

通过对partitions系统表的查询,可以获得更多的分区信息。
12.ros合并操作

select DO_TM_TASK('task'[, '[database.]schema.]{table | projection}]');

常用的task有两个,分别是moveout和mergerout。

  • Moveout将数据从WOS复制到Tuple Mover,然后复制到ROS, 数据被分类,编码和压缩成列文件。
  • Mergeout将较小的ROS容器组合成较大的容器,以减少碎片。

13.查看正在运行的ros合并操作

seleCT projection_name,ros_count,total_ros_used_bytes from tuple_mover_operations where table_name = 'tablename' and operation_status = 'Running' group by projection_name,ros_count,total_ros_used_bytes order by projection_name;

14.查看加载和拒绝的记录数的一些信息

SELECT schema_name, table_name, load_start, load_duration_ms, is_executing, parse_complete_percent, sort_complete_percent, accepted_row_count, rejected_row_count FROM v_monitor.load_streams;

你可能感兴趣的:(Vertica)