我遇到了在某些sybase数据库中删除和重新创建唯一聚簇索引的问题。我无法在我的测试环境中重现该问题。
并发问题产生的错误如下:
无法删除或修改分区描述符数据库'xxx'(43),对象xx,索引xx(0),分区'xx',因为它正在使用中。请稍后重试您的命令。总参考计数为“4”。任务引用计数'2'。
我知道来自open tran的表或行的独占锁定不会导致这种情况,我认为最终用户可能做的任何事情都不会改变数据的排序顺序。
数据是一个集群循环,是一个单独的分区表。
请告知。
答案 0 :(得分:1)
你可以使用" reorg"相反 - 它具有相同的效果,不应该容易受此影响?但我不确定,因为我不喜欢你不知道这是怎么发生的 - 构建新的聚簇索引不应该开始,直到Sybase得到一个表锁(它必须用于集群),为什么是否有其他东西正在访问? (DBCC,或者系统级别上有系统目录锁的东西,所以虽然索引可以构建,但更新系统目录的某些内容会失败?)
15.0.3之前esd 4 REORG导致尝试访问正在重新排列的表的其他查询失败,不被阻止,这可能很烦人。