Progress - SQL vs Progress

   
Vista:

SQL vs Progress

Publicado por Gerardo Tenopala (12 intervenciones) el 17/12/2010 19:29:57
Hola a todos, tengo la siguiente duda y quisiera saber sus opiniones o experiencias.

Tenemos una Base en Progress 9.1E y algunos procesos que se ejecutan de manera permanente a través del AppServer. Dichos procesos son compilados en Progress 10..1C.

La cuestion es que estamos reestructurando y rehaciendo algunos de esos procesos para mejorar el performance, pero me sugirieron hacer uso de sentencias SQL porque me aseguran que son más rápidas, por ejemplo:

en lugar de utilizar (Progress)
CREATE NomTabla.
ASSIGN NomCampo-1 = valor-1
NomCampo-2 = valor-2
.
NomCampo-n = valor-1.
utilizar (SQL)
INSER INTO NomTabla (NomCampo-1 , NomCampo-2, NomCampo-n)
VALUES (valor-1, valor-2, valor-2).

otro ejemplo:

en lugar de ultilizar (Progress)

FIND NomTabla WHERE
NomCampo-1 = valor-1 AND
NomCampo-2 = valor-2
EXCLUSIVE-LOCK NO-ERROR.

IF AVAILABLE NomTabla THEN
ASSIGN NomCampo-3 = valor-3
NomCampo-4 = valor-4.

Utilizar (SQL)

UPDATE NomCampo-3 = valor-3
NomCampo-4 = valor-4 WHERE NomCampo-1 = valor-1 AND
NomCampo-2 = valor-2.

Que opinan, yo tengo serias dudas al respecto.


Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SQL vs Progress

Publicado por DparteD (129 intervenciones) el 20/12/2010 17:07:05
Yo recomendaria usar Progress contra base de datos Progress.

Intentando optimizar las busquedas utilizando Indices bien construidos, evitando los FOR EACH y si son necesarios indicar siempre USE-INDEX con un indice optimizado.

Sustituir el FOR EACH siempre que se pueda por bucles de lectura bajo la forma:
REPEAT:
END.

ejemplo:
/*********************************************************************************/
/***** TRATAR LOS REGISTROS ENTRE EL 01/01/2010 Y 31/05/2010 ***/
/********************************************************************************/
FIND FISRT ARCHIVO WHERE FECHA > DATE("31/12/2009")
USE-INDEX INDICE-OPTIMIZADO-POR-FECHA NO-ERROR.
REPEAT:
IF NOT AVAILABLE ARCHIVO THEN LEAVE.
IF AVAILABLE ARCHIVO THEN DO:
ACCICION A REALIZAR.
END.
FIND NEXT ARCHIVO USE-INDEX INDICE-OPTIMIZADO-POR-FECHA
NO-ERROR.
IF FECHA > DATE ("31/05/2010") THEN LEAVE.
END.

Otra forma de optimización de accesos es leer los registros por ROW-ID siempre que sea posible, ya que es el equivalente al NUMERO RELATIVO DE REGISTRO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL vs Progress

Publicado por christian (1 intervención) el 21/02/2011 22:49:16
puedes hacerlo pero por que no checas primero tus indices, si tus indices estan bien hechos progress trabaja muy bien, tambien hay variantes del find first, como el for first o if can-find, no se si las conoces, trabajan mas rapido pero depende de lo que necesites, si tu base no es progress puedes usar el stored que progress tiene cargado en el esquema para que puedas mandar consultas en SQL y eso si lo hace mucho mas rapido, pero como te decia, depende de lo que tu necesites. dejas tu pregunta muy abierta, yo primero revisaria la base de datos, es muy importante como estan diseñados tus indices y como los ocupas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL vs Progress

Publicado por Jose Luis Vega (7 intervenciones) el 08/03/2011 21:05:32
Yo con 27 años de experiencia en progamación, de los cuales tengo 20 años de programación en Progress, te digo que vale la estructura de datos; el orden de lso campos, cantidad de indices y la relación entre tablas. Los procesos te recuerdo que en ocaciones pueden tornarse pesados por el arrastre de las validaciones. Si bien Progress, tiene embebido SQL como la mayoria de los motores de DB serios. Yo te recomiendo estiduar el diseño, si la estructura responde a los accesos que son necesarios. Puede pasar que en ocaciones por no destruir y rearmar casi por completo los procedimientos, se mejoran o reestructuran, las aplicaciones. Yo uso aplicaciones en 4GL y en ADM2 con SDO, y son muy rapidas.
Yo creo que no va por alli, pensa que es la misma estructura accedida desde otro SET de nistrucciones.
Si queres consultarme, estoy a tu disposición. Espero te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL vs Progress

Publicado por ana (1 intervención) el 30/05/2015 21:56:25
Hola, necesito tu ayuda tengo una base de datos en progres de la cual no tengo backuo actualizado , y no puedo conectarme a la BD ME APARECE UN MENSAJE DE ERROR FATAL, como si la contraseña no fuera la corecta.
espero tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar