Performance 搜索查询中的多个where子句(oracle):效率

Performance 搜索查询中的多个where子句(oracle):效率,performance,oracle,Performance,Oracle,什么更有效率 单个sql语句中有多个where子句(无联接),无 任何列上的索引 单个sql中的多个where子句 语句(无联接),所有列上的索引,可能在其中 条款 带有按需构建where子句的动态SQL 很难说没有看到查询和执行计划。。。但出于本能,我认为#2可能是最有效的。索引将使Oracle更容易在表中查找数据。当然,过度索引也可能导致性能问题 我不确定动态查询和索引是否相互关联。如果您的表有索引,查询(动态或非动态)将能够使用该索引。如果不查看查询和执行计划,很难说。。。但出于本能,我认

什么更有效率

  • 单个sql语句中有多个where子句(无联接),无 任何列上的索引
  • 单个sql中的多个where子句 语句(无联接),所有列上的索引,可能在其中 条款
  • 带有按需构建where子句的动态SQL
  • 很难说没有看到查询和执行计划。。。但出于本能,我认为#2可能是最有效的。索引将使Oracle更容易在表中查找数据。当然,过度索引也可能导致性能问题

    我不确定动态查询和索引是否相互关联。如果您的表有索引,查询(动态或非动态)将能够使用该索引。

    如果不查看查询和执行计划,很难说。。。但出于本能,我认为#2可能是最有效的。索引将使Oracle更容易在表中查找数据。当然,过度索引也可能导致性能问题


    我不确定动态查询和索引是否相互关联。如果您的表有索引,查询(动态或非动态)将能够使用索引。

    我正在编写代码,从前端执行一些搜索(简单和复杂)。传统建议我使用动态查询…但是缺乏编译和较少的调试迫使我探索其他选项。我很好奇是什么传统建议你使用动态查询。。。对我来说,动态查询是最后的手段,当我无法用其他方法进行查询时。您是否真的在运行时构建查询?以下是一种情况:我想从一个或多个表中搜索一组用户。我不想把太多的搜索条件,除非需要…即使我的搜索字段设置得很好。如果它们是空的,那么在它们上搜索就没有意义了。@Sash:那么,也许动态SQL就是解决这个问题的方法?我不确定你的架构是什么样的。。。我仍然会考虑索引常用搜索字段(如果您可以确定哪些字段是),只要您没有索引500个字符的自由格式文本(这可能没有任何帮助),或者可以查看全文搜索和索引。如果其中任何一个是外键或类似枚举的值,它们可能是索引的好候选。我正在编写代码,从前端执行一些搜索(简单和复杂)。传统建议我使用动态查询…但是缺乏编译和较少的调试迫使我探索其他选项。我很好奇是什么传统建议你使用动态查询。。。对我来说,动态查询是最后的手段,当我无法用其他方法进行查询时。您是否真的在运行时构建查询?以下是一种情况:我想从一个或多个表中搜索一组用户。我不想把太多的搜索条件,除非需要…即使我的搜索字段设置得很好。如果它们是空的,那么在它们上搜索就没有意义了。@Sash:那么,也许动态SQL就是解决这个问题的方法?我不确定你的架构是什么样的。。。我仍然会考虑索引常用搜索字段(如果您可以确定哪些字段是),只要您没有索引500个字符的自由格式文本(这可能没有任何帮助),或者可以查看全文搜索和索引。如果其中任何一个是外键或类似枚举的值,则它们可能是索引的良好候选对象。