Estadisticas de SQL

05/03/2007 - 17:36 por Carlo | Informe spam
Estimados, que se gana en concreto al realizar el comando "EXEC
sp_updatestats resample" a una base de datos concreta...??, tengo dudas al
respecto de la opción "resample", si alguno de ustedes me lo puediera
explicar se lo agradeceria...

Atte.,
Carlo

Preguntas similare

Leer las respuestas

#1 Jose Mariano Alvarez
05/03/2007 - 16:56 | Informe spam
Siempre que tengas las estadisticas al dia se gana, pero no tiene sentido
actualizarlas demasiado seguido si no cambia la distribucion de los datos.
El parametro resample indica si usa el default o lo mismo que has usado en
la anterior actualizacion de estadisticas.




Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)




"Carlo" wrote in message
news:

Estimados, que se gana en concreto al realizar el comando "EXEC
sp_updatestats resample" a una base de datos concreta...??, tengo dudas al
respecto de la opción "resample", si alguno de ustedes me lo puediera
explicar se lo agradeceria...

Atte.,
Carlo



Respuesta Responder a este mensaje
#2 Alejandro Mesa
05/03/2007 - 17:24 | Informe spam
Carlos,

Para que entiendas mejor, chequea la sentencia "update statistics" en tus
libros en linea. En ella puedes usar dos opciones "resample" o "sample number
percent | rows". Si ejecutamos el procedimiento sin pasar valor alguno al
parametro "@resample", entonces la sentencia "update statistics" se ejecutara
con la opcion "resample" la cual usa el valor de "sample" usado la ultima vez
que se actualizaron o crearon las estadisticas. Recuerda que tenemos
estadisticas para indices, estadisticas creadas manualmente usando "create
statistics" y estadisticas creadas automaticamente por SQL Server. Cuando
creamos un indice, automaticamente se crean sus estadisticas usando todas las
filas existentes en la tabla (100 percent), pues de todas maneras debemos
recorrer toda la tabla para crear el indice. Sin embargo, cuando creamos
estadisticas manualmente usando "create statistics", podemos decirle a SQL
Server que use un determinado numero de filas como conjunto de ejemplo para
crear esas estadisticas. Logico es que mientras mayor sea el numero de filas
que tomemos en cuenta, mejor sera la veracidad de las estadisticas. Si tu
tabla es demasiado grande (millones de filas), actualizar las estadisticas
usando todas las filas existentes en la tabla tomara tiempo y recursos, por
lo que si queremos acortar esto pues podemos disminuir el tamaño del conjunto
con el cual se actualizaran o calcularan las nuevas estadisticas. Es por eso
que se permite entrar un valor expresado en # o % para el decirle a SQL
Server la cantidad de filas que debe usar para el calculo.

Que pasa cuando SQL Server crea las estadisticas automaticamente y nosostros
no sabemos el tamaño que se uso?. Podemos usar "dbcc show_statistics" para
mostrar informacion sobre estas estadisticas, especificamente la columna
[Rows Sampled] del primer conjunto del resultado. Este valor se puede cambiar
o usar el mismo (resample).


AMB

"Carlo" wrote:


Estimados, que se gana en concreto al realizar el comando "EXEC
sp_updatestats resample" a una base de datos concreta...??, tengo dudas al
respecto de la opción "resample", si alguno de ustedes me lo puediera
explicar se lo agradeceria...

Atte.,
Carlo




Respuesta Responder a este mensaje
#3 Alejandro Mesa
05/03/2007 - 18:30 | Informe spam
Carlo,

No tengo mucha experiencia con los planes de mantenimiento, pero si la
reorganizacion de los indices se hace usando "dbcc dbreindex", esto equivale
a eliminar y crear los indices nuevamente, con lo cual las estadisticas son
recalculadas usando todas las filas de la tabla y por lo tanto no tendria
sentido recalcularlas. Ahora, si has creado estadisticas manualmente,
entonces estas deben actualizarse y para lo cual cuentas con "update
statistics" o sp_updatestatistics. el procedimiento recalculara las
estadisticas de los indices nuevamente, por lo que tendras que usar "update
statistics" para actualizar solo las estadisticas deseadas. No estoy seguro
si sp_updatestatistics actualiza tambien las estadisticas creadas
automaticamente por sql server, voy a chequear eso.

Microsoft SQL Server 2000 Index Defragmentation Best Practices
http://www.microsoft.com/technet/pr...kidbp.mspx

Statistics Used by the Query Optimizer in Microsoft SQL Server 2000
http://msdn2.microsoft.com/en-us/library/aa902688(SQL.80).aspx

Statistics Used by the Query Optimizer in Microsoft SQL Server 2005
http://www.microsoft.com/technet/pr...stats.mspx


AMB


"Carlo" wrote:

Ok, me queda claro. En resumen, la opción resample, utilizara los valores
que se utilizaron la última vez. Ahora bien, me surge otra duda. Cuando
realiza una Reorganización de páginas e indices utilizando los Planes de
Mantenimiento, tengo entendido que se actualizan en forma íntegra las
estadisticas, tomadno en cuenta esto, tiene sentido despues realizar un
update a las estadisticas utilizando el parametro resample...??
Si tienes algún link o algo para verificarlo te lo agradeceria.

Atte.
Carlo
"Alejandro Mesa" escribió en el
mensaje news:
> Carlos,
>
> Para que entiendas mejor, chequea la sentencia "update statistics" en tus
> libros en linea. En ella puedes usar dos opciones "resample" o "sample
> number
> percent | rows". Si ejecutamos el procedimiento sin pasar valor alguno al
> parametro "@resample", entonces la sentencia "update statistics" se
> ejecutara
> con la opcion "resample" la cual usa el valor de "sample" usado la ultima
> vez
> que se actualizaron o crearon las estadisticas. Recuerda que tenemos
> estadisticas para indices, estadisticas creadas manualmente usando "create
> statistics" y estadisticas creadas automaticamente por SQL Server. Cuando
> creamos un indice, automaticamente se crean sus estadisticas usando todas
> las
> filas existentes en la tabla (100 percent), pues de todas maneras debemos
> recorrer toda la tabla para crear el indice. Sin embargo, cuando creamos
> estadisticas manualmente usando "create statistics", podemos decirle a SQL
> Server que use un determinado numero de filas como conjunto de ejemplo
> para
> crear esas estadisticas. Logico es que mientras mayor sea el numero de
> filas
> que tomemos en cuenta, mejor sera la veracidad de las estadisticas. Si tu
> tabla es demasiado grande (millones de filas), actualizar las estadisticas
> usando todas las filas existentes en la tabla tomara tiempo y recursos,
> por
> lo que si queremos acortar esto pues podemos disminuir el tamaño del
> conjunto
> con el cual se actualizaran o calcularan las nuevas estadisticas. Es por
> eso
> que se permite entrar un valor expresado en # o % para el decirle a SQL
> Server la cantidad de filas que debe usar para el calculo.
>
> Que pasa cuando SQL Server crea las estadisticas automaticamente y
> nosostros
> no sabemos el tamaño que se uso?. Podemos usar "dbcc show_statistics" para
> mostrar informacion sobre estas estadisticas, especificamente la columna
> [Rows Sampled] del primer conjunto del resultado. Este valor se puede
> cambiar
> o usar el mismo (resample).
>
>
> AMB
>
> "Carlo" wrote:
>
>>
>> Estimados, que se gana en concreto al realizar el comando "EXEC
>> sp_updatestats resample" a una base de datos concreta...??, tengo dudas
>> al
>> respecto de la opción "resample", si alguno de ustedes me lo puediera
>> explicar se lo agradeceria...
>>
>> Atte.,
>> Carlo
>>
>>
>>
>>



Respuesta Responder a este mensaje
#4 Carlo
05/03/2007 - 19:22 | Informe spam
Ok, me queda claro. En resumen, la opción resample, utilizara los valores
que se utilizaron la última vez. Ahora bien, me surge otra duda. Cuando
realiza una Reorganización de páginas e indices utilizando los Planes de
Mantenimiento, tengo entendido que se actualizan en forma íntegra las
estadisticas, tomadno en cuenta esto, tiene sentido despues realizar un
update a las estadisticas utilizando el parametro resample...??
Si tienes algún link o algo para verificarlo te lo agradeceria.

Atte.
Carlo
"Alejandro Mesa" escribió en el
mensaje news:
Carlos,

Para que entiendas mejor, chequea la sentencia "update statistics" en tus
libros en linea. En ella puedes usar dos opciones "resample" o "sample
number
percent | rows". Si ejecutamos el procedimiento sin pasar valor alguno al
parametro "@resample", entonces la sentencia "update statistics" se
ejecutara
con la opcion "resample" la cual usa el valor de "sample" usado la ultima
vez
que se actualizaron o crearon las estadisticas. Recuerda que tenemos
estadisticas para indices, estadisticas creadas manualmente usando "create
statistics" y estadisticas creadas automaticamente por SQL Server. Cuando
creamos un indice, automaticamente se crean sus estadisticas usando todas
las
filas existentes en la tabla (100 percent), pues de todas maneras debemos
recorrer toda la tabla para crear el indice. Sin embargo, cuando creamos
estadisticas manualmente usando "create statistics", podemos decirle a SQL
Server que use un determinado numero de filas como conjunto de ejemplo
para
crear esas estadisticas. Logico es que mientras mayor sea el numero de
filas
que tomemos en cuenta, mejor sera la veracidad de las estadisticas. Si tu
tabla es demasiado grande (millones de filas), actualizar las estadisticas
usando todas las filas existentes en la tabla tomara tiempo y recursos,
por
lo que si queremos acortar esto pues podemos disminuir el tamaño del
conjunto
con el cual se actualizaran o calcularan las nuevas estadisticas. Es por
eso
que se permite entrar un valor expresado en # o % para el decirle a SQL
Server la cantidad de filas que debe usar para el calculo.

Que pasa cuando SQL Server crea las estadisticas automaticamente y
nosostros
no sabemos el tamaño que se uso?. Podemos usar "dbcc show_statistics" para
mostrar informacion sobre estas estadisticas, especificamente la columna
[Rows Sampled] del primer conjunto del resultado. Este valor se puede
cambiar
o usar el mismo (resample).


AMB

"Carlo" wrote:


Estimados, que se gana en concreto al realizar el comando "EXEC
sp_updatestats resample" a una base de datos concreta...??, tengo dudas
al
respecto de la opción "resample", si alguno de ustedes me lo puediera
explicar se lo agradeceria...

Atte.,
Carlo




Respuesta Responder a este mensaje
#5 Alejandro Mesa
05/03/2007 - 19:32 | Informe spam
Carlo,

De verdad que no se exactamente el comando que usa, nunca he usado planes de
mantenimiento, pues todas esas actividades pueden ser programadas usando
T-SQL, y tampoco he seguido una traza para un plan. Para la reorganizacion de
los indices me parece que usa "dbcc dbreindex" o "drop index" junto con
"create index". Para las estadisticas no tengo idea, pero en la ayuda de dice
que recalcula las estadisticas de todos los indices, asi que usara
sp_updatestats o "update statistics".


AMB

"Carlo" wrote:

Alejandro, me queda super claro. Ahora bien, me podrias decir que comando
envia internamente el SQL cuando se utilizan los planes de mantenimiento
nativos del motor...???,

Atte.,
Carlo
"Alejandro Mesa" escribió en el
mensaje news:
> Carlo,
>
> No tengo mucha experiencia con los planes de mantenimiento, pero si la
> reorganizacion de los indices se hace usando "dbcc dbreindex", esto
> equivale
> a eliminar y crear los indices nuevamente, con lo cual las estadisticas
> son
> recalculadas usando todas las filas de la tabla y por lo tanto no tendria
> sentido recalcularlas. Ahora, si has creado estadisticas manualmente,
> entonces estas deben actualizarse y para lo cual cuentas con "update
> statistics" o sp_updatestatistics. el procedimiento recalculara las
> estadisticas de los indices nuevamente, por lo que tendras que usar
> "update
> statistics" para actualizar solo las estadisticas deseadas. No estoy
> seguro
> si sp_updatestatistics actualiza tambien las estadisticas creadas
> automaticamente por sql server, voy a chequear eso.
>
> Microsoft SQL Server 2000 Index Defragmentation Best Practices
> http://www.microsoft.com/technet/pr...kidbp.mspx
>
> Statistics Used by the Query Optimizer in Microsoft SQL Server 2000
> http://msdn2.microsoft.com/en-us/library/aa902688(SQL.80).aspx
>
> Statistics Used by the Query Optimizer in Microsoft SQL Server 2005
> http://www.microsoft.com/technet/pr...stats.mspx
>
>
> AMB
>
>
> "Carlo" wrote:
>
>> Ok, me queda claro. En resumen, la opción resample, utilizara los valores
>> que se utilizaron la última vez. Ahora bien, me surge otra duda. Cuando
>> realiza una Reorganización de páginas e indices utilizando los Planes de
>> Mantenimiento, tengo entendido que se actualizan en forma íntegra las
>> estadisticas, tomadno en cuenta esto, tiene sentido despues realizar un
>> update a las estadisticas utilizando el parametro resample...??
>> Si tienes algún link o algo para verificarlo te lo agradeceria.
>>
>> Atte.
>> Carlo
>> "Alejandro Mesa" escribió en el
>> mensaje news:
>> > Carlos,
>> >
>> > Para que entiendas mejor, chequea la sentencia "update statistics" en
>> > tus
>> > libros en linea. En ella puedes usar dos opciones "resample" o "sample
>> > number
>> > percent | rows". Si ejecutamos el procedimiento sin pasar valor alguno
>> > al
>> > parametro "@resample", entonces la sentencia "update statistics" se
>> > ejecutara
>> > con la opcion "resample" la cual usa el valor de "sample" usado la
>> > ultima
>> > vez
>> > que se actualizaron o crearon las estadisticas. Recuerda que tenemos
>> > estadisticas para indices, estadisticas creadas manualmente usando
>> > "create
>> > statistics" y estadisticas creadas automaticamente por SQL Server.
>> > Cuando
>> > creamos un indice, automaticamente se crean sus estadisticas usando
>> > todas
>> > las
>> > filas existentes en la tabla (100 percent), pues de todas maneras
>> > debemos
>> > recorrer toda la tabla para crear el indice. Sin embargo, cuando
>> > creamos
>> > estadisticas manualmente usando "create statistics", podemos decirle a
>> > SQL
>> > Server que use un determinado numero de filas como conjunto de ejemplo
>> > para
>> > crear esas estadisticas. Logico es que mientras mayor sea el numero de
>> > filas
>> > que tomemos en cuenta, mejor sera la veracidad de las estadisticas. Si
>> > tu
>> > tabla es demasiado grande (millones de filas), actualizar las
>> > estadisticas
>> > usando todas las filas existentes en la tabla tomara tiempo y recursos,
>> > por
>> > lo que si queremos acortar esto pues podemos disminuir el tamaño del
>> > conjunto
>> > con el cual se actualizaran o calcularan las nuevas estadisticas. Es
>> > por
>> > eso
>> > que se permite entrar un valor expresado en # o % para el decirle a SQL
>> > Server la cantidad de filas que debe usar para el calculo.
>> >
>> > Que pasa cuando SQL Server crea las estadisticas automaticamente y
>> > nosostros
>> > no sabemos el tamaño que se uso?. Podemos usar "dbcc show_statistics"
>> > para
>> > mostrar informacion sobre estas estadisticas, especificamente la
>> > columna
>> > [Rows Sampled] del primer conjunto del resultado. Este valor se puede
>> > cambiar
>> > o usar el mismo (resample).
>> >
>> >
>> > AMB
>> >
>> > "Carlo" wrote:
>> >
>> >>
>> >> Estimados, que se gana en concreto al realizar el comando "EXEC
>> >> sp_updatestats resample" a una base de datos concreta...??, tengo
>> >> dudas
>> >> al
>> >> respecto de la opción "resample", si alguno de ustedes me lo puediera
>> >> explicar se lo agradeceria...
>> >>
>> >> Atte.,
>> >> Carlo
>> >>
>> >>
>> >>
>> >>
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida