0
我有一些表中的所有行已被刪除。然後我在這些表上運行了一個真空,但它們仍顯示爲消耗磁盤空間。任何想法爲什麼會發生。謝謝。Redshift表與0行消耗磁盤空間
我有一些表中的所有行已被刪除。然後我在這些表上運行了一個真空,但它們仍顯示爲消耗磁盤空間。任何想法爲什麼會發生。謝謝。Redshift表與0行消耗磁盤空間
如果你想刪除所有從紅移表中的行,執行truncate
操作而非delete
操作。
此外,如果你不打算保留表或你知道你永遠不會再填充它們,只需刪除它們。請記住,放下桌子會取消所有授予的特權和授予。
回到你的問題,這也發生在我身上。我希望你正在查詢系統表以獲得表格大小的近似值。給Redshift一些時間來穩定,然後運行查詢來再次檢查磁盤空間。通過該表所佔用的空間應爲0(或表寧可不要出現在結果集,表示所有佔用的空間已被釋放
而且,與vacuum
一起,做到運行analyze
:Vacuum and Analyze - Amazon Redshift Documentation
您可以使用:
select
trim(pgdb.datname) as Database,
trim(pgn.nspname) as Schema,
trim(a.name) as Table,
b.mbytes,
a.rows from (
select db_id, id, name, sum(rows) as rows
from stv_tbl_perm a
group by db_id, id, name) as a join pg_class as pgc on pgc.oid = a.id join pg_namespace as pgn on pgn.oid = pgc.relnamespace join pg_database as pgdb on pgdb.oid = a.db_id join (
select tbl, count(*) as mbytes
from stv_blocklist
group by tbl) b on a.id = b.tbl order by mbytes desc, a.db_id, a.name;
檢查由不同的表佔用的空間
是啊,多數民衆贊成正是我使用,以獲得表大小的表都出現了500MB的使用和0行什麼,我只。發佈了一個截斷表,並清除了所有的空間。仍然不解釋爲什麼真空不會從刪除中清除空間 – user578849