sp_createstats (Transact-SQL)

Llama a la instrucción CREATE STATISTICS para crear estadísticas de columna única en columnas que ya no son la primera columna de un objeto de estadísticas. La creación de estadísticas de columna única aumenta el número de histogramas, lo que puede mejorar las estimaciones de cardinalidad, los planes de consulta y el rendimiento de las consultas. La primera columna de un objeto de estadísticas tiene un histograma; otras columnas no tienen un histograma.

sp_createstats es útil para aplicaciones como las pruebas comparativas cuando los tiempos de ejecución de la consulta resultan críticos y no se puede esperar a que el optimizador de consultas genere estadísticas de columna única. En la mayoría de los casos, no es necesario utilizar sp_createstats; el optimizador de consultas genera estadísticas de columna única a medida que se necesita para mejorar los planes de consulta cuando la opción AUTO_CREATE_STATISTICS está activada.

Para obtener más información sobre las estadísticas, vea Utilizar las estadísticas para mejorar el rendimiento de las consultas. Para obtener más información sobre la generación de estadísticas de columna única, vea la opción AUTO_CREATE_STATISTICS en Opciones de ALTER DATABASE SET (Transact-SQL).

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_createstats [ [ @indexonly = ] 'indexonly' ] 
        [ , [ @fullscan = ] 'fullscan' ] 
    [ , [ @norecompute = ] 'norecompute' ]

Argumentos

  • [ @indexonly= ] 'indexonly'
    Crea estadísticas solo en columnas que se encuentran en un índice existente y que no son la primera columna de cualquier definición de índice. indexonly es char(9). El valor predeterminado es NO.

  • [ @fullscan= ] 'fullscan'
    Usa la instrucción CREATE STATISTICS con la opción FULLSCAN. fullscan es char(9). El valor predeterminado es NO.

  • [ @norecompute= ] 'norecompute'
    Usa la instrucción CREATE STATISTICS con la opción NORECOMPUTE. norecompute es char(12). El valor predeterminado es NO.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Cada nuevo objeto de estadísticas tiene el mismo nombre que la columna en la que se creó.

Comentarios

sp_createstats no crea ni actualiza estadísticas en columnas que sean la primera columna de un objeto de estadísticas existente; esto incluye la primera columna de estadísticas creada para los índices, las columnas con estadísticas de columna única generadas con la opción AUTO_CREATE_STATISTICS y la primera columna de estadísticas creada con la instrucción CREATE STATISTICS. sp_createstats no crea estadísticas en las primeras columnas de índices deshabilitados, a menos que esa columna se use en otro índice habilitado. sp_createstats no crea estadísticas en tablas con un índice en clúster deshabilitado.

Cuando la tabla contiene un conjunto de columnas, sp_createstats no crea automáticamente estadísticas en columnas dispersas. Para obtener más información acerca de los conjuntos de columnas y las columnas dispersas, vea Utilizar conjuntos de columnas y Usar columnas dispersas.

Permisos

Requiere pertenencia a la función de base de datos fija db_owner.

Ejemplos

A. Crear estadísticas de columna única en todas las columnas coincidentes

En el siguiente ejemplo, se crean estadísticas de columna única en todas las columnas coincidentes de la base de datos actual.

EXEC sp_createstats;
GO

B. Crear estadísticas de columna única en todas las columnas de índice coincidentes

En el ejemplo siguiente, se crean estadísticas de columna única en todas las columnas coincidentes que ya se encuentran en un índice y que no son la primera columna del índice.

EXEC sp_createstats 'indexonly';
GO