[perl] Performance en Perl y IIS

Bolo Lacertus lacertus@servidor.unam.mx
Tue, 19 Sep 2000 17:00:42 -0500


Saludos!!!

La descripción del sistema que haces, sugiere un modo de optimizar tus
programas que podría ayudar.

Mencionas que las consultas pueden entregar un gran número de
resultados, esto puede tener un impacto muy importante en el tiempo de
proceso de los querys, además de procurar que las búsquedas de tus
usuarios sean lo mas específicas que sea posible de modo que no se
generen conjuntos tan grandes, debes evitar a toda costa que la
discriminación de los renglones que presentas sea hecho por tus CGI,
usando cursores (que me imagino que SQL Server soporta) puedes evitar
que tus CGIs tengan que recuperar un gran cunjunto de registros que no
va a usar. Esto (si no lo han hecho ya) mejoraría sobremanera la
velocidad de las consultas.

Gabriela Bouret wrote:
> La base ocupa 120 MB.
> Las consultas pueden encontrar hasta 3000 registros, para mostrarlos, los
> dividimos en páginas de 30 registros cada una.
> Como la base de datos es SQL Server se va autoconfigurando, las tablas
> involucradas no son más de tres y tienen los índices correspondientes.
> Las Consultas son Select, cuyas condiciones son variables y se arman en el
> momento.

No estoy seguro de a que te refieres con que SQL Server se va
autoconfigurando, pero al mencionar esto aunado a que tienen una gran
cantidad de tablas es algo importante.

Cuando se genera un query SQL que involucre muchas tablas (un join) se
genera un producto cartesiano de los registros de todas ellas, este
producto cartesiano puede alcanzar proporciones astronómicas con rapidez
entre mas registros tengan las tablas y mas tablas se usen en la misma
consulta.
En su caso, en que la velocidad de las consultas es mas importante que
el espacio que ocupan los registros, una forma de acelerar el proceso es
crear una tabla en la que se encuentren ya resueltas las relaciones que
van a emplear con mas frecuencias, de modo que no tengan que realizar
productos cartesianos, puesto de otra forma, sería hacer las búsquedas
posibles de antemano y almacenar los resultados en otra tabla de modo
que se simplifiquen los querys (por supuesto, habría que analizar con
cuidado las búsquedas de modo que los datos resutlado tengan un tamaño
razonable).

En la lluvia de ideas
-- 
Bolo Lacertus: lacertus@servidor.dgsca.unam.mx		==~\___\
http://proteo.dgsca.unam.mx/cgi-bin/lacertus/hola	 =__vvvv
--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : unsubscribe perl