sql - 在单个 SQL 查询中,查询可以从单个表中使用多少个索引?

标签 sql database oracle indexing

在 Oracle 中,如果您有一个表,其中 3 个索引位于 3 个不同的列上。单个 SQL 语句可能从一个表中使用多少个索引?

最佳答案

这三个都可以使用。 Oracle 不太可能同时使用这三者,或者说同时使用这三者会有好处,但这是可能的。

Oracle 使用所有三个索引的最简单方法是我们讨论位图索引,这些索引旨在组合,但实际上只适用于数据仓库/DSS 情况,而不适用于 OLTP 系统。 Oracle 也有可能将“标准”b 树索引即时转换为位图索引,以便在 OLTP 系统中进行相同的索引组合,但这通常不是非常有效。

大多数时候,如果您试图创建适当的索引来调整 OLTP 系统中的查询,那么如果您需要创建多个列,您会希望构建一个单一的复合索引,而不是创建单独的单列索引想要过滤/加入。

关于sql - 在单个 SQL 查询中,查询可以从单个表中使用多少个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22773647/

相关文章:

sql - 检查表在运行时是否为空

php - 使用php函数从sql数据库中删除

php - Laravel 使用多个 where 子句选择数据并返回任何数据透视表数据

mysql - 奇怪的 : MySQL Left Join, "unknown column";同样的 leftjoin 在多表查询中不起作用

oracle - CLOB的长度是0?

sql - Oracle 条件连接语句

sql - 有什么方法可以在 Presto 中显示模式中的所有列和表?

mysql - MariaDB和MYSQL5.6返回不同的结果

java - 在 Mac 上通过 Java 使用数据库

oracle - Xquery 转换为日期不返回行