Por favor, aclare mi duda al respecto, En SQL Server (2000 y superior), ¿la clave principal se agrupa automáticamente en un índice o tenemos la opción de tener un índice no agrupado en la clave principal?¿La clave principal siempre está agrupada?
Respuesta
No, no se puede agrupar. Sin embargo, si no lo define explícitamente como no agrupado y no hay un índice agrupado en la tabla, se creará como agrupado.
También se podría agregar que con frecuencia es MALO permitir que la clave primaria se agrupe. En particular, cuando la clave primaria es asignada por una IDENTIDAD, no tiene un significado intrínseco, por lo que cualquier esfuerzo para mantener la tabla ordenada en consecuencia se desperdiciará.
Considere la posibilidad de una tabla Producto, con ProductID INT IDENTITY PRIMARY KEY. Si esto está agrupado, entonces los productos que están relacionados de alguna manera es probable que se extiendan por todo el disco. Podría ser mejor agrupar por algo en lo que probablemente hagamos consultas, como el ID de fabricante o el ID de categoría. En cualquiera de estos casos, un índice agrupado (en igualdad de condiciones) hará que la consulta correspondiente sea mucho más eficiente.
Por otro lado, la clave externa en una tabla secundaria que apunta a esto podría ser un buen candidato para la agrupación (mi objeción es para la columna que realmente tiene el atributo IDENTIDAD, no sus parientes). Por lo tanto, en mi ejemplo anterior, es probable que ManufacturerID sea una clave foránea para una tabla Manufacturer, donde se configura como IDENTITY. Esa columna no se debe agrupar, pero la columna del Producto que hace referencia a ella podría hacerlo en buena medida.
- 1. ¿la clave principal siempre está indexada en el servidor sql?
- 2. ¿'Seleccionar' siempre ordena por clave principal?
- 3. ¿Cómo cambiar la clave primaria para que no esté agrupada?
- 4. Clúster frente a clave primaria no agrupada
- 5. Siempre inicie la actividad principal
- 6. ¿Hay alguna forma de convertir un índice no agrupado en una clave principal en una clave agrupada? (SQL Server 2008)
- 7. ¿La clave principal está indexada automáticamente en MySQL?
- 8. Clasificación de clave principal
- 9. Android: Clave principal GUID
- 10. Cambiar clave principal a clave compuesta (la clave principal ya existe)
- 11. Tablas sin clave principal
- 12. ¿Cómo elegir mi clave principal?
- 13. ¿Obtener la clave principal de la tabla?
- 14. Hibernar sin clave principal
- 15. ¿La clave principal es automáticamente un índice?
- 16. Cambio de clave principal
- 17. Django + PostgreSQL: ¿Cómo restablecer la clave principal?
- 18. Mejora del rendimiento de la clave principal GUID de índice de clúster
- 19. Mysql - Agregar auto_increment a la clave principal
- 20. mysqldump tabla sin volcar la clave principal
- 21. ¿Cómo eliminar utilizando solo la clave principal?
- 22. ¿Clave principal de la fila insertada jdbc?
- 23. Restablecer la clave principal en mysql?
- 24. RestKit atributo de clave principal
- 25. ¿Clave principal compuesta o no?
- 26. Diferencia entre la clave principal, la clave única y la clave candidata
- 27. Eliminar duplicados sin clave principal
- 28. event.touches siempre está indefinido
- 29. MySQL clave principal de multicolumna
- 30. Clave principal ascendente vs descendente
La presencia de identidad en la mayoría de los casos significa que habrá acceso a los registros por su identidad, por lo que la clave principal agrupada en el campo de identidad parece ser una buena idea. –
@ C-F: esa no es una razón para agruparse. Si realiza una consulta basada en esa clave principal, el índice lo llevará allí. Y, posiblemente, también más rápido, ya que es casi seguro que requerirá menos IO para pasar por un índice relativamente estrecho en comparación con el ancho total de las filas en el índice agrupado. –