Minimize
Blogger List

Johannes Ahrends
Toad and Oracle

Ben Boise
Toad SC Discussions

Kevin Dalton
Benchmark Factory

Steven Feuerstein
PL/SQL Obsession

Devin Gallagher
Toad SC discussions

Stuart Hodgins
JProbe Discussions

  Henrik "Mauritz" Johnson
Toad Tips & Tricks on the "other" Toads
  Mark Kurtz
Toad SC discussions
  Michael Lumbard
Toad SC discussions
Daniel Norwood
Toad for Data Analysts,
Toad Extension for Visual Studio
Debbie Peabody
Toad for Data Analysts
Gary Piper
Toad Reports Manager
John Pocknell
Toad for Oracle, JProbe
Kuljit Sangha
Toad SC discussions
Bert Scalzo Indicates Oracle ACE status
Toad for Oracle, Data Modeling, Benchmarking
Jeff Smith
Toad product family
Richard To
SQL Optimization
Jim Wankowski
DB2 - LUW and z/OS
John Weathington
  Toad Data Modeler Opens in a new window
Data Modeling
 
  Real Automated Code Testing for Oracle
Quest Code Tester blog
 
Minimize
Blog Tags
toad for oracle (122)
oracle (62)
plsql (46)
sql optimization (37)
toad for data analysts (28)
code tester (19)
toad for ibm db2 (13)
automation (11)
batch optimizer (10)
virtualization (10)
schema browser (9)
toad for sql server (9)
data grid (8)
sql (8)
sql editor (8)
toad data modeler (8)
benchmark factory (7)
excel (7)
query builder (7)
report manager (7)
toad extension (7)
visual studio (7)
11g (6)
configuration (6)
freeware (6)
health check (6)
vmware (6)
connect (5)
dba module (5)
er diagrammer (5)
F4 (5)
linux (5)
refactoring (5)
spotlight (5)
unicode (5)
compare (4)
debugger (4)
export (4)
formatter (4)
make code (4)
rman (4)
strip code (4)
benchmark (3)
bfscript (3)
bulk collect (3)
code templates (3)
code xpert (3)
database browser (3)
db2 (3)
notebook (3)
oem (3)
RAC (3)
session browser (3)
speed (3)
sql optimizer (3)
toad for mysql (3)
tpc-c (3)
9.7 (2)
alert log (2)
app designer (2)
awr (2)
code insight (2)
code snippets (2)
collection (2)
compare and sync (2)
compliance (2)
data generator (2)
data warehouse (2)
database explorer (2)
database monitor (2)
explain (2)
forall (2)
ftp (2)
group execute (2)
handbook (2)
installation (2)
job scheduler (2)
multi-task (2)
nested table (2)
os command (2)
profiler (2)
recovery (2)
release history (2)
save as (2)
schema compare (2)
sql recall (2)
stats pack (2)
subversion (2)
team coding (2)
trace file browser (2)
while loop (2)
10g (1)
64 bit (1)
7zip (1)
action (1)
addm (1)
alter (1)
ansi join (1)
array (1)
ccleaner (1)
code coverage (1)
code road map (1)
CRON (1)
cursor for loop (1)
data browser (1)
data subset (1)
database probe (1)
dbms_flashback (1)
dbms_profiler (1)
ddl (1)
feuerstein (1)
filezilla (1)
flash drive (1)
flow control (1)
for loop (1)
group policy manager (1)
hints (1)
import (1)
index (1)
inheritance (1)
invoker rights (1)
ipad (1)
java (1)
latency (1)
log switch (1)
logical model (1)
ltrim (1)
master-detail browser (1)
monitor (1)
multi-select (1)
naming standards (1)
network (1)
object explorer (1)
OEBS (1)
package (1)
parser (1)
partitioning (1)
performance (1)
pragma (1)
project manager (1)
RAT (1)
revo (1)
REXEC (1)
schema report (1)
script manager (1)
search (1)
set operator (1)
sga (1)
slow (1)
sonarsource (1)
source control (1)
space projection (1)
sql monitor (1)
sql navigator (1)
sql script (1)
sql tracker (1)
sql*plus (1)
standards (1)
statistics (1)
stored procedure (1)
string parser (1)
sub-model (1)
sub-type (1)
synch (1)
synchback (1)
TELNET (1)
toad (1)
trace (1)
unit test (1)
unix (1)
usb (1)
utility (1)
v10 (1)
v9.5 (1)
version control (1)
waits (1)
workload replay (1)
workspace (1)
xml (1)
 
WELCOME, GUEST
 
 

Blogs
Toad and Database Commentaries

Toad World blogs are a mix of insightful how-tos from Quest experts as well as their commentary on experiences with new database technologies.  Have some views of your own to share?  Post your comments!  Note:  Comments are restricted to registered Toad World users.

Do you have a topic that you'd like discussed?  We'd love to hear from you.  Send us your idea for a blog topic.


Nov 6

Written by: Bert
Tuesday, November 06, 2007 8:14 AM  RssIcon

Probably one of the most useful and frequented tasks performed with Toad® for Oracle is saving data to a file, such as comma delimited text (or any of the other numerous formats supported). It’s a relatively easy feature to find – you simply depress the “right hand mouse” (RHM) while anywhere within the displayed data grid and choose the “save as” option as shown below, but what if you could make that save operation run 10X faster?

 

OK – maybe not truly 10X faster, but much faster than by default – and much faster on PCs with limited or stressed memory resources (for those power users who like to run 50 applications at once on their poor old PC). In these specific cases, as well as in general, this little trick can make all the difference in the world. Let’s look at the “Save As” dialog options normally presented (see below).

I have asked for a comma delimited text file named “bert.txt” placed in my “c:\temp” directory. That’s pretty easy and where many people stop (i.e. they just press the OK button). Now look at the option for “Display all exported results in the grid” – what does this option mean and do? Note that this option used to be called “Clone Cursor” in prior versions and was defaulted to unchecked. Regardless of which Toad version and option verbiage, this option is simply asking “Should Toad display the entire exported data set within its data grid (and thus in memory) as well as write it to the file? The default in all versions regardless of what the option is called equates to yes – or, kill my PC’s memory.

Think about that – because this is a hugely critical question. Let’s say I’m going to export a data set with one million rows. With display results in grid = checked (or clone cursor = unchecked), I’m asking Toad to write the million rows of data to the text file and display it within my live data grid. So for each row, Toad has to write a record to the text file and add another row to the data grid. So it’s doing two things – one of which can be memory intensive. So the “Save As” takes a long while to run – and Windows task manager will show the Toad process as using a rapidly increasing amount of memory. 

If I now repeat the “Save As” operation with display results in grid = unchecked (or clone cursor = checked), I’m asking Toad to only write the million rows of data to the text file and not to display it within my live data grid. So now the “Save As” operation is doing just one task – and not consuming lots of memory on my PC. Thus it runs oodles faster.

So what’s the downside (if any)? In this second example Toad simply creates a second cursor through which to save the data without copying it to the live data grid. Thus Toad will create and use a second cursor resource. That’s not too painful – but it requires that Toad has to re-execute the query, which could take some time. However, the time gained will generally exceed this extra time. Besides, that work is being done on the faster server. 

The only real down-side is that my live data grid does not contain the million rows – so if I now scroll down in my data grid, Toad has to fetch those rows. But I know my poor old brain cannot read through and appreciate more than say two dozens rows of data. So in my case, absolutely nothing lost and everything gained.

4 comment(s) so far...


Re: Expedite Saving Data via Toad

Nice one Bert. I wondered what that option was really for - still can't see why I need to show the results in a grid when I'm saving that grid anyway! Cheers, Norm.

By Norm on   Wednesday, November 07, 2007 6:14 AM

Re: Expedite Saving Data via Toad

Thanks - and yes - great minds think alike :)

By bscalzo on   Thursday, November 08, 2007 3:57 AM

Re: Expedite Saving Data via Toad

I agree with Norm that I rarely would need to see the results in Toad if I am exporting it but if I understand this correctly, if I don't check "Display all exported results in grid" then Toad will have to re-execute the full query to output the results? If that is the case then were is the break even point for long running queries. If my query takes 90 mins to run and I want to export the results will unchecking that option really be faster if it has to run for another 90 mins first?? Just curious

By wfroelich on   Friday, November 09, 2007 6:19 AM

Re: Expedite Saving Data via Toad

Yes - Toad will need to create a second and separate cursor to step through the rows to output them to the file. It's purely a user choice. If you need to output the data and view it in the grid both, then you go with display=yes (clone cursor=no). If you are not going to need to view the rows in the grid as well, you go the opposite way.

By bscalzo on   Saturday, November 10, 2007 12:52 AM
Search Blog Entries