set doc on --DOCUMENT set echo on --pause -- view merging select * from dual; select * from table(dbms_xplan.display_cursor); --pause create or replace view v as select * from dual; select * from (select * from v); alter session set "_simple_view_merging"=false; select * from (select * from v); alter session set "_simple_view_merging"=true; select * from (select /*+ NO_MERGE */ * from v); select * from (select rownum r, v.* from v); -- scalar subqueries, run a subquery for populating a value in a single column or a row (9i+) select owner, count(*) from test_objects o group by owner; -- another way (excludes nulls if any) select u.username, (select count(*) from test_objects o where u.username = o.owner) obj_count from test_users u; select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST')); set echo off