sql – 任何数据库允许同时创建同一个表上的多个索引?

前端之家收集整理的这篇文章主要介绍了sql – 任何数据库允许同时创建同一个表上的多个索引?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很确定这在Oracle中无法做到,但我很乐意被证明是错误

说我有一个巨大的表,有很多列,我想在十几个列上创建索引.使用Oracle,我会启动几个连续的创建索引语句,并关闭并烧开水壶.

每个创建索引需要扫描表中的每一行以形成索引.

即10个索引= 10次全扫描.

你会认为一个明显的优化是扫描一次表并同时对10列进行索引.不是吗

create indexes on mytable (
    ix_mytable_cola (cola),ix_mytable_colb (colb),ix_mytable_colc (colc)
);

很明显,为什么不在那里呢?

有任何想法吗?

我可以在单独的会话中同时触发每个创建索引,并希望数据库缓冲区缓存保存一天,但是似乎是一个漫长的镜头.

编辑

我没有得到一个明确的答案,所以我在Oracle-L上提出了同样的问题:

http://www.freelists.org/post/oracle-l/Creating-multiple-indexes

普遍的共识是,它不可用,但可能是一个有用的功能.最有用的回应来自David Aldridge,他们建议如果创建索引语句同时被启动,那么Oracle将“做正确的事情”.

解决方法

对Oracle而言,答案是否定的,根据我的研究,对DB2也是如此.我怀疑任何其他人都有这个功能.

猜你在找的MsSQL相关文章