61得票4回答
SQL Server: 如何跟踪 CREATE INDEX 命令的进度? 在 SQL Server 中,CREATE INDEX 命令用于创建索引以提高查询性能。然而,在处理大型表时,创建索引可能需要一些时间。为了跟踪 CREATE INDEX 命令的进度,可以采取以下步骤: 1. 使用动态管理视图 (DMV):通过查询 sys.dm_exec_requests DMV,可以获取有关正在执行的命令的信息。使用该视图可以查看 CREATE INDEX 命令的状态、进度百分比和估计完成时间。 2. 使用活动监视器:SQL Server 提供了活动监视器工具,可用于监视数据库操作的进度。通过选择适当的监视器选项,可以跟踪 CREATE INDEX 命令的执行情况。 3. 使用查询窗口:在 SQL Server Management Studio (SSMS) 的查询窗口中执行 CREATE INDEX 命令时,可以在消息窗口中实时查看命令的执行进度。 4. 使用扩展事件:通过配置扩展事件会话,可以捕获 CREATE INDEX 命令的进度信息。这些信息可以保存到文件或发送到其他目标,以便稍后进行分析。 请注意,CREATE INDEX 命令的执行时间取决于表的大小、索引类型和服务器负载等因素。因此,在跟踪进度时,应该考虑到这些因素,并根据实际情况进行相应的调整。 希望以上信息对您有所帮助!

SQL Server 2014,标准版 我了解到dm_exec_requests中的percent_complete对于CREATE INDEX无效,并且在实践中,percent_complete一直停留在0。所以这并没有帮助。 我目前使用下面的方法,至少可以显示进度(即索引创建未被阻塞)...

43得票2回答
为什么改变声明的连接列顺序会引入排序?

我有两个具有相同名称、类型和索引键列的表。其中一个表具有唯一的聚集索引,另一个表具有非唯一的索引。 测试设置 设置脚本,包括一些真实的统计数据: DROP TABLE IF EXISTS #left; DROP TABLE IF EXISTS #right; CREATE TABLE ...

38得票3回答
执行计划中缺失统计信息的警告

我遇到了一个我无法理解的情况。我的SQL Server执行计划告诉我,我的表上缺少统计信息,但这些统计信息已经被创建了。 但是如果我们看一下表格,我们会发现有一个统计数据是自动生成的。 有人能帮忙理解这是怎么回事吗? 当前数据库已开启自动更新和自动创建统计信息。 我正在使用SQ...

35得票2回答
新工作的第一天 - 检查备份和安全性 - 如何操作?还应该检查什么?

通常,当我进入一个新的环境时,我倾向于检查备份的位置、最近一次完整备份的时间、上次还原应用的时间,并且我也会检查安全性。 我使用T-SQL来完成这些操作。 检查备份的方式如下: ;with Radhe as ( SELECT @@Serverna...

29得票4回答
为什么在这些计划中,相同的唯一索引上1000次查找的预估成本会有所不同呢?

在下面的查询中,两个执行计划都估计要在唯一索引上执行1,000次查找。 这些查找是由对同一源表的有序扫描驱动的,所以看起来应该按照相同的顺序查找相同的值。 两个嵌套循环都具有<NestedLoops Optimized="false" WithOrderedPrefetch="tru...

28得票4回答
由于'XTP_CHECKPOINT',数据库'database_name'的事务日志已满。

我有一个关于 XTP_CHECKPOINT 的问题。 我正在使用 SQL Server 2014。我有一个数据库处于简单恢复模式,并且正在进行复制。 没有未完成的事务。我运行了 DBCC OPENTRAN 命令,返回结果如下: "没有活动的未完成事务。" 但是,每当我尝试创建或删除...

28得票1回答
这个急切的线轴操作符对于从集群列存储中删除数据是否有用?

我正在测试从一个聚集列存储索引中删除数据。 我注意到在执行计划中有一个较大的急切 spool 操作符。 这个完成具有以下特点: - 删除了6000万行数据 - 使用了1.9 GiB的TempDB - 执行时间为14分钟 - 串行计划 - 在spool上重新绑定了一次 - 扫描的预估成...

28得票1回答
SQL Server 2014中,关于不一致的自连接基数估计有何解释? (Simplified Chinese)

考虑以下在SQL Server 2014中的查询计划: 在查询计划中,自连接 ar.fId = ar.fId 的估计结果是 1 行。然而,这个估计是逻辑上不一致的:表 ar 具有 20,608 行,并且只有一个不同的 fId 值(在统计数据中准确反映)。因此,这个连接产生了所有行的全排列...

26得票2回答
为什么在SQL Server 2014中,LEN()函数会严重低估基数?

我有一张表,其中包含一个字符串列和一个用于检查特定长度行的谓词。在SQL Server 2014中,无论我检查的长度是多少,都会看到1行的估计值。这导致计划非常糟糕,因为实际上可能有成千上万甚至数百万行,并且SQL Server选择将此表放在嵌套循环的外部。 对于SQL Server 201...

26得票1回答
为什么当我删除行时,我的非聚集索引会占用更多的空间?

我有一个拥有75亿行和5个索引的大表。 当我删除大约1000万行时,我注意到非聚集索引似乎增加了它们存储在的页面数量。 我编写了一个针对dm_db_partition_stats的查询,以报告页面数的差异(之后 - 之前)。 索引1是聚集索引,索引2是主键。其他的索引是非聚集和非唯一的...