2017-04-17 55 views

回答

1

如果你想刪除所有從紅移表中的行,執行truncate操作而非delete操作。

此外,如果你不打算保留表或你知道你永遠不會再填充它們,只需刪除它們。請記住,放下桌子會取消所有授予的特權和授予。

回到你的問題,這也發生在我身上。我希望你正在查詢系統表以獲得表格大小的近似值。給Redshift一些時間來穩定,然後運行查詢來再次檢查磁盤空間。通過該表所佔用的空間應爲0(或表寧可不要出現在結果集,表示所有佔用的空間已被釋放

而且,與vacuum一起,做到運行analyzeVacuum 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; 

檢查由不同的表佔用的空間

+0

是啊,多數民衆贊成正是我使用,以獲得表大小的表都出現了500MB的使用和0行什麼,我只。發佈了一個截斷表,並清除了所有的空間。仍然不解釋爲什麼真空不會從刪除中清除空間 – user578849