有很多结构一样的表(大约100个),其中有一个设备id字段并建有索引。现在需要一次查询大约2000个设备id。怎么查询这100个表里符合条件的数据比较快呢?我现在的查询就是 
SELECT * FROM table_name1 where in(设备id1,设备id2,.......,设备id2000)
UNION ALL
SELECT * FROM table_name2  where in(设备id1,设备id2,.......,设备id2000)
.....
UNION ALL
SELECT * FROM table_name100  where in(设备id1,设备id2,.......,设备id2000)但是这样写的话查询效率太慢。往往需要好几分钟。请问怎么优化一下比较好呢。
每个表大约1,2百万条数据。
用的是PostgreSQL 数据库。但是感觉那个版块人太少,所以只能再这个板块发了。