Anteriormente, hubo debates / discusiones no concluyentes para mí sobre si (siempre) participar / evitar índices agrupados.
Bueno, entendí que a veces se deben usar con fines y contexto adecuados + específicos.
Requisito de índice agrupado de la base de datos SQL Azure :
"SQL Azure no admite tablas sin índices agrupados. Una tabla debe tener un índice agrupado. Si se crea una tabla sin una restricción agrupada, se debe crear un índice agrupado antes de permitir una operación de inserción en la tabla".
no encaja en las conclusiones anteriores, justificación y explicaciones.
¿Cuál es la razón, que me he perdido de las explicaciones anteriores, de imponer rígidamente la ubicuidad de los índices agrupados sin ninguna excepción?
sql-server
database-design
azure-sql-database
index
Gennady Vanin Геннадий Ванин
fuente
fuente
Respuestas:
Leer dentro de SQL Azure :
Se requieren claves agrupadas para que las tres réplicas de sus datos se puedan mantener sincronizadas. Sin clave, es imposible saber qué filas se actualizaron. Los montones (tablas con un índice agrupado) solo tienen 'claves' físicas (fileid: pageid: slot) y dado que sus 3 réplicas de la base de datos lógica comparten la base de datos física con otras bases de datos lógicas, la dirección física en un servidor no tiene significado en el otro réplicas, por lo tanto, los montones no podrían ser replicados.
fuente
Azure es un sistema distribuido basado en la nube en servidores remotos. Es probable que los datos se almacenen en múltiples unidades / servidores, y sería extremadamente ineficiente hacer esto en un montón (ya que el sistema necesitará saber qué máquina verificar, y sin un índice agrupado, esta es una operación que requiere muchos recursos) .
El índice agrupado proporciona una búsqueda para todas las filas y todos los demás índices de la tabla, por lo que sin una cada operación en azul sería un escaneo de tabla en varias máquinas.
fuente