This question has been flagged
1 Reply
6299 Views

For a module I am writing, a new model based on a SQL view performs poorly unless I add some indices to the account_invoice, account_move_line and account_voucher tables in PostgreSQL.

What is the best way for my module to add these same indices?

I know how to do this via overriding _auto_init and using _execute_sql.

Is there another way? A better way?

Avatar
Discard

Can you tell us more about your Model and the SQL View? Is the reason of the question only about postgres performance issue ?

The module is at http://bazaar.launchpad.net/~rcarnes/openerp-shared/7.0/files/head:/beta/partner_account_history/ - without indices on the fields that are used to join and filter the tables in the query, the view take many seconds to return in list view. As soon as I create the indices, the view performs acceptably. The question is generic however - what is the best way to create indices that are needed for a module?

Best Answer

Hi Ray,

I have used another way for creating indices on the columns which I want into particular model.

I have just inherit that columns of a particular model and put the "select=True" into column defination like below.

For Ex.

'product_id':fields.many2one('product.product', 'Product', select=True),

System will automatically made an index on the product_id column of inherited model.

Avatar
Discard