我不擅长SQL。
我正在寻找一种方法来加速像这样的简单连接:
SELECT
E.expressionID,
A.attributeName,
A.attributeValue
FROM
attributes A
JOIN
expressions E
ON
E.attributeId = A.attributeId
我这样做了数十万次,并且随着 table 越来越大,它的花费越来越大。
我在考虑索引-如果要加快单个表的选择速度,我可能会在表达式表的expressionID上放置非聚集索引,在属性表的另一个属性上(attributeName,attributeValue)放置非聚集索引-但是我不知道如何可以申请加入。
编辑:我已经在expressions表上具有expressionId(PK),attributeId(PK,FK)上的聚簇索引,并且在属性表上具有attributeId(PK)的另一个聚簇索引
我看过this问题,但我要问的是更一般的东西,可能要简单得多。
任何帮助表示赞赏!
最佳答案
您肯定要在attributeID
和attributes
表上都对expressions
拥有索引。如果您目前没有这些索引,那么我认为您会看到很大的加速。
关于sql-server - 如何加快简单加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/916940/