varias valor una tabla ordenar orden modificar formato developer columnas columna cambiar sql-server performance optimization

sql-server - valor - modificar varias columnas sql server



SQL Server: ¿importa el orden de las columnas? (6)

En términos de rendimiento y optimizaciones:

  • Al construir una tabla en SQL Server, ¿importa en qué orden coloque las columnas?
  • ¿Importa si mi clave principal es la primera columna?
  • Al construir un índice de múltiples campos, ¿importa si las columnas son adyacentes?
  • Usando la sintaxis ALTER TABLE, ¿es posible especificar en qué posición quiero agregar una columna?
    • Si no, ¿cómo puedo mover una columna a una posición diferente?

Diría que la respuesta a todas esas preguntas es NO, aunque mi experiencia con MS-SQL llega hasta SQL2000. Puede ser una historia diferente en SQL2005


El orden de la columna no importa al crear una tabla. Podemos organizar las columnas mientras recuperamos los datos de la base de datos. La clave principal se puede establecer en cualquier columna o combinación de columnas.


En SQL Server 2005, la colocación de columnas de longitud variable anulables tiene un impacto en el espacio: la colocación de columnas de tamaño variable anulables al final de la definición puede reducir el consumo de espacio.

SQL Server 2008 agrega la característica de columna "SPARSE" que niega esta diferencia.

Mira here .


No a los primeros 3 porque el índice contendrá los datos y no los últimos una vez


Para la cuarta viñeta: No, no puede especificar dónde desea agregar la columna. Aquí está la sintaxis de ALTER TABLE: https://msdn.microsoft.com/en-us/library/ms190273.aspx

En MySQL ofrecen ALTER TABLE ADD ... AFTER ... pero esto no aparece en T-SQL.

Si desea reordenar las columnas, deberá volver a generar la tabla.

Editar: para su último último punto, tendrá que DEJAR caer la tabla y volver a crearla para reordenar las columnas. Algunas herramientas gráficas que manipulan las bases de datos SQL harán esto por usted y harán que parezca que está reordenando columnas, por lo que es posible que desee investigar eso.


Para la primera viñeta:

, el orden de las columnas importa, al menos si está utilizando la image obsoleta BLOBs, text o ntext , y el uso de SQL Server <= 2005.

En esos casos, debe tener esas columnas en el ''extremo'' de la tabla, y hay un golpe de rendimiento cada vez que recupera uno.

Si está recuperando los datos de dicha tabla utilizando un DAL, este es el lugar perfecto para el patrón de carga diferida.