在[PRIMARY]和[OTHERS]以及不常用的选项[SORT_IN_TEMPDB]上。

5 浏览
0 Comments

在[PRIMARY]和[OTHERS]以及不常用的选项[SORT_IN_TEMPDB]上。

我读了这篇帖子《[PRIMARY]是什么意思?》并想知道如何通过使用SQL脚本获取文本"PRIMARY"或任何其他正在使用的文件组名称。

我还研究了CREATE table的语法,并看到了SORT_IN_TEMPDB,尝试在MS SMS中使用查询来搜索,但无法找到它的位置。

0
0 Comments

在上述的内容中,提到了一个名为SORT_IN_TEMPDB的选项,它是CREATE INDEX语句的一个选项。SORT_IN_TEMPDB用于指定是否将临时排序结果存储在tempdb中。默认情况下,该选项是关闭的(OFF),即不将临时排序结果存储在tempdb中。

当我们执行CREATE INDEX语句时,数据库引擎会使用一种排序算法来对数据进行排序,以便创建索引。在默认情况下,这些排序结果将存储在用户数据库中。然而,如果我们将SORT_IN_TEMPDB选项设置为ON,则中间的排序结果将存储在tempdb中。

将排序结果存储在tempdb中可能会在某些情况下提高索引创建的速度。特别是当tempdb位于与用户数据库不同的磁盘组上时,这种情况更为明显。因为将临时排序结果存储在tempdb中可以利用更好的磁盘性能。然而,这也会增加在索引创建过程中使用的磁盘空间的量。

解决这个问题的方法就是在CREATE INDEX语句中设置SORT_IN_TEMPDB选项的值。如果我们希望将临时排序结果存储在tempdb中,则将其设置为ON;如果我们希望将临时排序结果存储在用户数据库中,则将其设置为OFF。

下面是一个示例,展示了如何在CREATE INDEX语句中使用SORT_IN_TEMPDB选项:

CREATE INDEX IX_Employee_LastName
ON Employee (LastName)
WITH (SORT_IN_TEMPDB = ON);

在上面的示例中,我们将SORT_IN_TEMPDB选项设置为ON,以便将临时排序结果存储在tempdb中。这可能会提高索引创建的速度,但也会增加磁盘空间的使用量。

总结起来,SORT_IN_TEMPDB选项的存在是为了优化索引创建的过程。通过将临时排序结果存储在tempdb中,可以利用更好的磁盘性能,从而提高索引创建的速度。然而,这也会增加磁盘空间的使用量。因此,在使用CREATE INDEX语句创建索引时,我们可以根据具体情况来选择是否使用SORT_IN_TEMPDB选项。

0