我为每个日期创建了多个表,以存储每个日期的一些信息。 例如History3108,History0109..etc所有这些表共享相同的模式。有时我需要查询多个表并获取记录的行数和计数。在Oracle和SQL Server中执行此操作的更快方法是什么?
目前我这样做......
如果我们在一个事务中包含所有查询,这会提供更好的性能吗?
答案 0 :(得分:1)
使用UNION
,您可以从多个表中获取共享相同数据类型组和列名称的记录。例如,如果要查看多个表中的所有记录:
(select * from history3108)
union all
(select * from history0109)
union all
(select * from history0209)
/* [...] and so on */
如果你想计算这些表中的所有记录:
select count(*) from (
(select * from history3108)
union all
(select * from history0109)
union all
(select * from history0209)
/* [...] and so on */
);