这是我第一次与Oracle打交道。
我想" prequery"预期行数的数据库。
我在代码中看到的是:
SELECT COUNT(*) AS ROW_COUNT FROM (
{large query here}
)
使用正则表达式创建的查询是否会在FROM
语句中打破查询,而不是SELECT FIELD1, FIELD2.. FROM
只是查询SELECT COUNT(*) AS ROWCOUNT FROM..
会更快?我不确定我测试的任何收益是否是由于缓存造成的。感谢
答案 0 :(得分:3)
让我们调用您发布的“包装大型查询”的查询方法以及您询问的“修改大型查询”的正则表达式方法。
修改大型查询的速度不会更快。
当您SELECT COUNT(*)
而不是字段列表时,Oracle有时可以消除查询中的联接和/或表访问步骤。但是,即使你包装大型查询,Oracle仍然可以做所有这些事情。
包装大型查询还具有以下优点:它基本上适用于所有情况。如果大型查询包含GROUP BY
子句,则修改大型查询将无效。