我有一个查询,我运行,但它需要几小时才能完成。它运行在一个超过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