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

时间:2012-09-18 02:51:14

标签: performance indexing sybase

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

  1. 在创建索引之前,我应该采取哪些预防措施?
  2. 此过程是否需要分配更多的表空间?
  3. 我应该考虑的任何其他性能因素?
  4. 干杯

    兰芝斯

1 个答案:

答案 0 :(得分:1)

  1. 来自manual

    何时索引

    使用以下一般准则:

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

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

    • 应始终对连接中经常使用的列建立索引,因为如果列,系统可以更快地执行连接 按排序顺序排列。

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

    • 经常搜索值范围的列可能是聚簇索引的不错选择。一旦具有第一个值的行 在找到的范围内,保证具有后续值的行 身体相邻。聚集索引不提供尽可能多的 搜索单个值的优势。

    何时不进行索引

    在某些情况下,索引无效:

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

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

  2. 尝试

    sp_spaceused tablename, 1

    Here是文档的链接。

  3. 是 - Updating statistics about indexes

    Here是文档的链接。