sql – 任何数据库允许同时创建同一个表上的多个索引?
发布时间:2020-12-12 08:23:21 所属栏目:MsSql教程 来源:网络整理
导读:我很确定这在Oracle中无法做到,但我很乐意被证明是错误的 说我有一个巨大的表,有很多列,我想在十几个列上创建索引.使用Oracle,我会启动几个连续的创建索引语句,并关闭并烧开水壶. 每个创建索引需要扫描表中的每一行以形成索引. 即10个索引= 10次全扫描. 你会
我很确定这在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也是如此.我怀疑任何其他人都有这个功能.(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- newinstance()和new的区别? (网上解答整理)
- sqlserver2012 提示您对无法重新创建的表进行了更改或者启用
- sql-server – 如何在SQL Server中存储未签名的64位整数?
- SQL设计模式
- sql-server – SQL Server中的最大数据库名称长度
- sqlserver 数据库区分大小写设置
- SQL server 使用 内联结(INNER JOIN) 联结多个表 (以及过滤
- SQL在顶部有一个特定记录,下面是其他所有记录
- SQL Server误区30日谈 第14天 清除日志后会将相关的LSN填零
- sql-server – SQL Server SELECT语句导致阻塞