<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:r_ansi;
        panose-1:2 11 6 9 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='color:#1F497D'>Unfortunately I have to agree
with your client on the QTP/QUIZ argument. <o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>QTP is (IMHO) a much smarter
tool to use for “</span>simple, straight forward extracts to create CSV
files<span style='color:#1F497D'>”. QTP Allows you to do more with the
extracts than QUIZ. It also gives you more readable statistics to find problems
than QUIZ. QTP allows you to logically break up an extract into REQUESTS, where
QUIZ needs separate programs.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>QUIZ also has/had a problem with
extracting more than 32767 records into a text file (NO HEAD, PAGE LENGTH 0),
it inserted blank lines somewhere in the middle of the file for no reason.
After that I used QTP.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>In short and IMHO, QUIZ is DUMB
and should only be used to report the contents of a subfile.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>As for the TEMP/DEFINE issue, I
agree with you.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>I think the assumption that
DEFINES are slower than TEMPS is a little clouded. A straight DEFINE vs. a
similar program than uses TEMPS is not going to give you any major benefit.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>If you have cascading DEFINES or
DEFINES that are referenced multiple times, then TEMPS would be a performance
improvement as the DEFINE is re-evaluated every time it is referenced and the
TEMP is only evaluated once per record complex.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>BUT. If you incorporate OUTPUT
PHASE READS and TEMPS, and/or TEMPS with an AT statement…then you start
leaving QUIZ and DEFINES far behind.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>By OUTPUT PHASE READING all
files that are NOT required in the record complex (like Client Names, Address
Types, etc), your record complex is much smaller and therefore much faster.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Of course if you had the option
of an SQL database, then you can move the ACCESS statement into a CURSOR and retrieve
only the columns you want, everything increases exponentially.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Just my two cents worth. I’ve
been doing this for a few years now and stick to what I have proven works best.
I did the same benchmarks back in the late 80’s and found quiz was faster
at dumping a file, but most programs never stay that way. Sooner or later
someone wants more in “that” report, so I always start out calling
my quiz-only programs ??R01B.QZS just in case I need to add a QTP extract in front
of it down the road.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Ken<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> powerh-l-bounces+ken.langendock=rogers.com@lists.sowder.com
[mailto:powerh-l-bounces+ken.langendock=rogers.com@lists.sowder.com] <b>On
Behalf Of </b>John Stires<br>
<b>Sent:</b> August 18, 2009 9:46 AM<br>
<b>To:</b> powerh-l@lists.sowder.com<br>
<b>Subject:</b> [Bulk] Performance Questions and a little need for some
education.<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I have always been under the understanding that, in general,
you use TEMP ITEMs in QTP rather than DEFINEs. The client where I am
currently working needs some convincing and is willing for me to run a bench
test. They use QTP heavily for doing simple, straight forward
extracts to create CSV files. I have strongly suggested that QUIZ would
be a much better tool or, at least use TEMPs instead of DEFINEs.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I took one of their production extract QTP programs with
loads of DEFINES and converted them all to TEMP ITEMs. This is the only
difference. The original does not have as many cascading DEFINEs as most
of their programs so this is an even better test in comparing the performance
of DEFINES vs. TEMPs and then vs. QUIZ to create the same output file.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>I ran my test programs numerous times manually on the
development machine and got execution times pretty much as I expected.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Records
Processed
DEFINEs
TEMPs
QUIZ<o:p></o:p></p>
<p class=MsoNormal>123,800
0:0:54
0:00:53
0:00:45<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Then I put them into a COM file and ran them with a SHOW
TIME before and after the programs.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Records
Processed
DEFINEs
TEMPs
QUIZ<o:p></o:p></p>
<p class=MsoNormal>123,800
0:0:53
0:00:53
0:00:45<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Then I took these three COM files to their production
machine and got totally unexpected results:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Records
Processed
DEFINEs
TEMPs
QUIZ<o:p></o:p></p>
<p class=MsoNormal>158,802
0:00:53
0:01:01
0:00:57<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>The development machine is an ALPHA running <span
style='font-size:10.0pt;font-family:r_ansi'>OpenVMS V8.3 with PowerHouse
version 8.40.D running against RMS files..<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:r_ansi'>The
production machine is a Titanium running the same version of VMS and
PowerHouse.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:r_ansi'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:r_ansi'>Can
someone explain to me how DEFINES can actually run faster the TEMPs and even a
comparable QUIZ program? This kind of shakes my long standing belief
system in how QTP works.<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:r_ansi'><o:p> </o:p></span></p>
<p class=MsoNormal>Thanks,<o:p></o:p></p>
<p class=MsoNormal>John Stires<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>