gpt4 book ai didi

sql-server - 我如何知道 SQL 全文索引填充何时完成?

转载 作者:行者123 更新时间:2023-12-01 17:44:34 25 4
gpt4 key购买 nike

我们正在为针对测试 SQL Server 数据库运行的 ASP.NET 应用程序编写单元测试。也就是说,ClassInitialize 方法创建一个包含测试数据的新数据库,ClassCleanup 删除该数据库。我们通过从代码运行 .bat 脚本来做到这一点。

被测试的类被赋予一个连接到单元测试数据库而不是生产数据库的连接字符串。

我们的问题是,数据库包含全文索引,需要用测试数据完全填充该索引,以便我们的测试按预期运行。

据我所知,全文索引始终在后台填充。我希望能够:

  1. 使用同步(transact-SQL?)语句创建完全填充的全文索引,或者
  2. 了解全文填充何时完成,是否有回调选项,或者我可以重复询问吗?

我当前的解决方案是在类初始化方法结束时强制延迟 - 5 秒似乎有效 - 因为我在文档中找不到任何内容。

最佳答案

我想提供@Daniel Renshaw 的答案的更易于阅读的版本:

DECLARE @CatalogName VARCHAR(MAX)
SET @CatalogName = 'FTS_Demo_Catalog'

SELECT
DATEADD(ss, FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateCompletionAge'), '1/1/1990') AS LastPopulated
,(SELECT CASE FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateStatus')
WHEN 0 THEN 'Idle'
WHEN 1 THEN 'Full Population In Progress'
WHEN 2 THEN 'Paused'
WHEN 3 THEN 'Throttled'
WHEN 4 THEN 'Recovering'
WHEN 5 THEN 'Shutdown'
WHEN 6 THEN 'Incremental Population In Progress'
WHEN 7 THEN 'Building Index'
WHEN 8 THEN 'Disk Full. Paused'
WHEN 9 THEN 'Change Tracking' END) AS PopulateStatus

结果:

LastPopulated           PopulateStatus
----------------------- ----------------------------------
2012-05-08 14:51:37.000 Idle

(1 row(s) affected)

关于sql-server - 我如何知道 SQL 全文索引填充何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2727911/

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