<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ODS CSV Output File Creation Very Slow in ODS and Base Reporting</title>
    <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139532#M11122</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Reeza's suggestion is a good one and probably the fastest. However if you want to stick with ODS then there is a tagset called SIMPLECSV that may be a bit faster than the standard CSV tagset. The difference between the standard CSV tagset and SIMPLECSV is that SIMPLECSV is treats currency and date values as strings instead of numbers and may quote other kinds of strings that are actually numbers. YMMV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods tagsets.simplecsv file="whatever";&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 13 Jan 2014 19:21:31 GMT</pubDate>
    <dc:creator>Tim_SAS</dc:creator>
    <dc:date>2014-01-13T19:21:31Z</dc:date>
    <item>
      <title>ODS CSV Output File Creation Very Slow</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139530#M11120</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm creating a CSV output file using ODS CSV and it takes a surprisingly long time to create.&amp;nbsp; It's large, but while it takes less than 17 minutes to read the data from disk and create a subset, it takes 94 minutes to write it out.&amp;nbsp; Before I start investigating whether there are any hardware-related issues that could account for this, is there any SAS-related issues that I should be aware of?&amp;nbsp; Is there an alternative approach that would accomplish the same thing?&amp;nbsp; I chose Proc Print because I need the variables a specific order and I can easily do that.&amp;nbsp; Any other solution would need to be able to the same thing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My log is below.&amp;nbsp; Thanks for your help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Steve &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;109&amp;nbsp; rsubmit ;&lt;/P&gt;&lt;P&gt;NOTE: Remote submit to TASK1 commencing.&lt;/P&gt;&lt;P&gt;63&amp;nbsp;&amp;nbsp; libname spj1 "\\cdc\csp_private\m103\spj1" ;&lt;/P&gt;&lt;P&gt;NOTE: Libref SPJ1 was successfully assigned as follows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Engine:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; V9&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Physical Name: \\cdc\csp_private\m103\spj1&lt;/P&gt;&lt;P&gt;64&amp;nbsp;&amp;nbsp; options obs=max ;&lt;/P&gt;&lt;P&gt;65&amp;nbsp;&amp;nbsp; Data spj1.VaxData ;&lt;/P&gt;&lt;P&gt;66&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;Grantee..Vaccination&lt;/P&gt;&lt;P&gt;67&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Keep= CDCID VaxGroup Vaxdate MVX CVX CPT TradeName LotNum Route Site RecordType&lt;/P&gt;&lt;P&gt;68&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VaxComplete VaxRefusal IISValidity ProvID V_Eligibility VaxEntDate ProvChar) ;&lt;/P&gt;&lt;P&gt;69&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where VaxGroup = 6 ;&lt;/P&gt;&lt;P&gt;70&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain VaxRecordNum 0 ;&lt;/P&gt;&lt;P&gt;71&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VaxRecordNum + 100 ;&lt;/P&gt;&lt;P&gt;72&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MatchNum = 1 ;&lt;/P&gt;&lt;P&gt;73&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length _PatientID $15 _VaxDate $8 _VaxEntDate $8 LotNum1-LotNum3 $1 ;&lt;/P&gt;&lt;P&gt;74&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PatientID = scan(CDCID,3,'-') ;&lt;/P&gt;&lt;P&gt;75&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _VaxDate = put(VaxDate,yymmddN8.) ;&lt;/P&gt;&lt;P&gt;76&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _VaxEntDate = put(VaxEntDate,yymmddn8.) ;&lt;/P&gt;&lt;P&gt;77&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(lotNum1, LotNum2, LotNum3) ;&lt;/P&gt;&lt;P&gt;78&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: There were 4850003 observations read from the data set BAA.VACCINATION.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE VaxGroup=6;&lt;/P&gt;&lt;P&gt;NOTE: The data set SPJ1.VAXDATA has 4850003 observations and 26 variables.&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16:56.65&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3:02.39&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;81&amp;nbsp;&amp;nbsp; ods _all_ close ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;82&amp;nbsp;&amp;nbsp; ods tagsets.csv file="\\cdc\csp_private\m103\spj1\VaxData.CSV" ;&lt;/P&gt;&lt;P&gt;NOTE: Writing TAGSETS.CSV Body file: \\cdc\csp_private\m103\spj1\VaxData.CSV&lt;/P&gt;&lt;P&gt;83&lt;/P&gt;&lt;P&gt;84&amp;nbsp;&amp;nbsp; Proc Print data = spj1.VaxData noobs ;&lt;/P&gt;&lt;P&gt;85&amp;nbsp;&amp;nbsp; Var _PatientID VaxRecordNum MatchNum _Vaxdate MVX CVX CPT TradeName LotNum1-LotNum3 Route&lt;/P&gt;&lt;P&gt;85 ! Site RecordType VaxComplete&lt;/P&gt;&lt;P&gt;86&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VaxRefusal IISValidity ProvID V_Eligibility _VaxEntDate ProvChar ;&lt;/P&gt;&lt;P&gt;87&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: There were 4850003 observations read from the data set SPJ1.VAXDATA.&lt;/P&gt;&lt;P&gt;NOTE: PROCEDURE PRINT used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:34:00.66&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:32:46.20&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;88&lt;/P&gt;&lt;P&gt;89&amp;nbsp;&amp;nbsp; ods _all_ close ;&lt;/P&gt;&lt;P&gt;NOTE: Remote submit to TASK1 complete.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jan 2014 18:41:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139530#M11120</guid>
      <dc:creator>spjcdc</dc:creator>
      <dc:date>2014-01-13T18:41:04Z</dc:date>
    </item>
    <item>
      <title>Re: ODS CSV Output File Creation Very Slow</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139531#M11121</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Use a data _null_ step to manually write the CSV file.&lt;/P&gt;&lt;P&gt;There's an answer on here in the past two weeks related to this question. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jan 2014 18:58:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139531#M11121</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-01-13T18:58:41Z</dc:date>
    </item>
    <item>
      <title>Re: ODS CSV Output File Creation Very Slow</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139532#M11122</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Reeza's suggestion is a good one and probably the fastest. However if you want to stick with ODS then there is a tagset called SIMPLECSV that may be a bit faster than the standard CSV tagset. The difference between the standard CSV tagset and SIMPLECSV is that SIMPLECSV is treats currency and date values as strings instead of numbers and may quote other kinds of strings that are actually numbers. YMMV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods tagsets.simplecsv file="whatever";&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jan 2014 19:21:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139532#M11122</guid>
      <dc:creator>Tim_SAS</dc:creator>
      <dc:date>2014-01-13T19:21:31Z</dc:date>
    </item>
    <item>
      <title>Re: ODS CSV Output File Creation Very Slow</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139533#M11123</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As Reeza and Tim said it's better to use data _null_ step to create csv files . I am also using the same to create. Here is my code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;set result_&amp;amp;CIRC ;&lt;/P&gt;&lt;P&gt;file "/sasdata/test.csv"&lt;/P&gt;&lt;P&gt;dlm="^" lrecl=20000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;length head1 $2000.;&lt;/P&gt;&lt;P&gt;head1 = "&amp;amp;variable_names&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if _n_=1 then do;&lt;/P&gt;&lt;P&gt;put head1&lt;/P&gt;&lt;P&gt;/*head2 head3 head4 head5*/&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;put @1&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&amp;amp;variable_names;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jan 2014 09:46:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-CSV-Output-File-Creation-Very-Slow/m-p/139533#M11123</guid>
      <dc:creator>Vish33</dc:creator>
      <dc:date>2014-01-15T09:46:15Z</dc:date>
    </item>
  </channel>
</rss>

