我有一個查詢,我運行,但它需要幾小時才能完成。它運行在一個超過500萬行的桌子上。我嘗試過用不同的部分來調整它,但是對SQL進行了有限的培訓,並沒有對SQL優化進行培訓。任何幫助,使其更快一點,將大大appriciated。SQL Server優化查詢數百萬行
查詢:
UPDATE Work_Orders SET status_ref = (SELECT id FROM Status s WHERE s.status LIKE 'Invalid Loan Number')
WHERE id IN (SELECT w.id FROM Work_Orders w LEFT JOIN (SELECT * FROM Contract_Code_Ref c WHERE c.contract_code = 'AAA') a
ON w.file_name LIKE a.prior_servicer_loan_number + '%'
WHERE a.id IS NULL AND w.work_order_ref = (SELECT id FROM Work_Order_Lookup l WHERE l.work_order = '1234'));
表結構:
Work_Orders:
id bigint
work_order_ref int
path varchar(300)
file_name varchar(150)
file_size bigint
loan_number varchar(15) Null
scan_date date Null
doctype varchar(50) Null
status_ref tinyint
last_updated timestamp
Work_Order_Lookup:
id int
work_order varchar(6)
Status:
id int
status varchar(30)
Contract_Code_Ref:
id int Unchecked
contract_code varchar(3)
prior_servicer_loan_number varchar(15)
current_loan_number varchar(10)
last_updated timestamp
我使用SQL Server 2014快件。
在此先感謝!
這是一個完整的列更新和選擇語句,是否正確? – mxix 2014-11-05 17:00:53
對不起,選擇那裏進行測試。這是真正的查詢 – 2014-11-05 17:18:33