写了个视图,关联了10几张表,如下:
CREATE OR REPLACE VIEW XXX AS
SELECT COL1, COL2, COL3 ... FROM T1
UNION ALL
SELECT COL1, COL2, COL3 ... FROM T2
UNION ALL
SELECT COL1, COL2, COL3 ... FROM T3
.......
T1,T2,T3... 建有索引,查询条件中用到了索引字段,
但是查询效率很低,有好的解决办法吗?谢了!
CREATE OR REPLACE VIEW XXX AS
SELECT COL1, COL2, COL3 ... FROM T1
UNION ALL
SELECT COL1, COL2, COL3 ... FROM T2
UNION ALL
SELECT COL1, COL2, COL3 ... FROM T3
.......
T1,T2,T3... 建有索引,查询条件中用到了索引字段,
但是查询效率很低,有好的解决办法吗?谢了!
CREATE OR REPLACE VIEW XXX AS
SELECT /*+choose*/ COL1, COL2, COL3 ... FROM T1
UNION ALL
SELECT COL1, COL2, COL3 ... FROM T2
UNION ALL
SELECT COL1, COL2, COL3 ... FROM T3
.......
查询前分析表及其表的索引
应该是没有更好的办法了,
这几句SQL本身就很简单视图在使用的时候本身也会被解析成SQL语句,
并不能提高性能但是从关键字union all上考虑,
这么多的union all是要在一起比较,并去掉重复记录的,
有十几个表呢,肯定会很慢了啊如果这些表结构差别不大的话,
楼主为何不建一张中间表,
每隔一段时间重新读一下记录,
这样慢也只会慢一次不过要是实时要求很高的话,大约也行不通
楼主就有必要从设计上作些修改了