Estamos sufriendo algunos problemas graves de bloqueo de tablas en la producción. Me di cuenta de que creé un procedimiento almacenado que obtiene una lista de pedidos por número de orden. El número de pedido es un VARCHAR (150). No hay ningún índice de ningún tipo en esta columna.Índice en un Varchar?
Por el momento, hay MUCHOS valores NULOS en esta columna. Sin embargo, con el tiempo (esta tabla se puso en funcionamiento recientemente), la tabla crecerá significativamente. No se agregarán más valores NULL en este momento.
Mi pregunta es doble. En primer lugar, un índice sería beneficioso aquí. El proceso es muy utilizado. Y si es así, ¿debería estar agrupado o no? Los datos son cosas como CP123456, DR126512.
La segunda pregunta, que probablemente influya en la primera pregunta es: ¿sería beneficioso cambiar la columna a CHAR (10), ya que 'parece' que el número de orden siempre es del mismo tamaño. ¿Hay algún beneficio de velocidad al poner un índice en un CHAR de longitud fija, a diferencia de un VARCHAR (150)?
(El tamaño diferente se debe a requisitos desconocidos cuando se creó la columna).
SQL Server 2008.
Sin duda puede tener claves primarias no agrupadas en el servidor ms sql. – MatBailie