Vous êtes sur la page 1sur 6

Actualizacin de estadsticas sncronas o asncronas mejoran la

respuesta del optimizador de consultas. SQL Server


Las estadsticas usadas para la optimizacin de consulta, son objetos que contienen
informacin estadstica acerca de la distribucin de valores en una o ms columnas de una
tabla o vista indexada. El optimizador de consultas utiliza las estadsticas para estimar la
cardinalidad o el nmero de flas del resultado de la consulta, lo que ace posible que el
optimizador de consultas pueda crear un plan de consulta de alta calidad.

!a" # opciones de estadsticas, conf$urables, a nivel de cada base de datos%
&'()*+,E&(E*-(&(.-(.+-
&'()*'/0&(E*-(&(.-(.+-
&'()*'/0&(E*-(&(.-(.+-*&-12+
&'()*+,E&(E*-(&(.-(.+- "
&'()*'/0&(E*-(&(.-(.+-
La opcin automtica de creacin de estadsticas, &'()*+,E&(E*-(&(.-(.+-, " la de
actualizacin de estadsticas, &'()*'/0&(E*-(&(.-(.+-, estn activadas de forma
predeterminada%
&L(E, 0&(&3&-E ('*3ase0atos
-E( &'()*+,E&(E*-(&(.-(.+- )24
&L(E, 0&(&3&-E ('*3ase0atos
-E( &'()*'/0&(E*-(&(.-(.+- )24
5)
Estas actualizaciones de las estadsticas son sincronas, las consultas siempre se compilan
" ejecutan con estadsticas actualizadas4 cuando las estadsticas estn obsoletas, el
optimizador de consultas espera a que las estadsticas est6n actualizadas antes de
compilar " ejecutar la consulta.
-e aconseja su uso cuando se realiza operaciones que cambian la distribucin de los datos,
como truncar una tabla o realizar una actualizacin masiva de un $ran porcentaje de las flas.
-i no actualiza las estadsticas despu6s de completar la operacin, el uso de estadsticas
sincrnicas $arantizar que las estadsticas est6n actualizadas antes de ejecutar las
consultas en los datos cambiados.
&'()*'/0&(E*-(&(.-(.+-*&-12+
La opcin automtica de creacin de estadsticas asincronas,
&'()*'/0&(E*-(&(.-(.+-*&-12+, no estn activadas de forma predeterminada%
&L(E, 0&(&3&-E ('*3ase0atos
-E( &'()*'/0&(E*-(&(.-(.+-*&-12+ )24
5)
Estas actualizaciones de las estadsticas son asincrnicas, las consultas se compilan con las
estadsticas existentes incluso aunque est6n anticuadas4 el optimizador de consultas podra
ele$ir un plan de consulta poco ptimo si las estadsticas estn obsoletas cuando se compila
la consulta. Las consultas que se compilan cuando las actualizaciones asincrnicas se an
completado se benefciarn del uso de estadsticas actualizadas.
-e aconseja su uso%
+uando su aplicacin ejecuta frecuentemente la misma consulta, consultas similares
o los planes de consulta almacenados en memoria cac6 similares. -us tiempos de
respuesta a la consulta podran ser ms predecibles con actualizaciones asincrnicas
de las estadsticas que con actualizaciones sincrnicas, porque el optimizador de
consultas puede ejecutar las consultas de entrada sin esperar a que las estadsticas
se actualicen
-i su aplicacin a experimentado tiempos de espera de solicitud de cliente
causados por una o varias consultas que a$uardaban la actualizacin de estadsticas.
En al$unos casos, la espera por las estadsticas sincrnicas podra causar errores en
aplicaciones con tiempos de espera a$resivos.

'sar estadsticas sincronas " asincronas, de
forma conjunta.
La opcin &'()*'/0&(E*-(&(.-(.+-*&-12+ se establece en el nivel de la base de datos "
determina el m6todo de actualizacin para todas las estadsticas de la base de datos. -lo es
aplicable a la actualizacin de estadsticas " no se puede usar para crear estadsticas de
forma asincrnica. El establecimiento de esta opcin en )2 no tiene nin$n efecto a menos
que &'()*'/0&(E*-(&(.-(.+- tambi6n se establezca en )2. 0e forma predeterminada, la
opcin &'()*'/0&(E*-(&(.-(.+-*&-12+ est en )77.
En aquellos escenarios donde no tenemos un control total sobre las operaciones que se
realizan en la base de datos " no podemos ilar siempre mu" fno es preferible tener
actualizaciones sncronas, de esta forma no obtendremos la mejor de las latencias "
posiblemente suframos en al$unas consultas, pero minimizamos el ries$o de tener pocas
consultas 8optimizadas9, en base a unas estadsticas no adecuadas, que nos pueden dar un
$ran dis$usto.
Estadsticas fltradas +,E&(E -(&(.-(.+-
Las estadsticas fltradas pueden mejorar el rendimiento de las consultas. /ara la ma"ora de
las consultas, el optimizador de consultas $enera "a las estadsticas necesarias para un plan
de consulta de alta calidad4 en al$unos casos, para mejorar el rendimiento de la consulta
necesita crear estadsticas adicionales con +,E&(E -(&(.-(.+-.
& modo de ejemplo, se crean las estadsticas 2ame-tatistic para todas las flas de las
columnas +olum:.0 " +olum; de la tabla (3& " se desabilita la posibilidad de volver a
calcular las estadsticas automticamente
+,E&(E -(&(.-(.+- 2ame-tatistic
)2 (u*3ase0atos. (3&.(3& <+olum:.0, +olum;=
>.(! 7'LL-+&2, 2),E+)?/'(E4

'tilizar esta opcin puede producir planes de consulta poco ptimos. -e recomienda usar
esta opcin con moderacin " que lo a$a nicamente un administrador de sistemas
cualifcado.
&ctivar actualizacin automtica de estadsticas
en -@L ;AAA

/ara activar la actualizacin automtica de estadsticas en -@L ;AAA%

--habilita: auto create statistics
sp_dboption TubaseDatos, 'auto create statistics', 'ON'
GO
--habilita: auto update statistics
sp_dboption TubaseDatos, 'auto update statistics', 'ON'
GO
--habilita: sp_autostats
EXEC sp_autostats 'ON'
GO


+uando se actualizan las estadsticas
automticas


/ara tablas con mucas flas, emos de tener cuidado "a que las estadsticas se actualizan
8automticamente9 cuando se an cambiado <insertBupdateBdelete= mas del ;AC de la
cantidad de flas actuales de la tabla. Ese valor se $uarda en la columna DroEmodctrF en la
tabla de sistema Ds"sindexesF.

/or poner un ejemplo, en una tabla con GA.AAA.AAA re$istros, e ima$inando que a" un
promedio de ;AA.AAA re$istros modifcados por da. 1 lue$o solo se acen select el resto del
da%

:AA.AA H <;AA,AAA B GA,AAA,AAA= I A.;J

+omo veis, la cantidad de flas que se insertan en un da equivalen al A.;J, de la cantidad de
flas actuales " por tanto -@L -erver no actualizara las estadsticas asta que el valor en
DroEmodctrF sea el ;AC de las flas. /or eso a" que vi$ilar de cerca las tablas con mucas
flas " de ser posible buscar el tiempo adecuado para actualizar sus estadsticas. 1a que
puede penalizar la creacin de los planes de ejecucin, en estas tablas.


/ara forzar la actualizacin de estadsticas, en todos los objetos de las bases de datos, para
evitar estar en el anterior escenario comentado%

--Actualizo estadisticas
EXEC sp_updatestats
GO


)s paso el procedimiento que nos dice el tamaKo de un tabla de nuestra base de datos%

sp_spaceused 'Nobre_De_Tu_Tabla'

)s paso un procedimiento para ver los tamaKos de todas las tablas de una base de datos, en
-@L -erver ;AAA% <En versiones posteriores, esta informacin se muestra desde el
?ana$ement -tudio=

C!EATE "!OCED#!E dbo$Table%pace#sed
A%

-- Create the teporar& table$$$
C!EATE TA'(E )tbl!esults
*
+nae, n-archar*./0,
+ro1s, int,
+reser-ed, -archar*230,
+reser-ed_int, int de4ault*/0,
+data, -archar*230,
+data_int, int de4ault*/0,
+inde5_size, -archar*230,
+inde5_size_int, int de4ault*/0,
+unused, -archar*230,
+unused_int, int de4ault*/0
0

-- "opulate the tep table$$$
EXEC sp_6%4oreachtable 7coand28
9:N%E!T :NTO )tbl!esults
*+nae,,+ro1s,,+reser-ed,,+data,,+inde5_size,,+unused,0
EXEC sp_spaceused ';'9

-- %trip out the 9 <'9 portion 4ro the =elds
#"DATE )tbl!esults %ET
+reser-ed_int, 8 CA%T*%#'%T!:NG*+reser-ed,, 2,
C>A!:NDEX*' ', +reser-ed,00 A% int0,
+data_int, 8 CA%T*%#'%T!:NG*+data,, 2,
C>A!:NDEX*' ', +data,00 A% int0,
+inde5_size_int, 8 CA%T*%#'%T!:NG*+inde5_size,, 2,
C>A!:NDEX*' ', +inde5_size,00 A% int0,
+unused_int, 8 CA%T*%#'%T!:NG*+unused,, 2,
C>A!:NDEX*' ', +unused,00 A% int0

-- !eturn the results$$$
%E(ECT ? @!O6 )tbl!esults



+omo calcular la lon$itud de los campos de todas las tablas de una bbdd
LLLon$itud de campo de todas las tablas en sql sever ;AAJ
-E( 2)+)'2( )2 03++ '/0&(E'-&5E<A= LL 03 size.
EME+ sp*spaceusedLL (able roE counts and sizes.
+,E&(E (&3LE Nt < DnameF 2O&,+!&,<:;G=, DroEsF +!&,<::=, reserved
O&,+!&,<:G=, data O&,+!&,<:G=, index*size O&,+!&,<:G=, unused O&,+!&,<:G==
.2-E,( Nt EME+ sp*ms7orEac(able PEME+ sp*spaceused PPQPPP -ELE+( H7,)? NtLL N
of roEs.
-ELE+( -'?<+&-(<DroEsF &- int== &- DroEsF7,)? Nt 0,)/ (&3LE Nt
LLen lu$ar de select sum<cast<roEs as int= que dice el nmero total de flas, puedes
poner
-ELE+( -'?<+&-(<DroEsF &- int== &- DroEsF, sum<cast<reserved as Raot==H:A;S as
b"tereservados 7,)? Nt

7uentes%
?icrosoft, ?-02
&punte " recopilacin por Norman M. Pardell

Puedes consultarme, si deseas cualquier aclaracin, pregunta o sugerencia
en: Contacto, contestar tan pronto como me sea

Vous aimerez peut-être aussi