สำหรับ table ที่ join กันนั้นใช้ primary key ในการ join แต่ปัญหาคือ ปริมาณ record ที่อยู่ใน table หลักนั้นน่าจะใหญ่จนเกิน SQLite ได้ออกแบบไว้ หรือจะพูดให้ถูกต้องคือ ใช้งานผิดประเภท นั้นเอง
Table A เป็นข้อมูลการขาย จำนวน 10 เดือน มีจำนวน 97409 records
Table B เป็นข้อมูลลูกค้า มี 2 ฟิวล์ รหัสและ รายชื่อ 6329 records
Table C เป็นข้อมูลสินค้า มี 2 ฟิวล์ รหัสและชื่อสินค้า 109 records
การ join เป็น inner join ธรรมดา ๆ ผ่าน primary key แต่นั้นอาจเป็นเพราะ SQLite ไม่ใช่ Database server อย่าง MySQL ที่มีระบบจัดการที่ดีกว่านั้นเอง
วิธีแก้ไข
- ทำ Table ที่ใช้เก็บผลลัพธ์ และเลือกข้อมูลมา join ครั้งละไม่มากเกินไป (ถ้า run เกิน 10 นาที แสดงว่ามากเกินไปแล้ว)
- ใช้ประโยชน์จาก TEMP TABLE
ตัวโปรแกรม SQLite ไม่ได้ห่วย แต่เป็นคนใช้งานที่ห่วยเองครับงานนี้ คงต้องเก็บเกี่ยวประสบการณ์และแก้ไขต่อไปให้ใช้งานได้ดีขึ้นกว่านี้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น