gpt4 book ai didi

sql-server - TOP 2 比 Sql Server 中的 TOP 1 快吗?

转载 作者:行者123 更新时间:2023-12-03 09:49:29 25 4
gpt4 key购买 nike

我们在 Sql Server 2005 数据库中有一个 +- 500k 行的表,其中一列有全文索引。

我们正在做一些测试,发现 SELECT TOP 1 ... WHERE CONTAINS(fullTextColumn, 'anyValue') 需要超过两分钟才能返回。然而相同的选择,但在几秒钟内返回 TOP 2 而不是 1。

知道为什么会发生这种情况吗?

谢谢!

编辑:有关该问题的更多信息。在 TOP 1 查询计划中,Sql 使用远程扫描,而在 TOP 2 中它使用索引查找。很奇怪。

编辑 2:这些都是来自 Sql 的执行计划:

前 1

文本文本
-------------------------------------------------- -------------------------------------------------- ----------------------------------------------
|--顶(顶表达式:((1)))
|--嵌套循环(Left Semi Join, WHERE:([ECRReload].[dbo].[TECR_PRODUTO_COMPLETO_VENDAVEIS].[idProduto] = [全文搜索引擎].[KEY]))
|--索引扫描(OBJECT:([ECRReload].[dbo].[TECR_PRODUTO_COMPLETO_VENDAVEIS].[ix_tecr_produto_completo_vendaveis01]))
|--远程扫描(OBJECT:(CONTAINS))

前 2 名

文本文本
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------------------------
|--Top(顶级表达:((2)))
|--嵌套循环(内连接,外引用:([全文搜索引擎].[KEY]))
|--远程扫描(OBJECT:(CONTAINS))
|--Index Seek(OBJECT:([ECRReload].[dbo].[TECR_PRODUTO_COMPLETO_VENDAVEIS].[ix_tecr_produto_completo_vendaveis01]), SEEK:([ECRReload].[dbo].[TECR_PRODUTO_COMPLETO_VENDAVEIS].[TECR_PRODUTO_COMPLETO_VENDAVEIS]引擎].[ key ]) 向前命令)

最佳答案

我不是 100% 确定我是否可以说这是固定的,但它似乎是。昨晚我们的 DBA 重建了全文目录并重新组织,它开始工作。这两个查询现在都运行不到一秒钟。

我无法解释为什么,但它正在起作用。

关于sql-server - TOP 2 比 Sql Server 中的 TOP 1 快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183701/

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