我怎样才能优化我的查询?

时间:2018-05-30 03:26:34

标签: sql sql-server

这是我的问题:

INSERT INTO inventorydetails 
            (inventoryid, 
             attributekeyid, 
             lssmin) 
SELECT '194572', 
       1, 
       LSS.attributekey 
FROM   transactionlogs TL 
       INNER JOIN lssinventory LSS 
               ON LSS.sapsonumber = TL.sap 
WHERE  TL.sap = '5001044323' 

2 个答案:

答案 0 :(得分:0)

在transactionlogs.sap字段和您要加入的列上创建索引。

CREATE INDEX idx_transactionlogs_sap
ON transactionlogs (sap);

根据transactionlogs表的大小,if是否可以极大地提高连接的性能。

答案 1 :(得分:0)

对于此查询:

INSERT INTO inventorydetails (inventoryid, attributekeyid, lssmin) 
    SELECT '194572', 1, LSS.attributekey 
    FROM transactionlogs TL INNER JOIN
         lssinventory LSS 
         ON LSS.sapsonumber = TL.sap 
    WHERE TL.sap = '5001044323' ;

首先,如果sap是一个数字,请删除单引号。

其次,您需要此查询的两个索引:transaction_logs(sap)lssinventory(sapsonumber, attributekey)