代码之家  ›  专栏  ›  技术社区  ›  Agustin Moles

SQL插入查询在迁移中花费了太多时间

  •  -1
  • Agustin Moles  · 技术社区  · 7 年前

    下面是实体关系图:

    以及一张未规范化数据库的图片:

    我要在有问题的地方完成的表是“Items”,查询是:

    INSERT INTO LOS_CAPOS.Items (Item_Factura_Nro, Item_Compra_Cod, Item_Factura_Monto, Item_Factura_Cantidad, Item_Factura_Descripcion)
    SELECT f.Factura_Nro, c.Compra_Cod, Item_Factura_Monto, Item_Factura_Cantidad, Item_Factura_Descripcion
    FROM LOS_CAPOS.Facturas f
    INNER JOIN gd_esquema.Maestra m ON f.Factura_Nro = m.Factura_Nro
    INNER JOIN LOS_CAPOS.Compras c ON c.Compra_Fecha = m.Compra_Fecha AND c.Compra_Cantidad = m.Compra_Cantidad
    

    Facturas是7664行,Compras是78327行表

    谢谢!

    1 回复  |  直到 7 年前
        1
  •  0
  •   Dávid Laczkó    7 年前

    只通过注释一个连接(以及来自该表的相关列)来开始测试SELECT,并查看哪个查找导致了缓慢。之后,检查是否可以使用已编制索引的其他列进行查找。理想情况下,您可以加入LOS_CAPOS.Compras的PK。如果不能,请按照我在下面提到的方式开始测试,选择一个列,创建一个非聚集索引,并测试该表上的所有选择/插入/更新/删除操作,以查看其影响。