Oracle:SQL 查询何时停止访问数据库?

Oracle: When does a SQL query stop hitting the database?

每次我执行 SQL 查询时,通常我都会得到适合屏幕的结果。如果我想看到更多结果,我必须 select Fetch Last Page

我的问题是,当我 select Fetch Last Page 这是现在访问数据库还是只是初始查询 运行 并且结果存储在客户端的某个地方时,要显示吗?

大多数工具中都有一个概念叫做"Fetch size"。这是数据库将在单个提取调用中 return 的行数。

因此,对于 1000 行,提取大小为 150,您将访问数据库 7 次以获取数据,最后一次访问 "asking" 150 次,但只返回 100 次。

这就是为什么大多数工具会向您显示 "initial" 行而不是整组行的原因。

数据库 必须执行多少操作才能满足初始集取决于查询。例如:

select * from t

可以只抓取它找到的前 150 行以满足您的 fetchsize 150。

select * from t order by my_column

必须对 table 中的 所有 行进行排序(并因此访问),然后才能得出结果,然后以您要求的 fetchsize 传递给您为了。排序后的结果 * 可能是