Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 全文搜索自动分区方案和功能_Sql Server_Full Text Search_Partitioning - Fatal编程技术网

Sql server 全文搜索自动分区方案和功能

Sql server 全文搜索自动分区方案和功能,sql-server,full-text-search,partitioning,Sql Server,Full Text Search,Partitioning,我们在SQL Server 2012开发(企业)数据库上运行了一些全文搜索。我们注意到正在(周期性地)将分区方案和函数添加到数据库中。我只能假设分区用于FTS,因为它们具有以下形式: 方案: CREATE PARTITION SCHEME [ifts_comp_fragment_data_space_46093FC3] AS PARTITION [ifts_comp_fragment_partition_function_46093FC3] TO ([FTS], [FTS], [FTS]) 功

我们在SQL Server 2012开发(企业)数据库上运行了一些全文搜索。我们注意到正在(周期性地)将分区方案和函数添加到数据库中。我只能假设分区用于FTS,因为它们具有以下形式:

方案:

CREATE PARTITION SCHEME [ifts_comp_fragment_data_space_46093FC3] AS PARTITION [ifts_comp_fragment_partition_function_46093FC3] TO ([FTS], [FTS], [FTS])
功能:

CREATE PARTITION FUNCTION [ifts_comp_fragment_partition_function_46093FC3](varbinary(128)) AS RANGE LEFT FOR VALUES (0x00330061007A00660073003200360036, 0x0067006F00730066006F00720064)

问题是,我们的生产服务器正在运行SQL Server 2012标准,该标准不支持分区。因此,每次排除这些分区(使用SSDT)都会给模式比较增加额外的管理负担。当一个人(不可避免地)爬进去的时候,这是一种痛苦。我们已经做了一些广泛的研究,还没有找到任何答案来解释为什么会发生这种情况。有什么想法吗?

是的,这些想法是全文搜索功能的内部想法。你无法控制他们


<>但是,我认为它是在模式中显示出来的一个bug。您永远不会自己创建/更改/删除它们,它们完全由sql server维护,因此我将在

上提交一份错误报告,谢谢您的回答。如果它们出现在VisualStudio/SSDT的模式中,我认为这不是一个bug,因为它无法知道它们是如何创建的。请您a)提供更多的信息,说明为什么会发生这种情况,b)说明即使存在标准版,我们是否能够在标准版上进行恢复(因为它们也是由标准版创建的,标准版拒绝将定义了分区的数据库联机)。全文索引将其数据存储在几个内部表中。如果全文索引中的文档数量足够大,sql server可能会对这些表进行分区。配分方案和配分函数就是这样的结果。Sql并不总是对内部表进行分区,我也没有看到任何关于这种行为的好文档。我没有标准版的副本来测试还原,所以我无法与您交谈,但是,最糟糕的情况是您还原,并且必须重建ft目录。我们随后测试了还原,恢复正常。出错的地方是,SQL数据工具>模式比较将拾取分区并将其脚本化到主shcema中。SQL 2012会认为这些分区是由用户(而不是FTS)创建的,因此拒绝按标准进行恢复。因此,我们可以通过更加小心地使用模式来解决这个问题。