1

我在对包含一个 char(23) 字段和两个 TimeStamp 字段的表进行聚类时遇到问题。char(23) 字段包含字母数字值。集群操作永远不会完成。我让它运行了 24 小时,它仍然没有完成。

有没有人遇到过这种问题?我认为原因是长键域的理论是否合理?我们已经处理了没有长键的更大的表,并且我们总是能够对它们执行数据库操作而没有任何问题。这让我认为在这种情况下它可能与密钥的大小有关。

4

1 回答 1

1

集群重写表,因此它必须等待锁。它有可能永远得不到它需要的锁。为什么要设置 varchar(64000)?为什么不只是不受限制的varchar?这个指数有多大?

如果大小是一个问题,它必须基于索引大小而不是键大小。我不知道烤键属性对集群的影响是什么,因为它们被移动到扩展存储中。TOAST 可能会使 CLUSTER 复杂化,我从未听说过有人在 TOASTed 属性上进行聚类。这样做没有多大意义。任何大小超过 4k 的属性都需要 TOAST。

更好的选择是为没有可能烤过的值的值创建一个索引,然后对其进行聚类。这应该给你一些非常接近你会得到的东西。

于 2013-03-21T02:24:02.687 回答