gpt4 book ai didi

sql - 哈希联接出现在全文查询中 - SQL Server 2005

转载 作者:行者123 更新时间:2023-12-01 05:47:31 24 4
gpt4 key购买 nike

我在 SQL Server 2005 中有以下查询:

SELECT 
PRODUCT_ID
FROM
PRODUCTS P
WHERE
SUPPLIER_ORGANIZATION_ID = 13225
AND ACTIVE_FLAG = 'Y'
AND CONTAINS(*, 'FORMSOF(Inflectional, "%clip%") ')

有趣的是,使用它会生成一个哈希匹配,而如果我使用不同的 SUPPLIER_ORGANIZATION_ID (较旧的供应商),它使用合并连接。显然 Hash 比 Merge Join 慢得多。我不明白的是为什么会有不同,以及需要什么才能让它运行得更快?

仅供引用,PRODUCTS 表中有大约 500 万条记录。 When supplier organization id is selected (13225), there are about 25000 products for that supplier.

提前致谢。

最佳答案

我会尝试使用 OPTIMIZE FOR Query Hint 以一种或另一种方式强制它。

SELECT 
PRODUCT_ID
FROM
PRODUCTS P
WHERE
SUPPLIER_ORGANIZATION_ID = @Supplier_Organisation_Id
AND ACTIVE_FLAG = 'Y'
AND CONTAINS(*, 'FORMSOF(Inflectional, @Keywords) ')
OPTION (OPTIMIZE FOR (@Supplier_Organisation_Id = 1000 ))

另一件事是您的 STATISTICS 可能已过时,自动更新的临界点通常不够低,这意味着所选的查询计划可能不适合您的数据。我建议尝试更新 Products 表上的 STATISTICS,如果这是问题的一部分,可能会创建一个定期执行此操作的工作。

关于sql - 哈希联接出现在全文查询中 - SQL Server 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/682969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com