una tabla secundarios optimizar indice ejemplo crear consultas consultar con sql tsql indexing sql-server-2012

sql - secundarios - ¿Tiene sentido indexar una tabla con solo una columna?



indices tabla sql server (2)

Mi voto es que probablemente no tenga sentido en su escenario. Usted dice que esta tabla con una sola columna se unirá a otra para filtrar registros en la otra tabla, entonces ¿por qué no simplemente eliminar esta tabla, indexar la otra columna en la otra tabla y filtrar eso?

Básicamente, ¿por qué estás escribiendo?

SELECT * FROM manycols M INNER JOIN singlecol s ON m.id = s.id WHERE s.id = 123

Cuando eso es esto:

SELECT * FROM manycols m WHERE m.id = 123

Supongamos que el argumento es que manycols tiene un millón de filas, y singlecol tiene mil. Usted quiere las mil filas coincidentes, son muchos los que necesitarían ser indexados para su beneficio.

Supongamos que el argumento es que quiere todas las filas excepto las de singlecol; podrías indexar Singlecol, pero el optimizador podría optar por simplemente cargar toda la tabla en un hash de todos modos, así que de nuevo, indexarlo no ayudaría necesariamente

Se siente como si hubiera otra forma de hacer lo que necesita para zanjar esta tabla de columnas

Me pregunto si tiene sentido indexar una tabla, que contiene solo una columna. La tabla se completará con 100 o 1000 de registros y se usará para UNIRSE a otra (tabla más grande) para filtrar sus registros.

¡Gracias!


Si y no. Un índice explícito probablemente no tenga sentido. Sin embargo, la definición de la columna individual como primary key menudo se realiza (suponiendo que nunca sea NULL y única).

Esta es en realidad una práctica común. No es raro para mí crear tablas de exclusión, con lógica tal como:

from . . . where not exists (select 1 from exclusion_table et where et.id = ?.id)

Un índice de clave principal puede acelerar tal consulta.

En su caso, podría no hacer una diferencia si la tabla más grande tiene un índice en la identificación utilizada para la unión. Sin embargo, puede darle al optimizador la opción de elegir qué índice usar.