เรื่องระบบนัด
เมื่อคลิกปุ่มลงรายการนัด จะใช้เวลานานมากกว่าจะขึ้นหน้าต่างเลือกประเภทรายการนัด(ในกรณีที่ผู้ป่วยมีประวัติการนัดเยอะ) แต่ในรายเดียวกันถ้าใช้เวอร์ชั่นเก่าจะไม่ช้า
Code เวอร์ชั่นใหม่ มีการ join กับ ovst เพื่อดึงเวลาขึ้นโชว์ ซึ่งทำให้การดึงข้อมูลขึ้นช้ากว่าเดิม
แต่เวอร์ชั่นเก่าไม่ได้ join เพื่อดึงเวลาขึ้นโชว์ ซึ่งดึงข้อมูงได้เร็ว
ไม่ทราบว่ามีวิธีแก้ปัญหาอย่างไร ?
code
select o.oapp_id,o.vstdate,v.vsttime,o.nextdate,o.nexttime,c.name as clinic_name ,
d.name as doctor_name,o.app_user,o.app_cause,o.contact_point,o.visit_vn
from oapp o
left outer join ovst v on v.vn=o.vn
left outer join clinic c on c.clinic=o.clinic
left outer join doctor d on d.code=o.doctor
where o.hn='0000789' order by o.vstdate desc
ผู้ตอบ : คุณชัยพร สุรเตมีย์กุล เวลา : 2010-12-16 09:27:48
ผมคิดว่าเป็นปัญหาเรื่องของระบบ Optimize sql ของ MySQL ครับ ตอนนี้ใช้ MySQL version อะไรครับ
ลองใช้คำสั่ง explain ไว้ข้างหน้า sql เพื่อตรวจสอบว่าระบบ Optimize ใช้ Index ถูกต้องหรือไม่ครับ
เช่น
explain
select o.oapp_id,o.vstdate,v.vsttime,o.nextdate,o.nexttime,c.name as clinic_name ,
d.name as doctor_name,o.app_user,o.app_cause,o.contact_point,o.visit_vn
from oapp o
left outer join ovst v on v.vn=o.vn
left outer join clinic c on c.clinic=o.clinic
left outer join doctor d on d.code=o.doctor
where o.hn='0000789' order by o.vstdate desc