如何有效地修改索引

时间:2010-04-20 17:28:13

标签: database indexing sybase alter

大家好,

问题:我正在寻找将索引从群集转换为非群集

的正确方法

描述:我在sybase db中有一个表格如下:

dbo.UserLog
------------------------
Id | UserId |time | ....
------------------------

这是使用UserId进行哈希分区。

目前它有2个索引

UserId : non-clustered
time: clustered

此表有大约2000万条记录。

我现在想将UserId作为聚簇索引,将时间作为非聚集索引。

用户更改索引以从群集更改为非群集是否正确 或者我删除索引并重新创建。 在散列分区中使用userId的事实对此有何影响?

对我而言似乎还有待改进,但我还没试过。

1 个答案:

答案 0 :(得分:1)

只需删除它们,然后按照您希望的方式重新创建它们。由于您对每个索引进行了如此重大的更改,因此我确信数据库引擎只是在您运行alter时正在删除并创建它们。如果你担心the fact that userId is used in hash partitioning然后创建每个索引new对我来说似乎是最安全的,但我确信如果你使用alter,Sybase不会搞砸。