2017-08-22 109 views
0

我的表有17500000行,Amazon Redshift VACUUM不成功

我刪除了500k行。刪除後,我運行了vacuum命令。

根據SVV_VACUUM_SUMMARY,row_delta是真空前後表格總數的差異。

但是,當我看到SVV_VACUUM_SUMMARY表時,row_delta是0.它不應該是500K嗎?

而且,這裏是從STL_VACUUM表輸出:

狀態行sortedrows

開始1750 813055

成品1750 1750

這是否意味着真空不成功的完成的行與啓動時相同?

另外SVV_VACUUM_PROGRESS對錶格具有完整的狀態。所以要確認它是否成功。

並檢查了SVV_TABLE_INFO爲我的表和tbl_rows有17500000.我不知道應該做什麼,因爲我認爲tbl_rows應該是17000000真空操作成功。

任何幫助,將不勝感激。

+0

您是否嘗試設置閾值? 'VACUUM DELETE ONLY to 100 PERCENT' – Ravi

+0

你在'VACUUM'之後跑過'ANALYZE'嗎? – AlexYes

+0

@Ravi我真空table_name到100% –

回答

2

您可以使用視圖svv_table_info來確認表格是否被正確清理。

如果由於某種原因運行VACUUM my_table TO 100 PERCENT不會導致svv_table_infounsorted值的更改,您將需要perform a deep copy

+0

我在我的問題中發佈真空後檢查了svv_table_info。但沒有奏效。但是,真空table_name運行到100%;再次似乎有工作,它將未排序更改爲0,並且svv_vacuum_summary中的row_delta現在爲-500K。 –