4

我在 SYBASE 中有一个大约 1mio 行的表。此表当前没有创建任何索引,我现在想创建一个。我的问题是

  1. 在创建索引之前我应该​​采取哪些预防措施?
  2. 这个过程是否需要分配更多的表空间?
  3. 我应该注意的任何其他性能注意事项?

干杯

兰吉特

4

1 回答 1

1
  1. 手册

    何时索引

    使用以下一般准则:

    • 如果您计划手动插入 IDENTITY 列,请创建唯一索引以确保插入不会分配已使用的值。

    • 经常按排序顺序访问的列,即在 order by 子句中指定的列,可能应该被索引,以便 Adaptive Server 可以利用索引顺序。

    • 经常在连接中使用的列应该总是被索引,因为如果列按排序顺序,系统可以更快地执行连接。

    • 存储表的主键的列通常有一个聚集索引,特别是如果它经常连接到其他表中的列。请记住,每个表只能有一个聚集索引。

    • 经常搜索值范围的列可能是聚集索引的不错选择。一旦找到具有范围内第一个值的行,就保证具有后续值的行在物理上是相邻的。聚集索引对单个值的搜索没有那么大的优势。

    何时不索引

    在某些情况下,索引没有用:

    • 查询中很少或从不引用的列不会从索引中受益,因为系统很少需要根据这些列中的值来搜索行。

    • 只能有两个或三个值的列,例如“男性”和“女性”或“是”和“否”,从索引中没有真正的优势。

  2. 尝试

    sp_spaceused tablename, 1

    是文档的链接。

  3. 是的 - Updating statistics about indexes

    是文档的链接。

于 2012-09-18T07:19:22.060 回答