问题描述
我们的sql Server数据库中有两个相同的表(staging.Table1
和production.Table1
)。两者具有相同的名称,索引和约束,包括Search
列的全文本索引。
这个想法是用一个工作来填充临时表,一旦表被填充,就使用SCHEMA TRANSFER将临时表转移到生产表。临时表包含大约300万条记录。
到目前为止,一切都还不错,但是在完成工作之后,即完成模式传输后,如果在生产表上多次执行全文搜索,则返回的结果数将有所不同。每次递增结果,直到所有匹配的记录被加载。
首次运行
SELECT COUNT(*) FROM production.Table1
--> 3000000 records
SELECT * FROM production.Table1
WHERE CONTAINS(Search,'"XYZ"')
-> 3000 records
第二次运行
SELECT COUNT(*) FROM production.Table1
--> 3000000 records
SELECT * FROM production.Table1
WHERE CONTAINS(Search,'"XYZ"')
-> 5000 records
符合条件的实际结果数为5000。
任何人都可以解释为什么每次生成全文表时都会返回增量结果,因为生产表在模式传输后已经具有所有记录了。有没有更好的方法将登台表切换到生产表,并且可以在没有任何延迟的情况下搜索全文?
PS:Partition switching was not possible as the table contains full-text index.
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)