ความต้องการของฉันคือ:
- จำเป็นต้องสามารถเพิ่มเขตข้อมูลที่ผู้ใช้กำหนดเองได้ทุกประเภท
- จำเป็นต้องสามารถสืบค้น UDF ได้อย่างรวดเร็ว
- จำเป็นต้องสามารถทำการคำนวณกับ UDF ตามประเภทข้อมูล
- จำเป็นต้องสามารถจัดเรียง UDF ตามประเภทข้อมูล
ข้อมูลอื่น ๆ:
- ฉันกำลังมองหาการแสดงเป็นหลัก
- มีข้อมูลหลักสองสามล้านระเบียนที่สามารถแนบข้อมูล UDF ได้
- เมื่อฉันตรวจสอบครั้งล่าสุดมีเร็กคอร์ด UDF มากกว่า 50mil ในฐานข้อมูลปัจจุบันของเรา
- ส่วนใหญ่แล้ว UDF จะแนบไปกับบันทึกหลักสองสามพันเท่านั้นไม่ใช่ทั้งหมด
- UDF ไม่ได้เข้าร่วมหรือใช้เป็นกุญแจ เป็นเพียงข้อมูลที่ใช้สำหรับการสืบค้นหรือรายงาน
ตัวเลือก:
สร้างตารางขนาดใหญ่ด้วย StringValue1, StringValue2 ... IntValue1, IntValue2, ... ฯลฯ ฉันเกลียดความคิดนี้ แต่จะพิจารณาถ้ามีใครสามารถบอกฉันได้ดีกว่าความคิดอื่น ๆ และทำไม
สร้างตารางแบบไดนามิกซึ่งเพิ่มคอลัมน์ใหม่ตามต้องการ ฉันไม่ชอบความคิดนี้เนื่องจากฉันรู้สึกว่าประสิทธิภาพจะช้าถ้าคุณทำดัชนีทุกคอลัมน์
สร้างตารางเดียวที่มี UDFName, UDFDataType และ Value เมื่อเพิ่ม UDF ใหม่ให้สร้างมุมมองที่ดึงข้อมูลนั้นและแยกวิเคราะห์ลงในประเภทที่ระบุ รายการที่ไม่ตรงกับเกณฑ์การแยกวิเคราะห์จะส่งคืนค่า NULL
สร้างตาราง UDF หลายตารางต่อหนึ่งประเภทข้อมูล ดังนั้นเราจึงมีตารางสำหรับ UDFStrings, UDFDates, ฯลฯ อาจทำเช่นเดียวกับ # 2 และสร้างมุมมองอัตโนมัติเมื่อใดก็ตามที่มีการเพิ่มฟิลด์ใหม่
ประเภทข้อมูล XML? ฉันไม่ได้ทำงานกับสิ่งเหล่านี้มาก่อน แต่เคยเห็นพวกเขาพูดถึง ไม่แน่ใจว่าพวกเขาจะให้ผลลัพธ์ที่ฉันต้องการโดยเฉพาะกับประสิทธิภาพหรือไม่
อื่น ๆ อีก?