在Oracle中依靠大型表查询

时间:2017-09-05 16:00:51

标签: oracle count

这是我第一次与Oracle打交道。

我想" prequery"预期行数的数据库。

我在代码中看到的是:

SELECT COUNT(*) AS ROW_COUNT FROM (
    {large query here}
)

使用正则表达式创建的查询是否会在FROM语句中打破查询,而不是SELECT FIELD1, FIELD2.. FROM只是查询SELECT COUNT(*) AS ROWCOUNT FROM..会更快?我不确定我测试的任何收益是否是由于缓存造成的。感谢

1 个答案:

答案 0 :(得分:3)

让我们调用您发布的“包装大型查询”的查询方法以及您询问的“修改大型查询”的正则表达式方法。

修改大型查询的速度不会更快。

当您SELECT COUNT(*)而不是字段列表时,Oracle有时可以消除查询中的联接和/或表访问步骤。但是,即使你包装大型查询,Oracle仍然可以做所有这些事情。

包装大型查询还具有以下优点:它基本上适用于所有情况。如果大型查询包含GROUP BY子句,则修改大型查询将无效。