หน้า 1 จากทั้งหมด 1

การปรับแต่งเพื่อเพิ่มประสิทธิภาพการทำงาน

โพสต์แล้ว: จันทร์ 08 ต.ค. 2012 6:06 pm
โดย openerp_docman
โดยซอฟท์แวร์บริหารจัดการองค์กรมักจะมีการจัดการกับข้อมูลจำนวนมาก จะต้องให้ความสำคัญเพื่อการป้องกันรูปแบบต่อไปนี้ ซึ่งจะทำให้ได้ประสิทธิภาพที่คงที่

• อย่าใส่คำสั่งเรียกใช้ browse() ไว้ในลูป ควรวางไว้ก่อนลูปเพื่อการเข้าถึงข้อมูลของวัตถุนั้นภายในลูป โดย ORM จะเพิ่มประสิทธิภาพของฐานข้อมูลตามจำนวนคิวรี่ของลักษณะเรียกดู

• หลีกเลี่ยงการเรียกซ้ำในลำดับชั้นของวัตถุ (วัตถุที่มีความสัมพันธ์กับ parent_id) โดยการเพิ่ม parent_left และฟิลด์ของข้อมูลจำนวนเต็ม parent_right บนวัตถุนั้นและการตั้งค่า _parent_store เป็น True ในคลาสของวัตถุนั้น โดย ORM จะใช้การปรับแต่งการประมวลคำสั่งก่อนด้วยการท่องไปในโครงสร้างต้นไม้ เพื่อให้สามารถดำเนินการเรียกซ้ำ (เช่น child_of) กับการคิวรี่ฐานข้อมูลใน O (1) แทน O (n)

• อย่าใช้ฟิลด์ของฟังก์ชันการทำงานอย่างสิ้นเปลืองโดยเฉพาะอย่างยิ่งถ้านำเอาไปรวมในมุมมองแบบต้นไม้ สามารถเพิ่มประสิทธิภาพของฟิลด์ฟังก์ชั่นด้วยกลไกสองอย่างดังนี้

- หลายที่ (multi) : ฟิลด์ข้อมูลทั้งหมดควรใช้ค่าแอตทริบิวต์ต่างๆร่วมกัน เพื่อการคำนวณด้วยการเรียกใช้การทำงานฟังก์ชันภายในครั้งเดียวกัน ที่จะส่งกลับมายังตัวบันทึกค่าแอตทริบิวต์ในการแมพค่าต่อไป

- จัดเก็บ (store) : ฟิลด์ฟังก์ชั่นที่เก็บแอตทริบิวต์ควรจะถูกเก็บไว้ในฐานข้อมูล และทำการประมวลผลซ้ำตามความต้องการเมื่อเรียกวัตถุที่เกี่ยวข้องจะถูกดัดแปลง รูปแบบสำหรับการเรียกแบบเจาะจงดังนี้ : store = {'model': (_ref_fnct, fields, priority)}

ที่มา : viewtopic.php?f=4&t=18