Hablando en general ... deberían unir tablas (es decir, tablas asociativas) para crear tablas organizativas de índices (Oracle), índices agrupados (SQL Server) ... o tablas antiguas simples de montón (con índices separados en las 2 columnas).¿Deben unirse a las tablas normalmente se crean como tablas organizadas por índice (índices agrupados)?
mi modo de ver si, las ventajas son:
mejora velocidad. Está evitando una vista de tabla de pila.
Mejoramiento del espacio. Está eliminando la tabla de acumulación por completo, por lo que probablemente esté ahorrando ~ 30% de espacio.
Las desventajas:
Índice de Exploración con salto (sólo se aplica a Oracle) .. será más rápido que una mesa de estudio completo, pero más lento que un recorrido de índice. Por lo tanto, las búsquedas en la segunda columna de la clave compuesta serán un poco más lentas (Oracle), mucho más lentas (MSSQL).
Una exploración de índice completa será más lenta que una exploración de tabla completa, de modo que si la mayoría de las veces el optimizador basado en costes realiza uniones Hash (que no aprovechan los índices) ... podría esperar un peor rendimiento. (Suponiendo que el RDBMS no filtra primero las tablas).
Lo que me hace cuestionar si realmente se requieren índices de cualquier tipo para Unirse a tablas, si es que predominará el uso de uniones hash.
Debe tener una clave primaria compuesta en las 2 columnas que creará un índice único en ellas de todos modos. –
reg "La exploración de índice completo será más lenta que una exploración de tabla completa": Oracle también tiene la EXPLORACIÓN RÁPIDA COMPLETA DEL ÍNDICE, que es básicamente tan rápido como el acceso a una tabla completa. Consulte http://use-the-index-luke.com/sql/explain-plan/oracle/operations#index_fast_full_scan. Ver también mi comentario reg. Hash Unirse a la indexación a continuación. –
@MarkusWinand - Buen punto ... Gracias por el excelente sitio web (IMO es la fuente agnóstica más concisa de dbms sobre índices en línea). – vicsz