Estoy creando una base de datos en la que habrá alrededor de 30 tablas, con cada tabla que contenga decenas de millones de filas y cada tabla que contenga una sola columna importante y una columna de clave primaria / externa con el fin de maximizar la eficiencia de la consulta frente a la pesada actualizaciones e inserciones y hacer un uso intensivo de los índices agrupados. Dos de las tablas contendrán datos textuales de longitud variable, una de ellas con cientos de millones de filas, pero el resto contendrá solo datos numéricos.
Como realmente quiero exprimir hasta la última gota de rendimiento del hardware que tengo disponible (aproximadamente 64 GB de RAM, un SSD muy rápido y 16 núcleos), estaba pensando en permitir que cada tabla tenga su propio archivo para que no importa si Me estoy uniendo en 2, 3, 4, 5 o más tablas, cada tabla siempre se leerá usando un hilo separado y la estructura de cada archivo estará estrechamente alineada con el contenido de la tabla, lo que con suerte minimizaría la fragmentación y la haría más rápida. para que SQL Server agregue al contenido de cualquier tabla dada.
Una advertencia, estoy atascado en SQL Server 2008 R2 Web Edition . Lo que significa que no puedo usar el particionamiento horizontal automático, lo que lo descarta como una mejora del rendimiento.
¿Usar un archivo por tabla realmente maximizará el rendimiento, o estoy pasando por alto las características integradas del motor de SQL Server que lo harían redundante?
Segundo, si usar un archivo por tabla es ventajoso, ¿por qué create table
solo me da la opción de asignar la tabla a un grupo de archivos y no a un archivo lógico específico? Esto requeriría que creara un grupo de archivos separado para cada archivo en mi escenario, lo que me sugiere que quizás SQL Server no está imaginando las ventajas que supongo que vendrían de hacer lo que estoy proponiendo.