Vertica

Vertica 中表的大小、審核和行數

  • May 10, 2020

在某些方案中,我需要為每個表找到壓縮大小、審計和行數。對於壓縮大小和行數,我嘗試使用projection_storage

SELECT anchor_table_schema, 
  anchor_table_name, 
  SUM(used_bytes),
  SUM(row_count)
FROM v_monitor.projection_storage 
GROUP BY anchor_table_schema, anchor_table_name 

但是對於空表(0 行),我得到了非零的 SUM(used_bytes)和 SUM(row_count)。所以這種方式不能正常工作。我select audit('table_name')為每個表計算審計,但速度非常慢。所以我的問題:

  1. 還有其他方法可以找到表的壓縮大小(可能還有行數)嗎?因為我得到了 80000000 字節而不是零。
  2. 是否有更快的方法來計算審計?我知道 vertica 每天都會為每個表計算審計,但我找不到結果的儲存位置。

使用以下查詢,您將獲得 Vertica 表的大小。

SELECT anchor_table_schema,
anchor_table_name,
SUM(used_bytes) / (1024 * 1024 * 1024) AS TABLE_SIZE_GB
FROM   v_monitor.projection_storage
GROUP  BY anchor_table_schema,
anchor_table_name
order  by sum(used_bytes) desc;

查看最重要的查詢以檢查表大小

https://www.orahow.com/2018/06/how-to-check-size-of-tables-in-vertica.html

好吧,我想我可以回答我的一個問題。在 vertica 中,刪除操作不會從物理儲存中刪除行。因此,如果我有一個MyTable包含 10 000 行的表並且我做了delete MyTable;,那麼MyTable將具有相同的大小,因為它的行只是被標記為已刪除,但並沒有真正被清除。

結果,如果我想獲得實際的行數,我就不能使用projection_storage表。

引用自:https://dba.stackexchange.com/questions/132790