Any idea or suggestions how to improve my database best performance.................???
Regards Hashim On Sat, Oct 29, 2011 at 9:40 AM, Mohamed Hashim <nmdhas...@gmail.com> wrote: > Thanks Alban & Gregg. > > > i will describe little more about that table > > > - We are using PHP application with Apache server & Postgresql 9.0.3 > in a dedicated server. > - stk_source table is mainly used to track the transactions from > parent to child > > Table "_100410.stk_source" > Column | Type | > Modifiers > -----------------------+-----------+----------------------------------------------------- > > source_id | integer | not null default > nextval('source_id_seq'::regclass) > stock_id | integer | > source_detail | integer[] | > transaction_reference | integer | > is_user_set | boolean | default false > > > We store transaction_type and transaction_id in source_detail column which > is an interger array for each transactions > > We use various functions to get the info based on transaction type > > For eg: > > In function to get the batch details we have used as > > FOR batch_id_rec in select distinct(batch_id) from order_status_batches > osb join batch_status_stock bss on osb.status_id=bss.batch_status_id where > stock_id in (select source_detail[2] from stk_source where stock_id IN > (SELECT > std_i.stock_id > > FROM order_details_shipments > ods > > JOIN shipment_pack_stock sps ON sps.pack_id=ods.pack_id AND > ods.order_id=sps.order_id AND ods.item_id=sps.item_id > JOIN stock_transaction_detail_106 std ON > std.transaction_id=sps.transaction_id > JOIN stock_transaction_detail_106 std_i ON std.stock_id = > std_i.stock_id AND std_i.transaction_type = 'i'::bpchar > WHERE shipment_item_id=$1 ) and source_detail[1]=3) LOOP > > ............................... > > ................................ > > ...................................... > > Similarly we have used in php pages and views > > SELECT abd.bill_no as bill_no,to_char(abd.bill_date,'dd/mm/yyyy') AS > date,mp.product_desc as product_desc,std.quantity,std.area,rip.price AS > rate, > FROM acc_bill_items_106 abi > JOIN acc_bill_details_106_table abd ON abd.bill_id=abi.bill_id AND > abd.bill_status='act' > JOIN stk_source_table ss ON ss.source_detail[2]=abi.item_id and > ss.source_detail[1]=1 > JOIN stock_transaction_detail_106_table std ON std.stock_id=ss.stock_id > JOIN stock_details_106_table sd106 ON sd106.stock_id=std.stock_id > JOIN master_product_106_table mp ON mp.product_id= sd106.product_id > JOIN receipt_item_price_106_table rip ON > rip.receipt_item_id=abi.item_id > WHERE abi.bill_id=$bill_id AND std.transaction_type='o' ; > > So where ever we have JOIN or used in functions the performance is very > low some times query returns results takes more than 45 mints. > > Normally if we fetch Select * from some_table..........it returns very > fast because it has less records. > > But when i put Select * from stk_source or to find the actual_cost > > EXPLAIN ANALYZE SELECT * FROM stk_source; > > i couln't able to retrieve the planner details waited for more than 50 to > 60 mints > > so question is in spite of having good server with high configuration and > also changed the postgresql configuration settings then why the system is > crawling? > > > *What are the other parameters have to look out or what are the other > config settings to be change to have the best performance??* > > Kindly help to sort out this problem...... > > > Thanks in advance..................!!!!!! > > Regards > Hashim > > > > > > > > > On Fri, Oct 28, 2011 at 5:07 PM, Alban Hertroys <haram...@gmail.com>wrote: > >> On 28 October 2011 09:02, Mohamed Hashim <nmdhas...@gmail.com> wrote: >> > EXPLAIN select * from stk_source ; >> > QUERY >> > PLAN >> > >> ------------------------------------------------------------------------------------- >> > Result (cost=0.00..6575755.39 rows=163132513 width=42) >> > -> Append (cost=0.00..6575755.39 rows=163132513 width=42) >> > -> Seq Scan on stk_source (cost=0.00..42.40 rows=1080 >> width=45) >> > -> Seq Scan on stk_source (cost=0.00..20928.37 rows=519179 >> > width=42) >> > -> Seq Scan on stk_source (cost=0.00..85125.82 rows=2111794 >> > width=42) >> > -> Seq Scan on stk_source (cost=0.00..6469658.80 >> rows=160500460 >> > width=42) >> >> That plan gives you the best possible performance given your query. >> Your example probably doesn't fit the problem you're investigating. >> >> -- >> If you can't see the forest for the trees, >> Cut the trees and you'll see there is no forest. >> > > > > -- > Regards > Mohamed Hashim.N > Mobile:09894587678 > -- Regards Mohamed Hashim.N Mobile:09894587678