我不擅长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问题,但我要问的是更一般的东西,可能要简单得多。

任何帮助表示赞赏!

最佳答案

您肯定要在attributeIDattributes表上都对expressions拥有索引。如果您目前没有这些索引,那么我认为您会看到很大的加速。

关于sql-server - 如何加快简单加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/916940/

10-10 20:59