<?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 Performnce Issue: Merge Update Insert with SAS Pass through facility in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581624#M75642</link>
    <description>&lt;P&gt;Hi All,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am facing performance issue when I am using Method 1. Now, I have to fix the performance issue by re-writing the query.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Method 1.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;sql&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; connect to ORACLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBEXT=XXXX BUFF=XXXXX PATH=XXXXX DOMAIN="XXXX"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; execute&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MERGE INTO&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lib1.Target&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USING&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lib1.Source&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.A_KEY = Target.A_key AND&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.P_KEY = Target.P_KEY AND&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.R_KEY = Target.R_KEY&amp;nbsp; &amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN MATCHED THEN UPDATE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.col1= Source.col1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.col2= Source.col2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.col3= Source.col3,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN NOT MATCHED THEN INSERT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.A_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.P_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.R_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.A_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.P_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.R_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ) by ORACLE;&lt;/P&gt;&lt;P&gt;disconnect from ORACLE;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;quit&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ROCEDURE SQL used (Total process time):&lt;BR /&gt;real time &lt;SPAN&gt;30:45.15&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I Need to fix the performance.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Can anyone please suggest on this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Rama Goteti.&lt;/P&gt;</description>
    <pubDate>Fri, 16 Aug 2019 00:28:29 GMT</pubDate>
    <dc:creator>VVDR</dc:creator>
    <dc:date>2019-08-16T00:28:29Z</dc:date>
    <item>
      <title>Performnce Issue: Merge Update Insert with SAS Pass through facility</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581624#M75642</link>
      <description>&lt;P&gt;Hi All,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am facing performance issue when I am using Method 1. Now, I have to fix the performance issue by re-writing the query.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Method 1.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;sql&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; connect to ORACLE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DBEXT=XXXX BUFF=XXXXX PATH=XXXXX DOMAIN="XXXX"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; execute&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MERGE INTO&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lib1.Target&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USING&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lib1.Source&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.A_KEY = Target.A_key AND&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.P_KEY = Target.P_KEY AND&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.R_KEY = Target.R_KEY&amp;nbsp; &amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN MATCHED THEN UPDATE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.col1= Source.col1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.col2= Source.col2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.col3= Source.col3,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHEN NOT MATCHED THEN INSERT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.A_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.P_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Target.R_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.A_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.P_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Source.R_KEY,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ) by ORACLE;&lt;/P&gt;&lt;P&gt;disconnect from ORACLE;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;quit&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ROCEDURE SQL used (Total process time):&lt;BR /&gt;real time &lt;SPAN&gt;30:45.15&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I Need to fix the performance.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Can anyone please suggest on this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Rama Goteti.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 00:28:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581624#M75642</guid>
      <dc:creator>VVDR</dc:creator>
      <dc:date>2019-08-16T00:28:29Z</dc:date>
    </item>
    <item>
      <title>Re: Performnce Issue: Merge Update Insert with SAS Pass through facility</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581625#M75643</link>
      <description>&lt;P&gt;From what I see both your SOURCE and TARGET tables are in Oracle and all processing is done in Oracle - no SAS involvement at all except for submitting the query. Run your query in SQLPLUS and verify if you have the same performance or not. Also get advice from your Oracle DBA regarding the most efficient techniques used at your site.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 00:27:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581625#M75643</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2019-08-16T00:27:53Z</dc:date>
    </item>
    <item>
      <title>Re: Performnce Issue: Merge Update Insert with SAS Pass through facility</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581627#M75644</link>
      <description>&lt;P&gt;Hi SASKiwi,&lt;/P&gt;&lt;P&gt;Thanks for your quick reply.&lt;/P&gt;&lt;P&gt;Before I put it in Oracle team's review, I just wanted to separate the query and run just to see how the performance is improved.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please suggest the best way to check the alternative methods of handling this at SAS level.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Rama Goteti&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 00:53:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581627#M75644</guid>
      <dc:creator>VVDR</dc:creator>
      <dc:date>2019-08-16T00:53:42Z</dc:date>
    </item>
    <item>
      <title>Re: Performnce Issue: Merge Update Insert with SAS Pass through facility</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581638#M75645</link>
      <description>&lt;P&gt;Custom pass through queries are generally the most efficient way to do external database processing from SAS. Adding SAS-type processing is highly unlikely to speed things up. You need to tune the query you have and your own Oracle people are in the best position to help.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One thought might be to simplify your query by first deleting rows to be updated, then just do a simple insert from your source table. However I don't know the structure of your data to verify whether this is possible or not.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 02:51:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581638#M75645</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2019-08-16T02:51:54Z</dc:date>
    </item>
    <item>
      <title>Re: Performnce Issue: Merge Update Insert with SAS Pass through facility</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581643#M75646</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;As a reply to this--&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;One thought might be to simplify your query by first deleting rows to be updated, then just do a simple insert from your source table. However I don't know the structure of your data to verify whether this is possible or not.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have few other columns that are not getting changed upon this Update statement. Hence, I can't implement this as a viable solution.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I am also thinking of HASH technique to implement in this. Don't know how it will go, but just a thought. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Appreciate your support !!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 03:53:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581643#M75646</guid>
      <dc:creator>VVDR</dc:creator>
      <dc:date>2019-08-16T03:53:53Z</dc:date>
    </item>
    <item>
      <title>Re: Performnce Issue: Merge Update Insert with SAS Pass through facility</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581649#M75647</link>
      <description>&lt;P&gt;I don't know anything about Oracle hash solutions. A SAS hash solution is not applicable here.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I were faced with this I would do an "explain plan" to see what Oracle is doing behind the scenes, check appropriate indexes are applied, maybe explore Oracle hints to see if they help.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I suggest you also post your question on an Oracle forum as there is bound to be more Oracle tuning experts there.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 06:22:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581649#M75647</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2019-08-16T06:22:52Z</dc:date>
    </item>
    <item>
      <title>Re: Performnce Issue: Merge Update Insert with SAS Pass through facility</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581657#M75648</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/79200"&gt;@VVDR&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With source and target both being in Oracle using explicit pass-through SQL is the right way to go which also gives you most flexibility.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When it comes to developing and tweaking such code then I use normally a client like SQL Developer or Dbiever.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't know anything about the data volumes nor your environment so can't say if the execution times are reasonable or not.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Running an explain for the code directly via a client (like SQL Developer) should tell you where you spend most time.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As a guess: You either don't have appropriate indexes defined and end up with full table scans or then the statistics are not updated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To update the statistics below a piece of code "as is" which I've used in a past project. You will have to amend the code for your purposes.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* update index stats on Ora target tables*/
%macro analize_index_compute_stat();
  %local _source_tbl _ora_user;
  %do i=0 %to %eval(&amp;amp;_output_count - 1);
    %let _source_tbl=%upcase(&amp;amp;&amp;amp;_output&amp;amp;i);

    %let _ora_user=;
    proc sql noprint;
      select sysvalue into :ora_user 
      from dictionary.libnames
        where libname="%scan(&amp;amp;_source_tbl,1,.)" 
      ;
    quit;

    proc sql;
      connect to oracle as ora
          ( &amp;amp;ora_connection_string );
      execute by ora
        (
          begin
            for i in 
              (
                select INDEX_NAME from USER_INDEXES
                where table_name=%unquote(%nrbquote(')%scan(&amp;amp;_source_tbl,-1,.)%nrbquote('))
              )
              LOOP
                execute immediate 'ANALYZE INDEX '||%nrbquote(')%trim(&amp;amp;ora_user).%nrbquote(')||i.INDEX_NAME||' COMPUTE STATISTICS';
            end loop;
          end;
        );
      disconnect from ora;
    quit;
  %end;
%mend;
%analize_index_compute_stat();&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;An additional option could be to use Oracle hints to have the Oracle SQL execute in parallel (you need to use Proc SQL option PRESERVE_COMMENTS for the SAS compiler not to remove such hints as comments).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;....and as&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13976"&gt;@SASKiwi&lt;/a&gt;&amp;nbsp;already proposed: We are SAS experts. Why not ask an Oracle expert if you've got a problem with an Oracle only SQL.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Aug 2019 07:16:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/581657#M75648</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2019-08-16T07:16:17Z</dc:date>
    </item>
    <item>
      <title>Re: Performnce Issue: Merge Update Insert with SAS Pass through facility</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/584405#M75756</link>
      <description>&lt;P&gt;Hello All,&lt;/P&gt;&lt;P&gt;I have posted the same query in SQL forum. Thanks&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13976" target="_blank" rel="noopener"&gt;@SASKiwi&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp; for this thought. It saved a lot of time.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I was given a simple solution as mentioned in this link.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;See:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://jonathanlewis.wordpress.com/2016/06/06/merge-precision/" target="_blank" rel="nofollow noopener"&gt;https://jonathanlewis.wordpress.com/2016/06/06/merge-precision/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Rams&lt;/P&gt;</description>
      <pubDate>Fri, 30 Aug 2019 12:09:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Performnce-Issue-Merge-Update-Insert-with-SAS-Pass-through/m-p/584405#M75756</guid>
      <dc:creator>VVDR</dc:creator>
      <dc:date>2019-08-30T12:09:31Z</dc:date>
    </item>
  </channel>
</rss>

