我有两张表,一张小(~ 400 行),一张大(~ 1500 万行),我试图从小表中查找在大表中没有关联条目的记录。
我在查询中遇到大量性能问题。
查询是:
SELECT * FROM small_table WHERE NOT EXISTS
(SELECT NULL FROM large_table WHERE large_table.small_id = small_table.id)
该列large_table.small_id
引用 small_table 的id
字段,这是它的主键。查询计划显示大表使用了外键索引:
PLAN (large_table (RDB$FOREIGN70))
PLAN (small_table NATURAL)
已为两个表上的索引重新计算统计信息。
查询需要几个小时才能运行。这是预期的吗?
- 如果是这样,我可以重写查询以使其更快吗?
- 如果没有,可能有什么问题?