Question: I need to have my query “pause” the
SQL, stopping execution after the first screen is displayed. I
don’t want to fetch more rows than I need to map out each page, to
reduce the overhead and time for the initial screen to display. How
can I stop the fetching of SQL rows after the first screen is
displayed?
Answer: Oracle provides the
first_rows_n (e.g. first_rows_10, first_rows_100)
to force the optimizer to optimizer your SQL to start returning rows
as quickly as possible, and you can pause SQL after first page map
out in PL/SQL.
The pseudocode might look something like this, where you declare
a cursor and fetch the rows, pausing the fetch when you exit the
loop to map out the first screen. Please note that you can also use
the PL/SQL
BULK COLLECT and
FORALL operators for even faster performance:
declare cursor c1 as select /*+ first_rows_100 */
stuff from mytable;
Open cursor c1
Count:=0
LOOP
until EOF
count := count+1
fetch c1 into
:datatruct varray(20)
If count = 20 then DO
BEGIN
Map out the screen
DONE
END
LOOP
Display first page
For more PL/SQL advanced tips, see Dr. Hall’s book,
Oracle PL/SQL Tuning.
|
|
|
|
Guarantee your Success!
Oracle is the
world's most complex, robust and flexible database, considered
impossible to master without a mentor.
That's why all BC
Oracle trainers are working professionals, experts in Oracle who
share their tips and secrets. |
|
| |
|
Burleson is the American Team

Note:
This Oracle
documentation was created as a support and Oracle training reference for use by our
DBA performance tuning consulting professionals.
Feel free to ask questions on our
Oracle forum.
Verify
experience!
Anyone
considering using the services of an Oracle support expert should
independently investigate their credentials and experience, and not rely on
advertisements and self-proclaimed expertise. All legitimate Oracle experts
publish
their Oracle
qualifications.
Errata?
Oracle technology is changing and we
strive to update our BC Oracle support information. If you find an error
or have a suggestion for improving our content, we would appreciate your
feedback. Just
e-mail:
and include the URL for the page.
Copyright ? 1996 - 2012
All rights reserved.
Oracle ?
is the registered trademark of Oracle Corporation.
|
|