تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
7464 أدوات العرض

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?

الصورة الرمزية
إهمال

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?

أفضل إجابة

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.

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
4
نوفمبر 16
3069
3
مارس 15
6449
2
مارس 15
5316
1
يونيو 23
8217
18
أغسطس 18
20019