我有一个远程数据库 A,它有一个视图 v_myview。我正在开发一个本地数据库,它有一个 dblink 可以访问数据库 A 上的 v_myview。如果我像这样查询视图:
select * from v_myview @ dblink ;
它返回 50 万行。我只想从视图中获取一些特定的行,例如,要获取 id=123 的行,我的查询是
select * from v_myview @ dblink where id=123;
这按预期工作。我的问题来了,当我运行这个查询时,远程数据库会先生成 50 万行然后从那里找到 id=123 的行吗?或者远程视图首先应用我的过滤器然后查询数据库而不先检索 50 万行?我怎么知道。谢谢!