ฉันมีข้อกำหนดในโครงการที่ฉันกำลังดำเนินการอยู่เพื่อเปรียบเทียบเวอร์ชันล่าสุดของบันทึกกับบันทึกในอดีตเพื่อตรวจจับการเปลี่ยนแปลง
ฉันใช้เฟรมเวิร์กการซิงค์ข้อมูล Azure Offline เพื่อถ่ายโอนข้อมูลจากอุปกรณ์ไคลเอ็นต์ไปยังเซิร์ฟเวอร์ ซึ่งทำให้บันทึกในตารางที่ซิงค์อัปเดตตามการเปลี่ยนแปลงของผู้ใช้ จากนั้นฉันมีทริกเกอร์ที่คัดลอกการอัปเดตแต่ละรายการลงในตารางประวัติและแบบสอบถาม SQL ซึ่งทำงานเมื่อสร้างรายการการเปลี่ยนแปลงเพื่อเปรียบเทียบบันทึกปัจจุบันกับประวัติล่าสุดโดยทำการเปรียบเทียบคอลัมน์ - ส่วนใหญ่เป็นสตริง แต่มีค่าจำนวนเต็มและวันที่บางส่วน
นี่เป็นวิธีที่มีประสิทธิภาพที่สุดในการบรรลุเป้าหมายนี้หรือไม่? การโหลดข้อมูลลงในหน่วยความจำและดำเนินการเปรียบเทียบโค้ดกับกฎจะเร็วกว่าหรือไม่
นอกจากนี้ หากฉันจัดเก็บข้อมูลประวัติทั้งหมดอย่างต่อเนื่องในตาราง SQL สิ่งนี้จะส่งผลต่อประสิทธิภาพการทำงานเมื่อเวลาผ่านไปหรือไม่ และฉันควรจัดเก็บข้อมูลนี้ในรูปแบบเช่น Azure Table Storage ดีกว่าหรือไม่ ฉันยังคิดตามแนวต้นทุนเนื่องจากการใช้งาน SQL มีราคาแพงกว่า Table Storage มาก แต่เห็นได้ชัดว่าฉันไม่สามารถใช้ทริกเกอร์ได้และจะต้องแทรกแต่ละแถวที่ซิงค์ลงใน Table Storage ด้วยตนเอง