#Stored Procedure#

Hi All,

Is there any data restriction in SP while retrieving a data from DB?

I am facing some sort of weird issue that When I executes SP from Appian end(Process modelling), it fails to execute intermittently . Out of 10 times, it executes at most once and remaining time it just skips the node and no data is getting saved(I am performing selection on single table and inserting onto another after manipulating few data). However When I executes from DB directly, it works fine as expected which shows that no logical issue.So How can I solve this issue?

Thanks in advance..!

Note:And also I would like to highlight that execution time of SP ranges from 40 min to 1 hour as I am dealing with huge amount of data.

  Discussion posts and replies are publicly visible

Parents
  • Hello All,

    Thank you for all your responses.

    aloks176 / coltonb - I tried setting out the timing but still it fails. Because my SP execution time varies time to time(Probably an hour to 2). So I can't set any theoretical execution time. Moreover I can't improve the performance as its already optimized.

    ashishd423 -My target table doesn't contains any indexes apart from primary key(Which is default index). And I am dealing with min of 1L of data to store onto target table. And I am not doing any complex operation . I am joining a four tables and inserting onto a new table.

    And I have few queries about SP while we call from Appian
    1)How long a SP works? Is there any restriction in time line like it works for some time(Say 20 min) and beyond the time it skips?
    2)Will there be any chances that SP can be asynchronous? I mean just triggering an SP and skipping the node.
    3)Will the SP skips the execution when sql server memory is full?

    Thanks in advance
  • 1)How long a SP works? Is there any restriction in time line like it works for some time(Say 20 min) and beyond the time it skips?

    - Certainly if SP takes more time, Stored Procedure node breaks and generates alert that it is not able to pull required resources to perform this operation. But the stored process still runs in backend. You can see if that procedure is running in backend by running query to see process list i.e. show processlist. This will help you identify is procedure is still running. It will look like below. Info section of the result will show if your SP is still running.

     

    2)Will there be any chances that SP can be asynchronous? I mean just triggering an SP and skipping the node.

    - I dont think we can call SP asynchronously.

    3)Will the SP skips the execution when sql server memory is full?

    - This is a rare case but high sql memory usage certainly affects the execution of SP.

    You can try below approach,

    As you said, you are joining four tables and inserting onto a new table.  Here, can you create new view which has the data combining 4 tables and use that view in your stored procedure. Also, if Stored procedure is taking a lot of time to execute, other option is to run stored procedure is batches e.g. run SP for 50k at a time into multiple batches. Batch size can vary dependent on the time taken for execution of SP.

    Let me know if this helps.

    ~ Ashish

Reply
  • 1)How long a SP works? Is there any restriction in time line like it works for some time(Say 20 min) and beyond the time it skips?

    - Certainly if SP takes more time, Stored Procedure node breaks and generates alert that it is not able to pull required resources to perform this operation. But the stored process still runs in backend. You can see if that procedure is running in backend by running query to see process list i.e. show processlist. This will help you identify is procedure is still running. It will look like below. Info section of the result will show if your SP is still running.

     

    2)Will there be any chances that SP can be asynchronous? I mean just triggering an SP and skipping the node.

    - I dont think we can call SP asynchronously.

    3)Will the SP skips the execution when sql server memory is full?

    - This is a rare case but high sql memory usage certainly affects the execution of SP.

    You can try below approach,

    As you said, you are joining four tables and inserting onto a new table.  Here, can you create new view which has the data combining 4 tables and use that view in your stored procedure. Also, if Stored procedure is taking a lot of time to execute, other option is to run stored procedure is batches e.g. run SP for 50k at a time into multiple batches. Batch size can vary dependent on the time taken for execution of SP.

    Let me know if this helps.

    ~ Ashish

Children
No Data