Hi Nick,

If all these results are used only during the session (I see you're anyway 
deleting the whole table in the beginning) - you can consider using global 
temporary table instead of permanent one.

Yavor

On Tuesday, March 12, 2013 5:24:41 AM UTC+2, Ninja Li wrote:
>
> Andrey,
>  
> Thanks for your replay. I agree with your suggestion that result_table 
> might be the bottleneck, as multiple inserts and deletes are going against 
> the table during peak hours. We are looking into setting INITRANS to a 
> higher number for result_table to reduce contention. 
>  
> I will keep you posted on any progress.
>  
> Nick
>  
>  
>  
>  
>
> On Tuesday, March 5, 2013 6:04:44 PM UTC-5, Ninja Li wrote: 
>
>> Hi, 
>>  
>> I am having performance issues with a .NET web application that calls the 
>> stored procedure on Oracle 11g v2 database.
>>  
>> The basic web page setting is as follows; 
>>  
>> The user enters various criteria, including date range on the web page, 
>> which are passed as parameters to backend  stored procedure. The procedure 
>> will insert the result set returned, up to a thousand record for each query 
>> ( in most cases, well below 100 ), into a table results_table, with the 
>> user session id:
>>  
>>  delete result_table 
>> where session_id = p_session_id;
>>  
>>  insert into result_table 
>> select session_id, col1, col2. ....
>> from    tab1, tab2
>> where  tab1.id = tab2.id
>> and     date_start = '01-JAN-2011'
>> and     date_end =  '01-FEB-2013'
>> and    ..........;
>>  
>> Another procedure will be called to display the data: 
>>  
>> open cursor for  
>> select ......
>> from    result_table
>> where  session_id = p_sessionid;
>>  
>> Here is the issue and observations:
>>  
>> Hundreds of users will log on to use the web application during peak 
>> business hours ( 10am - 6pm ) and delete and insert into the result_table. 
>> The query can take 5 or more minutes during business hours but will return 
>> in a second or two every time in off peak hours. When I run the procedure 
>> manually in SQL*Plus with all the parameters and a test session id, it 
>> completes in a second or two each time and inserts the records into the 
>> result_table on production even during peak hours and when web page can't 
>> return the same set of the records.
>>  
>> I also found is that if I narrow the date range from two years to only 
>> 3-4 months, the query will return from the web page very fast each time. So 
>> the data volumn seems to play a role here. The two tabls has 6 million and 
>> 40 million records respectively.
>>  
>> There looks to be performance contention here and and I would be grateful 
>> for any ideas. I searched the web and found that the setting of freelist 
>> can cause contention for multiple inserts to a table. 
>>  
>> The tablespace for the Oracle database is auto managed (ASSM). 
>>  
>> Thanks in advance for your advice.
>>  
>> Nick 
>>  
>>  
>>  
>>  
>>  
>>  
>>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Oracle PL/SQL" group.
To post to this group, send email to Oracle-PLSQL@googlegroups.com
To unsubscribe from this group, send email to
oracle-plsql-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"Oracle PL/SQL" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to oracle-plsql+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to