Sybase—索引现有表时的性能注意事项



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

  1. 在创建索引之前应该采取哪些预防措施
  2. 这个过程是否需要分配更多的表空间
  3. 我还需要考虑其他性能方面的问题吗

干杯

Ranjith

  1. 来自手册。

    何时索引

    使用以下通用指南:

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

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

    • 联接中经常使用的列应该始终进行索引,因为如果列按排序。

    • 存储表主键的列通常具有聚集索引,尤其是当它经常联接到中的列时其他表格。请记住,每个只能有一个聚集索引桌子

    • 对于聚集索引来说,经常搜索值范围的列可能是一个不错的选择。一旦具有第一个值的行在找到的范围中,具有后续值的行保证物理上相邻。聚集索引提供的搜索单个值的优势。

    何时不索引

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

    • 查询中很少或从未引用的列不会受益从索引,因为系统很少需要在这些列中值的基础。

    • 只有两个或三个值的列,例如"male"one_answers"female"或"yes"one_answers"no",不会从中获得真正的优势索引。

  2. 尝试

    sp_spaceused tablename, 1

    这是文档链接。

  3. 是-Updating statistics about indexes

    这是文档链接。

最新更新