Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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表和全文索引分区_Sql_Sql Server 2012_Partitioning_Full Text Indexing - Fatal编程技术网

SQL表和全文索引分区

SQL表和全文索引分区,sql,sql-server-2012,partitioning,full-text-indexing,Sql,Sql Server 2012,Partitioning,Full Text Indexing,我有一个应用程序,它使用Microsoft SQL Server 2012来存储从文档中提取的信息和文本。单个表(我们称之为“Docs”)存储了大部分信息,并有一个“Status”字段,用于确定记录在应用程序中的位置。此状态字段可以有各种值,但本质上决定了文档在应用程序的整个生命周期中出现在哪个接口中。Docs表可以根据写入其中的项的数量显著增长。表中有各种字段包含在全文索引中。我们目前没有为这个表设置任何分区方案,但希望探索实现分区是否会带来任何性能好处,主要是与各种UI执行的查询有关 让我们

我有一个应用程序,它使用Microsoft SQL Server 2012来存储从文档中提取的信息和文本。单个表(我们称之为“Docs”)存储了大部分信息,并有一个“Status”字段,用于确定记录在应用程序中的位置。此状态字段可以有各种值,但本质上决定了文档在应用程序的整个生命周期中出现在哪个接口中。Docs表可以根据写入其中的项的数量显著增长。表中有各种字段包含在全文索引中。我们目前没有为这个表设置任何分区方案,但希望探索实现分区是否会带来任何性能好处,主要是与各种UI执行的查询有关

让我们以一个数据库为例,该数据库在Docs表中有3500万条记录,这相当于Docs表的数据库总大小略低于2TB,数据大小为1.5TB。最初,它们具有相同的“状态”值(假设为“1”),并且只能通过UI 1进行查询。当用户处理记录时,“状态”字段将更新为“2”,使其在UI 2中可用

我们希望提高在UI2中执行的查询的响应能力,并且正在考虑基于“status”字段实现一个分区方案。查询数据库时,UI 2将始终包含一个WHERE status=2。我对表分区的理解是,如果我们根据状态对表进行分区,系统只需查询项并从存储该状态记录的组中检索数据


我们有一个场景,用户将3500万条记录摄取到Docs表中,但在全文索引上运行查询会导致UI 2超时。所以,我的问题是,表分区是否会提高UI 2中执行的查询的响应能力?此外,如果我们在分区表上创建全文索引,全文索引是否会存储在分区表中(即单独存储,从而提高全文查询响应能力),或者SQL Server是否仍必须查询整个全文索引(在本例中为500GB)这是什么具体的数据库?SQL只是一种查询语言,但分区和全文索引之类的东西是高度特定于供应商的,因此请使用您正在使用的任何数据库更新您的标记—无论是Oracle、PostgreSQL、MySQL、IBM DB2、SQL Server、,Informix-不管怎样…谢谢Marc-我已经更新了我的帖子,如果您能提供帮助,我仍然对答案感兴趣。目前的情况已经过去,但最好能知道,以备将来参考。具体数据库为Microsoft SQL Server Enterprise 2012或2014。