相关疑难解决方法(0)

如何优化在嵌套循环(内部联接)上运行缓慢的查询

TL; 博士

由于这个问题一直有意见,我在这里总结一下,这样新人就不必忍受历史:

JOIN table t ON t.member = @value1 OR t.member = @value2 -- this is slow as hell
JOIN table t ON t.member = COALESCE(@value1, @value2)    -- this is blazing fast
-- Note that here if @value1 has a value, @value2 is NULL, and vice versa
Run Code Online (Sandbox Code Playgroud)

我意识到这可能不是每个人的问题,但通过突出 ON 子句的敏感性,它可能会帮助您寻找正确的方向。无论如何,原文是为未来的人类学家准备的:

原文

考虑以下简单查询(仅涉及 3 个表)

    SELECT

        l.sku_id AS ProductId,
        l.is_primary AS IsPrimary,
        v1.category_name AS Category1,
        v2.category_name AS Category2,
        v3.category_name AS Category3,
        v4.category_name AS Category4,
        v5.category_name AS Category5

    FROM category c4 …
Run Code Online (Sandbox Code Playgroud)

performance sql-server

43
推荐指数
2
解决办法
10万
查看次数

标签 统计

performance ×1

sql-server ×1