如何获得一个表中另一个表中不存在的记录?

火星一号

我有一个临时表,它已作为计划的批处理脚本的一部分进行更新。

让我们将此表称为Staging_Table

现在,我每天使用来自Staging_Table的条目更新一个称为Product_Table的表。我需要删除Products_Table中没有暂存表中条目的行。

现在,为了使事情复杂化,登台表可容纳约97000条记录,而生产表只有7000条记录。但是,每天,登台表中的条目将增加97000条。对于这些产品,我有一个称为TDC_IDP_ID ...的钥匙。

所以我有这个查询似乎要永远执行...

DELETE FROM Product_Table
        WHERE PRODUCT_TD_PARTCODE NOT IN ( SELECT TDC_TD_PARTCODE FROM Staging_Table WHERE TDC_IDP_ID = @TDC_IDP_ID )

现在内部查询有97000条记录。我如何优化此查询(至少运行)或有另一种方法可以解决此问题?而不是选择我尝试以下查询,并且当我键入此问题时它仍在运行。它已经运行了11分钟。

SELECT COUNT(*)
        FROM   Product_Table
        WHERE PRODUCT_TD_PARTCODE NOT IN ( SELECT TDC_TD_PARTCODE FROM Staging_Table WHERE TDC_IDP_ID = @TDC_IDP_ID )
戈登·利诺夫

首先,将索引改写为not exists

DELETE FROM Product_Table
    WHERE NOT EXISTS (SELECT 1
                      FROM Staging_Table st
                      WHERE st.TDC_IDP_ID = @TDC_IDP_ID  AND
                            st.TDC_TD_PARTCODE = product_table.PRODUCT_TD_PARTCODE
                     );

然后,您需要登台表上的索引:

create index idx_Staging_Table_2 on Staging_Table(TDC_TD_PARTCODE, TDC_IDP_ID);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得一个表中另一个表中不存在的记录?

来自分类Dev

如何从一个表中获得的价值在另一个表中不存在?

来自分类Dev

SQL-不存在时不从另一个表中检索记录

来自分类Dev

选择在实体框架的另一个表中不存在的记录

来自分类Dev

SQLite查询选择另一个表中不存在的所有记录

来自分类Dev

SQL如何从另一个表中不存在的表中选择

来自分类Dev

如果一个表不存在于另一个表中,该如何删除

来自分类Dev

如何选择另一个表中不存在的行

来自分类Dev

如何选择另一个表中不存在的行

来自分类Dev

如何从一个表中选择另一个表中不存在的所有记录,但在不存在的记录中返回NULL

来自分类Dev

从一个表中选择记录,这些记录在另一个表中不存在

来自分类Dev

当另一个表中不存在一个值时插入表中吗?

来自分类Dev

当另一个表中不存在一个值时插入表中吗?

来自分类Dev

从一个表中删除其字段组合在另一个表中不存在的记录

来自分类Dev

如何从另一个表MYSQL中不存在数据的表中输出结果

来自分类Dev

Laravel-获取记录集合(如果另一个表中不存在)

来自分类Dev

如果mysql中的另一个表上不存在数据,如何从另一个表中选择数据

来自分类Dev

如何选择一个表中存在但另一个表中不存在的所有ID

来自分类Dev

¿如果另一个相关表中不存在该记录,如何避免分页中的记录?蛋糕PHP

来自分类Dev

如何从一个表中选择在另一表中由于某种条件而在另一表中不存在的所有记录?

来自分类Dev

SQL,如果另一个表中不存在该字段,则选择字段

来自分类Dev

删除另一个表中不存在ID的所有行

来自分类Dev

SQL约束,用于检查另一个表中是否不存在值

来自分类Dev

评估另一个表中是否不存在值

来自分类Dev

获取另一个表中不存在的所有项目

来自分类Dev

SQL,如果另一个表中不存在该字段,则选择字段

来自分类Dev

如果列值在另一个表中不存在,则获取计数

来自分类Dev

需要选择另一个表中不存在的数据

来自分类Dev

MySQL 查询不存在于另一个表中

Related 相关文章

  1. 1

    如何获得一个表中另一个表中不存在的记录?

  2. 2

    如何从一个表中获得的价值在另一个表中不存在?

  3. 3

    SQL-不存在时不从另一个表中检索记录

  4. 4

    选择在实体框架的另一个表中不存在的记录

  5. 5

    SQLite查询选择另一个表中不存在的所有记录

  6. 6

    SQL如何从另一个表中不存在的表中选择

  7. 7

    如果一个表不存在于另一个表中,该如何删除

  8. 8

    如何选择另一个表中不存在的行

  9. 9

    如何选择另一个表中不存在的行

  10. 10

    如何从一个表中选择另一个表中不存在的所有记录,但在不存在的记录中返回NULL

  11. 11

    从一个表中选择记录,这些记录在另一个表中不存在

  12. 12

    当另一个表中不存在一个值时插入表中吗?

  13. 13

    当另一个表中不存在一个值时插入表中吗?

  14. 14

    从一个表中删除其字段组合在另一个表中不存在的记录

  15. 15

    如何从另一个表MYSQL中不存在数据的表中输出结果

  16. 16

    Laravel-获取记录集合(如果另一个表中不存在)

  17. 17

    如果mysql中的另一个表上不存在数据,如何从另一个表中选择数据

  18. 18

    如何选择一个表中存在但另一个表中不存在的所有ID

  19. 19

    ¿如果另一个相关表中不存在该记录,如何避免分页中的记录?蛋糕PHP

  20. 20

    如何从一个表中选择在另一表中由于某种条件而在另一表中不存在的所有记录?

  21. 21

    SQL,如果另一个表中不存在该字段,则选择字段

  22. 22

    删除另一个表中不存在ID的所有行

  23. 23

    SQL约束,用于检查另一个表中是否不存在值

  24. 24

    评估另一个表中是否不存在值

  25. 25

    获取另一个表中不存在的所有项目

  26. 26

    SQL,如果另一个表中不存在该字段,则选择字段

  27. 27

    如果列值在另一个表中不存在,则获取计数

  28. 28

    需要选择另一个表中不存在的数据

  29. 29

    MySQL 查询不存在于另一个表中

热门标签

归档