1
ห้อง MS Access / : จะป้องกันError"File may be corrupt"ขณะLoad Data ผ่าน odbcหรือOraOLEDB อย่างไร
« เมื่อ: 17 ก.พ. 62 , 13:39:09 »
1. ลองดูว่าไฟล์ฐานข้อมูลของ Access มีขนาดใกล้ 2 GB ซึ่งเป็นขนาดสูงสุดที่ Access ให้ใช้ได้หรือเปล่า ถ้าใกล้หรือเต็มแล้ว ก็ต้องทำ Compact and Repair Database ของตัว Access เพื่อกระชับฐานข้อมูลให้เล็กลงก่อนครับ เพราะการลบเรคอร์ด,เทเบิล หรืออะไรต่างๆในไฟล์ Access จะไม่ได้ทำให้ขนาดของไฟล์ลดลงไปในทันทีครับ
2. อยากให้ปรับ SQL จากการอ้างหลายๆเทเบิลใน FROM cluase โดยไม่มีการ JOIN กันเลย แต่ไปใช้เงื่อนไขใน WHERE clause เป็นตัวจับคู่เรคอร์ดระหว่างเทเบิล S,B,W,T แทน ซึ่งผลของ FROM cluse แบบนี้ เป็นไปได้ว่า Oracle จะหาผลทุกเรคอร์ดจากทุกเทเบิลจับคู่กันหมดก่อน แล้วค่อยเอาผมมากรองโดย WHERE cluase เป็นลำดับถัดไป (ลำดับการทำงานของ Oracle-SQL https://oracle.readthedocs.io/en/latest/sql/basics/query-processing-order.html) ถ้าแต่ละเทเบิลมีแค่ 100 เรคอร์ด เราจะได้ 100x100x100x100 = 100 ล้านเรคอร์ดออกมาก่อน ถึงจะค่อยถูกกรองโดย WHERE cluase อีกที ดังนั้นอยากให้ใส่ JOIN ใน FROM cluase เพื่อเชื่อมเรคอร์ดที่สัมพันธ์กันของแต่ละเทเบิลให้เสร็จก่อนจะมีประสิทธิภาพกว่าครับ ... ***แต่***ก็ไม่แน่ครับ ถ้าตัว Query Processing ของ Oracle ฉลาด มันก็จะไปเอาเงื่อนไขใน WHERE cluase ผนวกเข้าไปคิดพร้อมขั้นตอน FROM cluase เลยก็ได้
2. อยากให้ปรับ SQL จากการอ้างหลายๆเทเบิลใน FROM cluase โดยไม่มีการ JOIN กันเลย แต่ไปใช้เงื่อนไขใน WHERE clause เป็นตัวจับคู่เรคอร์ดระหว่างเทเบิล S,B,W,T แทน ซึ่งผลของ FROM cluse แบบนี้ เป็นไปได้ว่า Oracle จะหาผลทุกเรคอร์ดจากทุกเทเบิลจับคู่กันหมดก่อน แล้วค่อยเอาผมมากรองโดย WHERE cluase เป็นลำดับถัดไป (ลำดับการทำงานของ Oracle-SQL https://oracle.readthedocs.io/en/latest/sql/basics/query-processing-order.html) ถ้าแต่ละเทเบิลมีแค่ 100 เรคอร์ด เราจะได้ 100x100x100x100 = 100 ล้านเรคอร์ดออกมาก่อน ถึงจะค่อยถูกกรองโดย WHERE cluase อีกที ดังนั้นอยากให้ใส่ JOIN ใน FROM cluase เพื่อเชื่อมเรคอร์ดที่สัมพันธ์กันของแต่ละเทเบิลให้เสร็จก่อนจะมีประสิทธิภาพกว่าครับ ... ***แต่***ก็ไม่แน่ครับ ถ้าตัว Query Processing ของ Oracle ฉลาด มันก็จะไปเอาเงื่อนไขใน WHERE cluase ผนวกเข้าไปคิดพร้อมขั้นตอน FROM cluase เลยก็ได้
โพสต์นี้ได้รับคำขอบคุณจาก: Piya125