【发布时间】:2012-09-10 06:55:48
【问题描述】:
我在 SYBASE 中有一个大约 1mio 行的表。此表当前没有创建任何索引,我现在想创建一个。我的问题是
- 在创建索引之前我应该采取哪些预防措施?
- 此过程是否需要分配更多表空间?
- 我还应该注意哪些其他性能注意事项?
干杯
兰吉斯
【问题讨论】:
标签: performance indexing sybase
我在 SYBASE 中有一个大约 1mio 行的表。此表当前没有创建任何索引,我现在想创建一个。我的问题是
干杯
兰吉斯
【问题讨论】:
标签: performance indexing sybase
来自manual。
何时索引
使用以下一般准则:
如果您打算手动插入 IDENTITY 列,请创建 一个唯一索引,以确保插入不会分配一个值 已经用过了。
经常按排序顺序访问的列,即在 order by 子句中指定的列,可能应该被索引,以便 Adaptive Server 可以利用索引顺序。
经常在连接中使用的列应该总是被索引,因为如果这些列系统可以更快地执行连接 是按顺序排列的。
存储表的主键的列往往有聚集索引,特别是如果它经常连接到 其他表。请记住,每个只能有一个聚集索引 桌子。
经常搜索值范围的列可能是聚集索引的不错选择。一旦具有第一个值的行 在找到范围内,保证具有后续值的行 物理上相邻。聚集索引不能提供尽可能多的 搜索单个值的优势。
什么时候不索引
在某些情况下,索引没有用:
查询中很少或从未引用的列不会受益 来自索引,因为系统很少需要在 这些列中的值的基础。
只能有两个或三个值的列,例如“男性”和“女性”或“是”和“否”,从 索引。
试试
sp_spaceused tablename, 1
Here 是文档链接。
是的 - Updating statistics about indexes。
Here 是文档的链接。
【讨论】: