¿Cuál es el tamaño de muestra predeterminado de las estadísticas en SQL Server?

11

De MSDN :

Cuando no (SAMPLE, FULLSCAN, RESAMPLE)se especifica ninguna de las opciones de muestra , el optimizador de consultas muestrea los datos y calcula el tamaño de la muestra de forma predeterminada.

¿Cómo identificar el tamaño de muestra predeterminado de las estadísticas?

Revisé MSDN pero no encontré ninguna fórmula o método para identificar el tamaño de muestra predeterminado. En todas partes solo hay fórmulas presentes para activar la actualización automática de estadísticas. Cualquier puntero será útil.

P ரதீப்
fuente

Respuestas:

20

¿Cómo identificar el tamaño de muestra predeterminado de las estadísticas?

Me gustaría citar el artículo Blogs.msdn

Algoritmo de estadísticas de actualización automática:

Por lo tanto, las estadísticas de Actualización automática se dispararán por cada cambio de 500 + 20% en las filas de la tabla. Por supuesto, tenemos un algoritmo mejorado en SQL 2012 que es SQRT (1000 * filas de tabla) que es mucho mejor.

Cuando se dispare, usará la frecuencia de muestreo predeterminada y aquí está el algoritmo para calcular la frecuencia de muestreo.

1) Si la tabla <8 MB, actualiza las estadísticas con un escaneo completo.

2) Si la tabla> 8 MB, sigue un algoritmo. Reduce la frecuencia de muestreo a medida que aumenta el número de filas en la tabla para asegurarse de que no escaneamos demasiados datos. Este no es un valor fijo, pero está bajo el control del optimizador. Tampoco es un algoritmo lineal.

Ejemplo: si tenemos 1,000,000 de filas, usaría una tasa de muestreo del 30%, pero cuando el número de filas aumenta a 8,000,000, reduciría la tasa de muestreo al 10%. Estas tasas de muestreo no están bajo el control de los DBA pero el optimizador lo decide.

Para entender más, te sugiero que leas

Shanky
fuente