0

我遇到了在某些 sybase 数据库上删除和重新创建唯一聚集索引的问题。我无法在我的测试环境中重现该问题。

并发问题出现时产生的错误如下:

无法删除或修改分区描述符数据库 'xxx' (43)、对象 xx、索引 xx (0)、分区 'xx',因为它正在使用中。请稍后重试您的命令。总引用计数“4”。任务引用计数“2”。

我知道打开 tran 对表或行的排他锁不会导致这种情况,而且我认为最终用户可能做的任何事情都不会改变数据的排序顺序。

数据是集群循环,并且是单个分区表。

请指教。

4

1 回答 1

1

您可以改用“reorg”吗?那会产生相同的效果并且不应该受到这种影响吗?但我不确定,因为我喜欢你看不到这是怎么发生的——在 Sybase 获得表锁之前不应该开始构建新的聚集索引(它必须用于聚集,)所以为什么它看起来是别的东西访问?(DBCC,或者系统级别的系统目录上的锁定可能,所以虽然索引可以建立,但更新系统目录的一些事情会失败?)

在 15.0.3 之前 esd 4 REORG 会导致其他尝试访问正在重组的表的查询失败,而不是被阻塞,这可能很烦人。

于 2012-08-08T10:37:48.953 回答