ฉันกำลังสร้างฐานข้อมูลที่จะมีประมาณ 30 ตารางโดยทุกตารางมีจำนวนแถวหลายสิบล้านแถวและแต่ละตารางมีคอลัมน์สำคัญเพียงคอลัมน์เดียวและคอลัมน์คีย์หลัก / หลักต่างประเทศเพื่อเพิ่มประสิทธิภาพการสืบค้นสูงสุด อัพเดตและการแทรกและใช้ประโยชน์อย่างมากของดัชนีคลัสเตอร์ ตารางสองตารางจะมีข้อมูลที่เป็นข้อความที่มีความยาวผันแปรโดยหนึ่งในนั้นมีหลายร้อยล้านแถว แต่ที่เหลือจะมีเพียงข้อมูลตัวเลข
เมื่อฉันต้องการบีบประสิทธิภาพออกมาจากฮาร์ดแวร์ที่มีอยู่ (เช่น RAM 64GB, SSD ที่เร็วมากและ 16 คอร์) ฉันคิดว่าจะอนุญาตให้แต่ละตารางมีไฟล์ของตัวเองได้ ฉันกำลังเข้าร่วมใน 2, 3, 4, 5 หรือมากกว่าตารางแต่ละตารางจะถูกอ่านโดยใช้เธรดแยกต่างหากและโครงสร้างของแต่ละไฟล์จะได้รับการจัดตำแหน่งอย่างใกล้ชิดกับเนื้อหาของตารางซึ่งหวังว่าจะช่วยลดการกระจายตัวและทำให้เร็วขึ้น สำหรับ SQL Server เพื่อเพิ่มเนื้อหาของตารางใดก็ตาม
หนึ่งข้อแม้ผมติดอยู่ใน SQL Server 2008 R2 Web Edition ซึ่งหมายความว่าฉันไม่สามารถใช้การแบ่งพาร์ติชันในแนวนอนอัตโนมัติซึ่งเป็นกฎที่ออกมาเป็นการยกระดับประสิทธิภาพ
จะใช้หนึ่งไฟล์ต่อตารางจริง ๆ แล้วเพิ่มประสิทธิภาพหรือไม่หรือฉันกำลังมองหาคุณลักษณะเอ็นจิน SQL Server ในตัวที่จะทำให้ซ้ำซ้อน?
ข้อที่สองถ้าใช้ไฟล์หนึ่งไฟล์ต่อหนึ่งตารางจะได้เปรียบทำไมcreate table
ฉันถึงให้ตัวเลือกในการจัดสรรตารางให้กับกลุ่มไฟล์และไม่ใช่เฉพาะไฟล์โลจิคัล? สิ่งนี้จะทำให้ฉันต้องสร้างกลุ่มไฟล์แยกต่างหากสำหรับทุกไฟล์ในสถานการณ์ของฉันซึ่งแนะนำให้ฉันทราบว่าบางที SQL Server อาจไม่ได้มองเห็นถึงข้อดีที่ฉันสมมติว่าจะมาจากการทำสิ่งที่ฉันเสนอ