1

我尝试使用带有 SQL Server 2008 的 SQL Server Management Studio 创建数据库维护计划。
如果我使用数据库维护计划向导并将其设置为全部重建索引,然后运行包,它在表上失败。

然后我只是在对象资源管理器中找到该表并使用该表的弹出菜单中的“重建所有索引”,这很好。

如此迷茫。这是否意味着这两种方式需要不同的设置?如何解决这个问题?

另一个问题是:如果应用Rebuild index,那么不需要使用Reorganize,对吗?

这是来自作业历史记录的错误消息:消息以用户身份执行:xxx\sqlservice。Microsoft (R) SQL Server Execute Package Utility Version 10.0.5500.0 for 64-bit 版权所有 (C) Microsoft Corp 1984-2005。版权所有。开始时间:晚上 7:21:27 进度:2012-04-14 19:21:27.96 来源:{9FA4339C-7D29-4059-871B-5160B63DBBA0} 执行查询“DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp...”。 : 100% 完成 End Progress Progress: 2012-04-14 19:21:30.09 Source: Rebuild Index Task Executing query "USE [MyDB] ".: 0% complete End Progress Error: 2012-04-14 19:21:30.12代码:0xC002F210 源:重建索引任务执行 SQL 任务描述:执行查询“ALTER INDEX [MyTab1_PK] ON [dbo].[MyTab1] ...”失败,出现以下错误:“

但如果我单独在表 MyTab1 上进行操作,那就没问题了。
我从列表中删除了 MyTab1 以进行重建,我将在另一个表上收到另一个错误,并显示不同的错误消息。

4

3 回答 3

3

在设置维护计划时,您需要确保取消选中重建索引子计划中的框,标题为:

重新索引时保持索引在线

我怀疑您或某人在创建/编辑维护计划时选中了该框,因为默认情况下不应选中它(这就是手动重建索引时不会发生错误的原因)。

于 2012-04-16T14:57:45.057 回答
0

我的问题是因为我有一个离线数据库,我预计在不久的将来会删除它。删除数据库后,问题就消失了。

于 2014-10-20T13:44:33.623 回答
0

回答您的问题,Index Rebuild 删除现有索引并重新创建它,因此无需使用 reorganize (仅适用于索引的叶节点。)

错误很简单:“在线索引操作只能在SQL Server企业版中执行。”

在线重建在企业版 SQL Server 上可以在线使用,而您的版本可能不可用,因此只需在您的向导上将操作设置为不运行“在线”即可。

快速解释:在线重建,重建 tempDB 上的索引,使其在重建时可用于查询。当操作花费大量时间并且您不能让索引“未使用”时使用它。

于 2012-04-16T14:58:41.573 回答