2016-05-11 14 views
5

İki veritabanında bir bağlantı oluşturmak için postgres_fdw kullanıyorum. Daha sonra yabancı tabloları kuruyorum ve yabancı tablolardan bazı eklerimi canlı tablolarıma yapıyorum. İndeksleri olmadığı için oldukça zaman aldığını fark ettim.Dış tablodaki dizin oluştur PostgreSQL

bunu standart

CREATE INDEX ON foreign_table_name (column)? 

cevap

1

Hayır, alacak bir hatadır, yabancı bir tablo üzerinde bir dizin oluşturabilir miyim:

ERROR: cannot create index on foreign table "tablename" 
********** Error ********** 

ERROR: cannot create index on foreign table "tablename" 
SQL state: 42809 

Ve sorguda olacak "seyahat olarak mantıklı "Net olarak, tabloyu her sorguladığınızda veriyi asıl veritabanından geri al (veriyi dizine kaydetmeyecek).

Yapabilecekleriniz, diğer tarafta yürütülmekte olan sorguyu almak için açıklamayı kullanmak ve uzak tabloyu buna göre dizine eklemek.

explain verbose select * from schema.foreign_table 

"Foreign Scan on schema.foreign_table (cost=25.00..1025.00 rows=1000 width=84)" 
" Output: field1, field2, field3 
" Remote server startup cost: 25" 
" Remote query: SELECT field1, field2, field3 FROM schema.original_table 

Yardımcı olur umarım. İyi şanslar!