Skip to main content

Delete Vectors

  • July 22, 2015
  • 1 reply
  • 8 views

priya1cvr
Forum|alt.badge.img

Hi , 

 

Could someone explain the concept of Delete Vectors. How it works and all . I could not find it documented nicely anywhere .

 

Thanks in advance ,

Priyabrat 

1 reply

Rahul_Choudhary
Forum|alt.badge.img
  • Participating Frequently
  • July 23, 2015

Hi

 

A delete vector is a byproduct of the Vertica transaction model and is used to track historical values of a tuple when deleted or updated. Delete vectors should be avoided because they slow down the process of reading from the table after data has been deleted from that table.

Delete vectors also take additional space. Delete vectors may be avoided by limiting DELETE & UPDATE statements. The effect of delete vectors may be minimized by regularly purging projections; see the documentation for the following Vertica meta-functions: PURGE(), PURGE_TABLE(), PURGE_PROJECTION().


You can query delete_vectors system table like below to get the accumulated count of delete_vectors per projection wise as well:

dbadmin=> select schema_name,projection_name,storage_type,sum(deleted_row_count) as rows from delete_vectors group by schema_name,projection_name,storage_type order by rows desc;
schema_name | projection_name | storage_type | rows
-------------+---------------------------------+--------------+------
c44737 | vs_partitions_raw_keys_node0003 | DVROS | 10
c44737 | vs_partitions_raw_keys_node0001 | DVROS | 10
c44737 | vs_partitions_raw_keys_node0004 | DVROS | 10
s44737 | vs_partitions_raw_keys_node0001 | DVROS | 10
s44737 | vs_partitions_raw_keys_node0003 | DVROS | 10
s44737 | vs_partitions_raw_keys_node0004 | DVROS | 10
(6 rows)

dbadmin=> select sum(deleted_row_count),projection_name from delete_vectors group by 2 order by 1 desc;
sum | projection_name
-----+---------------------------------
20 | vs_partitions_raw_keys_node0003
20 | vs_partitions_raw_keys_node0004
20 | vs_partitions_raw_keys_node0001
(3 rows)

 

Regards

Rahul Choudhary