1. ให้ Sort น้อยครั้งที่สุดเท่าที่จะทำได้ เพราะ
- การ sort แต่ละครั้งจะไป interrupt parallel pipeline -- ติดแหงกอยู่ตรง sort ไม่สามารถไปทำ step ถัดไปได้จนกว่า sort จะเสร็จ
- ต้องอ่านข้อมูลทุก record ใน partition ก่อนถึงจะเริ่มพ่น output ออกมาได้
2. Sort บน key column ที่จำเป็นเท่านั้น
3. หลีกเลี่ยงการใช้ stable sort* โดยไม่จำเป็น
4. ถ้าเป็นไปได้ กำหนดค่า Sort Key Mode บน column ที่ถูก sort มาแล้วเสมอ
5. ปรับขนาดของ Restrict Memory Usage ให้เหมาะสม
Stable sort คือ การ sort ข้อมูลบน key column ที่ต้องการ แล้วในกรณีที่ key column มีค่าซ้ำกัน ให้คง order เหมือนกับ source โดย default เราไม่ได้กำหนดให้เป็น Stable sort
ตัวอย่าง
col1 col2
2 D
1 B
1 A
2 C
sort by col1 + stable sort
col1 col2
1 B
1 A
2 D
2 C
No comments:
Post a Comment