我寫了一個程序,需要幾個外鍵ID,用於進一步的操作沒有選擇從<table>但隨着應用/ JOIN
表md_machines
+----+-------+
| id | name |
+----+-------+
| 1 | c432 |
| 2 | c431 |
| n | ... |
+----+-------+
我的過程中我的查詢:
SELECT TOP 1
@m1 = m1.id,
@m2 = m2.id,
@m3 = m3.id,
@m4 = m4.id
FROM md_machines
OUTER APPLY(SELECT TOP 1 id FROM md_machines WHERE name = @p1) m1
OUTER APPLY(SELECT TOP 1 id FROM md_machines WHERE name = @p2) m2
OUTER APPLY(SELECT TOP 1 id FROM md_machines WHERE name = @p3) m3
OUTER APPLY(SELECT TOP 1 id FROM md_machines WHERE name = @p4) m4
所有工作正常,但md_machines
有超過30萬行。當我用空表替換FROM md_machines
時,此查詢速度大約快10%。
如何避免FROM md_machines
?這對我沒有必要。
很好的解決方案/解決。我會記住它,特別是因爲使用'min'和'group'作爲另一個項目。在這裏我使用'name'的唯一索引和'id'的主鍵 – Load
答案已更新 – StanislavL