Auditoria SQL Server

01/11/2005 - 07:22 por Antonio Ortiz | Informe spam
Hola,

Mas que una pregunta, es una peticion para obtener sugerencias.

La situacion es la siguiente:

Actualmente estoy auditando un sistema que tiene como back end a SQL Server
6.5, que de lejos se le ven grandes deficiencias. En ocasiones tienen que
reiniciar 2 o 3 veces el servidor en un dia, un simple reporte puede llegar
a tardar mas de 20 mins., etc. Por ahora la meta es mejorar un poco el
rendimiento mientras se define si se compra o realiza un desarrollo nuevo.

Los puntos que he realizado es lo siguiente:

1) Verificar hardware y red { Servidor HP PIV 2.6 Ghz, 2 Gb RAM, HD
SCSI, 2 Tarjetas de red. Bases de datos de hasta 2 gb aprox.
2) Revision de tablas, indices, triguers, normalizacion actual
3) Revisar las peticiones de algunos procesos mediante el analizador de SQL
3) Idenficar cantidad de usuarios y tipo de acceso. (aprox. 60 usuarios en
red local)

Entre las deficiencias encontradas estan:
1) Las conexiones se hacen en su mayoria por la IP de la primer tarjeta,
recomendado un balance de carga por ambas interfaces.
2) La mayoria de los indices estan definidos con Fill Factor de 100%,
iniciando a cambiarlos todos a 0%
3) Un reporte que tardaba mas de 10 mins en obtenerse, detecte gracias al
analizador de consultas, que se utiliza como origen del reporte una consulta
con 3 tablas, de las cuales la mayor tiene +6.5 millones de registros y el
campo que la relaciona en la consulta (llave secundaria) no esta indexada.
Ademas de utilizar criterios del tipo CONVERT(int, campo)=valor, lo cual
descarta el uso de indices para estas columnas. Se indexo el campo,
mejorando el rendimiento notablemente.

* Se procedera a revisar todos los indices y a verificar la mayoria de los
procesos, asi como su rendimiento en el analizador de consultas, detectando
sus deficiencias.
* Por otro lado he propuesto emigrar sus bases de datos a SQL Server 2000 en
un servidor de pruebas y monitorear por unas horas en produccion, para ver
si la aplicacion funciona igual.

Alguna sugerencia que pudiera mejorar el rendimiento global del sistema?.
La idea es que si se demuestra una mejoria notable en el sistema, se
procedera a la compra de un mejor hardware, lo cual estoy recomendando.


Gracias,


Antonio Ortiz
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com

Preguntas similare

Leer las respuestas

#1 Eladio Rincón
01/11/2005 - 13:06 | Informe spam
Hola,

Fillfactor de 100 y 0 es lo mismo, de hecho si intentas crear un índice con
fillfactor 0 te mostrará un error: "Fillfactor 0 is not a valid percentage;
fillfactor must be between 1 and 100." (esto es con SQL Server 2000, no se
como será en 6.5... tanto tiempo .. )

Migrar a SQL Server 2000 sería una de las soluciones, aunque claro, requiere
aplicar las politicas de migración que tengais definidas en la empresa.

La idea de comprar hardware, antes de recomendarlo, lo justificaría; me
explico, puedes crear trazas de sysmon en la que audites uso de disco (%
Disk Time, lectura y escrituras por segundo, Current Disk Queue, Avg. Read
Queue Length, y Avg. Write Queue Length), procesador (% Processor Time, %
Privileged Time), y memoria (por ejemplo Available KBytes... también puedes
monitorizar páginas por segundo, etc.); sobre network interface parece que
has detectado ya un problema. Analizando los resultados de sysmon, tendrás
una base para justificar la compra.

Dices que hay que reiniciar dos o tres veces al día el servicio... mira, pon
las trazas, y verás como ellas solas te dirán qué está causando la parada;

Lo que comentas del Convert, es bastante frecuente; el problema es que tira
por suelo el índice, y como caso mejor podrá hacerse un index scan, lo cual
no es eficiente que digamos; pondría trazas de profiler para encontrar
consultas más costosas


Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"Antonio Ortiz" wrote in message
news:O$
Hola,

Mas que una pregunta, es una peticion para obtener sugerencias.

La situacion es la siguiente:

Actualmente estoy auditando un sistema que tiene como back end a SQL
Server 6.5, que de lejos se le ven grandes deficiencias. En ocasiones
tienen que reiniciar 2 o 3 veces el servidor en un dia, un simple reporte
puede llegar a tardar mas de 20 mins., etc. Por ahora la meta es mejorar
un poco el rendimiento mientras se define si se compra o realiza un
desarrollo nuevo.

Los puntos que he realizado es lo siguiente:

1) Verificar hardware y red { Servidor HP PIV 2.6 Ghz, 2 Gb RAM, HD
SCSI, 2 Tarjetas de red. Bases de datos de hasta 2 gb aprox.
2) Revision de tablas, indices, triguers, normalizacion actual
3) Revisar las peticiones de algunos procesos mediante el analizador de
SQL
3) Idenficar cantidad de usuarios y tipo de acceso. (aprox. 60 usuarios en
red local)

Entre las deficiencias encontradas estan:
1) Las conexiones se hacen en su mayoria por la IP de la primer tarjeta,
recomendado un balance de carga por ambas interfaces.
2) La mayoria de los indices estan definidos con Fill Factor de 100%,
iniciando a cambiarlos todos a 0%
3) Un reporte que tardaba mas de 10 mins en obtenerse, detecte gracias al
analizador de consultas, que se utiliza como origen del reporte una
consulta con 3 tablas, de las cuales la mayor tiene +6.5 millones de
registros y el campo que la relaciona en la consulta (llave secundaria) no
esta indexada. Ademas de utilizar criterios del tipo CONVERT(int,
campo)=valor, lo cual descarta el uso de indices para estas columnas. Se
indexo el campo, mejorando el rendimiento notablemente.

* Se procedera a revisar todos los indices y a verificar la mayoria de los
procesos, asi como su rendimiento en el analizador de consultas,
detectando sus deficiencias.
* Por otro lado he propuesto emigrar sus bases de datos a SQL Server 2000
en un servidor de pruebas y monitorear por unas horas en produccion, para
ver si la aplicacion funciona igual.

Alguna sugerencia que pudiera mejorar el rendimiento global del sistema?.
La idea es que si se demuestra una mejoria notable en el sistema, se
procedera a la compra de un mejor hardware, lo cual estoy recomendando.


Gracias,


Antonio Ortiz
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



Respuesta Responder a este mensaje
#2 Eladio Rincón
01/11/2005 - 14:05 | Informe spam
Por cierto, ¿por qué no les propones migrar a SQL Server 2005?, migración
directa no hay, pero adquiriendo licencia de SQL Server 2005, tienes derecho
a las versiones anteriores por lo que podrías migrar a 7.0 o 2000 como paso
intermedio antes de pasar a 2005.

Por el tamaño de base de datos que comentas, no parece un sistema "grande",
pero quizás si contactas con tu oficina local de Microsoft, podrían echarte
una mano, y quién sabe, quizás podría ser un caso de éxito :-)

Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"Eladio Rincón" wrote in message
news:
Hola,

Fillfactor de 100 y 0 es lo mismo, de hecho si intentas crear un índice
con fillfactor 0 te mostrará un error: "Fillfactor 0 is not a valid
percentage; fillfactor must be between 1 and 100." (esto es con SQL Server
2000, no se como será en 6.5... tanto tiempo .. )

Migrar a SQL Server 2000 sería una de las soluciones, aunque claro,
requiere aplicar las politicas de migración que tengais definidas en la
empresa.

La idea de comprar hardware, antes de recomendarlo, lo justificaría; me
explico, puedes crear trazas de sysmon en la que audites uso de disco (%
Disk Time, lectura y escrituras por segundo, Current Disk Queue, Avg. Read
Queue Length, y Avg. Write Queue Length), procesador (% Processor Time, %
Privileged Time), y memoria (por ejemplo Available KBytes... también
puedes monitorizar páginas por segundo, etc.); sobre network interface
parece que has detectado ya un problema. Analizando los resultados de
sysmon, tendrás una base para justificar la compra.

Dices que hay que reiniciar dos o tres veces al día el servicio... mira,
pon las trazas, y verás como ellas solas te dirán qué está causando la
parada;

Lo que comentas del Convert, es bastante frecuente; el problema es que
tira por suelo el índice, y como caso mejor podrá hacerse un index scan,
lo cual no es eficiente que digamos; pondría trazas de profiler para
encontrar consultas más costosas


Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced
education and solutions for the entire Microsoft database platform"


"Antonio Ortiz" wrote in message
news:O$
Hola,

Mas que una pregunta, es una peticion para obtener sugerencias.

La situacion es la siguiente:

Actualmente estoy auditando un sistema que tiene como back end a SQL
Server 6.5, que de lejos se le ven grandes deficiencias. En ocasiones
tienen que reiniciar 2 o 3 veces el servidor en un dia, un simple reporte
puede llegar a tardar mas de 20 mins., etc. Por ahora la meta es mejorar
un poco el rendimiento mientras se define si se compra o realiza un
desarrollo nuevo.

Los puntos que he realizado es lo siguiente:

1) Verificar hardware y red { Servidor HP PIV 2.6 Ghz, 2 Gb RAM, HD
SCSI, 2 Tarjetas de red. Bases de datos de hasta 2 gb aprox.
2) Revision de tablas, indices, triguers, normalizacion actual
3) Revisar las peticiones de algunos procesos mediante el analizador de
SQL
3) Idenficar cantidad de usuarios y tipo de acceso. (aprox. 60 usuarios
en red local)

Entre las deficiencias encontradas estan:
1) Las conexiones se hacen en su mayoria por la IP de la primer tarjeta,
recomendado un balance de carga por ambas interfaces.
2) La mayoria de los indices estan definidos con Fill Factor de 100%,
iniciando a cambiarlos todos a 0%
3) Un reporte que tardaba mas de 10 mins en obtenerse, detecte gracias al
analizador de consultas, que se utiliza como origen del reporte una
consulta con 3 tablas, de las cuales la mayor tiene +6.5 millones de
registros y el campo que la relaciona en la consulta (llave secundaria)
no esta indexada. Ademas de utilizar criterios del tipo CONVERT(int,
campo)=valor, lo cual descarta el uso de indices para estas columnas. Se
indexo el campo, mejorando el rendimiento notablemente.

* Se procedera a revisar todos los indices y a verificar la mayoria de
los procesos, asi como su rendimiento en el analizador de consultas,
detectando sus deficiencias.
* Por otro lado he propuesto emigrar sus bases de datos a SQL Server 2000
en un servidor de pruebas y monitorear por unas horas en produccion, para
ver si la aplicacion funciona igual.

Alguna sugerencia que pudiera mejorar el rendimiento global del sistema?.
La idea es que si se demuestra una mejoria notable en el sistema, se
procedera a la compra de un mejor hardware, lo cual estoy recomendando.


Gracias,


Antonio Ortiz
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com







Respuesta Responder a este mensaje
#3 Antonio Ortiz
04/11/2005 - 07:18 | Informe spam
Gracias Eladio,

Seguire tus sugerencias, por cierto te comento que SQL Server si acepta el
fillfactor en 0. Por otro lado el problema con la emigracion es la
compatibilidad de la conexion desde el cliente hacia SQL Server. Pues como
pude comprobar, ni el mismo Enterprise Manager de SQL Server 2000 se conecta
al SQL Server 6.5

Ya entrare a pruebas con un servidor SQL Server 2000 y les contare.

Gracias,

Antonio Ortiz
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"Eladio Rincón" wrote in message
news:
Por cierto, ¿por qué no les propones migrar a SQL Server 2005?, migración
directa no hay, pero adquiriendo licencia de SQL Server 2005, tienes
derecho a las versiones anteriores por lo que podrías migrar a 7.0 o 2000
como paso intermedio antes de pasar a 2005.

Por el tamaño de base de datos que comentas, no parece un sistema
"grande", pero quizás si contactas con tu oficina local de Microsoft,
podrían echarte una mano, y quién sabe, quizás podría ser un caso de éxito
:-)

Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced
education and solutions for the entire Microsoft database platform"


"Eladio Rincón" wrote in message
news:
Hola,

Fillfactor de 100 y 0 es lo mismo, de hecho si intentas crear un índice
con fillfactor 0 te mostrará un error: "Fillfactor 0 is not a valid
percentage; fillfactor must be between 1 and 100." (esto es con SQL
Server 2000, no se como será en 6.5... tanto tiempo .. )

Migrar a SQL Server 2000 sería una de las soluciones, aunque claro,
requiere aplicar las politicas de migración que tengais definidas en la
empresa.

La idea de comprar hardware, antes de recomendarlo, lo justificaría; me
explico, puedes crear trazas de sysmon en la que audites uso de disco (%
Disk Time, lectura y escrituras por segundo, Current Disk Queue, Avg.
Read Queue Length, y Avg. Write Queue Length), procesador (% Processor
Time, % Privileged Time), y memoria (por ejemplo Available KBytes...
también puedes monitorizar páginas por segundo, etc.); sobre network
interface parece que has detectado ya un problema. Analizando los
resultados de sysmon, tendrás una base para justificar la compra.

Dices que hay que reiniciar dos o tres veces al día el servicio... mira,
pon las trazas, y verás como ellas solas te dirán qué está causando la
parada;

Lo que comentas del Convert, es bastante frecuente; el problema es que
tira por suelo el índice, y como caso mejor podrá hacerse un index scan,
lo cual no es eficiente que digamos; pondría trazas de profiler para
encontrar consultas más costosas


Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced
education and solutions for the entire Microsoft database platform"


"Antonio Ortiz" wrote in message
news:O$
Hola,

Mas que una pregunta, es una peticion para obtener sugerencias.

La situacion es la siguiente:

Actualmente estoy auditando un sistema que tiene como back end a SQL
Server 6.5, que de lejos se le ven grandes deficiencias. En ocasiones
tienen que reiniciar 2 o 3 veces el servidor en un dia, un simple
reporte puede llegar a tardar mas de 20 mins., etc. Por ahora la meta es
mejorar un poco el rendimiento mientras se define si se compra o realiza
un desarrollo nuevo.

Los puntos que he realizado es lo siguiente:

1) Verificar hardware y red { Servidor HP PIV 2.6 Ghz, 2 Gb RAM, HD
SCSI, 2 Tarjetas de red. Bases de datos de hasta 2 gb aprox.
2) Revision de tablas, indices, triguers, normalizacion actual
3) Revisar las peticiones de algunos procesos mediante el analizador de
SQL
3) Idenficar cantidad de usuarios y tipo de acceso. (aprox. 60 usuarios
en red local)

Entre las deficiencias encontradas estan:
1) Las conexiones se hacen en su mayoria por la IP de la primer tarjeta,
recomendado un balance de carga por ambas interfaces.
2) La mayoria de los indices estan definidos con Fill Factor de 100%,
iniciando a cambiarlos todos a 0%
3) Un reporte que tardaba mas de 10 mins en obtenerse, detecte gracias
al analizador de consultas, que se utiliza como origen del reporte una
consulta con 3 tablas, de las cuales la mayor tiene +6.5 millones de
registros y el campo que la relaciona en la consulta (llave secundaria)
no esta indexada. Ademas de utilizar criterios del tipo CONVERT(int,
campo)=valor, lo cual descarta el uso de indices para estas columnas. Se
indexo el campo, mejorando el rendimiento notablemente.

* Se procedera a revisar todos los indices y a verificar la mayoria de
los procesos, asi como su rendimiento en el analizador de consultas,
detectando sus deficiencias.
* Por otro lado he propuesto emigrar sus bases de datos a SQL Server
2000 en un servidor de pruebas y monitorear por unas horas en
produccion, para ver si la aplicacion funciona igual.

Alguna sugerencia que pudiera mejorar el rendimiento global del
sistema?.
La idea es que si se demuestra una mejoria notable en el sistema, se
procedera a la compra de un mejor hardware, lo cual estoy recomendando.


Gracias,


Antonio Ortiz
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com











email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida