查询多个Oracle数据库的性能问题
我在这两个数据库的这些表中都有超过百万条记录。 我试图找出数据库中两个表中的数据查询多个Oracle数据库的性能问题,oracle,oracle10g,Oracle,Oracle10g,我在这两个数据库的这些表中都有超过百万条记录。 我试图找出数据库中两个表中的数据 SELECT COUNT(*) FROM DB1.MYTABLE WHERE SEQ_NO NOT IN(SELECT SEQ_NO FROM DB2.MYTABLE) AND FILENAME NOT LIKE '%{%' and PT_TYPE NOT IN(15,24,268,284,285,286,12,17,9,290,214,73) AND STTS=1 这个查询需要很长时间。有什么办法能让我快点
SELECT COUNT(*) FROM DB1.MYTABLE WHERE SEQ_NO NOT IN(SELECT SEQ_NO FROM DB2.MYTABLE) AND FILENAME NOT LIKE '%{%'
and PT_TYPE NOT IN(15,24,268,284,285,286,12,17,9,290,214,73) AND STTS=1
这个查询需要很长时间。有什么办法能让我快点吗
提前感谢您的帮助您指的是不同的数据库吗?还是说不同的模式?您讨论的是不同的数据库,但语法似乎使用两个不同模式中的表,而不是两个不同的数据库。如果有两个不同的数据库,我看不到对数据库链接的任何引用,但可能
DB2.MYTABLE
应该是MYTABLE@DB2
如果您可以发布生成的查询计划,这将非常有用。指出存在哪些索引以及这些谓词的选择性也很有用。我的猜测是,将查询修改为
SELECT count(*)
FROM schema1.mytable a
WHERE NOT EXISTS (
SELECT 1
FROM schema2.mytable b
WHERE a.seq_no = b.seq_no )
AND a.filename NOT LIKE '%{%'
AND a.pt_type NOT IN (15,24,268,284,285,286,12,17,9,290,214,73)
AND a.stts = 1
如果由于SCHEMA2.MYTABLE
中存在SEQ\u NO
而消除了SCHEMA1.MYTABLE
中的大多数行,则效率可能会更高