2
我想優化批量加載例程。我可以在PostgreSQL中使用TRUNCATE + COPY/FREEZE替換TRUNCATE + COPY + ANALYZE 9.3
目前我在加載數據的步驟(我不是遵循以下SQL語法,只是算法):
BEGIN
TRUNCATE table
COPY into table
ANALYZE table
COMMIT
PostgreSQL 9.3
在此之前是重新裝載表的唯一推薦的方式。版本9.3
介紹了FREEZE
選項,可以使用COPY
命令。標準文件說:
FREEZE
請複製與已凍結的行中的數據,就像 他們將運行真空冷凍命令後。這是 ,旨在作爲初始數據加載的性能選項。只有在當前子事務中創建或截斷了正在加載的表格 時,纔會凍結行 ,沒有打開遊標並且沒有此事務持有較舊快照的 。
我的直接問題是我是否仍然需要在COPY/FREEZE
之後運行ANALYZE
。標準文檔沒有給出任何直接的建議。以下順序是否足夠了?還是需要運行ANALYZE
?
BEGIN
TRUNCATE table
COPY/FREEZE table
COMMIT
謝謝!
這是我的一廂情願。這將是一個不錯的功能,但它可以節省服務器資源,以便在數據加載時收集統計信息。謝謝克雷格。 –
@cherio這樣做會很有趣,是的......'複製...與統計'。歡迎補丁:頁 –