Tengo una tabla principal y una tabla secundaria donde las columnas que las unen son del tipo UNIQUEIDENTIFIER.¿Por qué INT no es más eficiente que UNIQUEIDENTIFIER (de acuerdo con el plan de ejecución)?
La tabla secundaria tiene un índice agrupado en la columna que lo une a la tabla primaria (su PK, que también está agrupada).
He creado una copia de estas dos tablas, pero cambié las columnas de relación para que sean INT, he reconstruido los índices para que sean esencialmente la misma estructura y puedan consultarse de la misma manera.
Cuando consulto 20 registros conocidos de la tabla principal, extrayendo todos los registros relacionados de las tablas secundarias, obtengo costos de consulta idénticos en ambos, es decir, el costo 50/50 para los lotes.
Si esto es cierto, entonces mi proyecto gigante de cambiar todas las tablas como esta parece ser inútil, aparte de acelerar las inserciones. ¿Alguien puede dar alguna luz sobre la situación?
EDIT:
La pregunta no es sobre lo que es más eficiente, pero ¿por qué el plan de ejecución de la consulta mostrando tanto las consultas como tener el mismo costo?
Consulte http://www.google.com/search?q=site%3Astackoverflow.com+int+vs+UNIQUEIDENTIFIER –
Relacionado: http://stackoverflow.com/questions/1151625/int-vs-unique -identifier-for-id-field-in-database, http://stackoverflow.com/questions/504905/is-it-better-to-use-an-uniqueidentifierguid-or-a-bigint-for-an-identity -column, http://stackoverflow.com/questions/1080817/sql-server-guid-from-active-directory-vs-int –
@divo - muchos de esos enlaces dicen que sí, int es más eficiente que GUID, (como lo hacen los anwwers actuales) pero mi pregunta es ¿por qué no veo eso en un ejemplo bastante directo? – cjk