Sidebar

La función CHECKSUM nos ayuda a crear índices hash, para reducir el tamaño de un ínidice y mejorar el performance.

Columnas con un gran número de caracteres usualmente causan problemas a la hora de indexarlas, debido a que el gran número de caracteres es repetido continuamente dentro del índice, haciendo que el tamaño de este sea tan largo como la tabla misma. En este tipo de situaciones se puede hacer uso de la función CHECKSUM para construir índices hash para reducir su tamaño y con un buen performance.
CHECKSUM usa un string como parámetro de entrada y regresa un valor calculado. En el siguiente ejemplo anexaremos una columna a la tabla con la función CHECKSUM y construiremos un índice nonclustered sobre esta columna calculada en lugar de crearlo sobre la columna original, dándonos un índice de menor tamaño que el original.

Agregando la nueva columna con la función CHEKSUM

ALTER TABLE Products
ADD cs_Pname AS checksum(ProductName)

Creando el índice sobre la nueva columna

CREATE INDEX Pname_index ON Products (cs_Pname)

Haciendo la consulta sobre la nueva columna

SELECT *
FROM Products
WHERE checksum(N'Vegie-spread') = cs_Pname
AND ProductName = N'Vegie-spread'

La function CHECKSUM solo acepta tipos de datos char, varchar, nchar, nvarchar o sql_variant


Search

Tips BD