Consejos para mejorar el rendimiento

27/01/2009 - 00:34 por José A. Giménez [Py] | Informe spam
Saludos a todos.

He migrado una base de datos de Access 2007 a SQL Server Express 2008. En
Access 2007 utilizaba DAO y los método .index y .seek para grabar, modificar
y eliminar registro de las tablas vinculadas. Como al vincular a la base de
datos en SQL Server no puedo usar el método .seek estoy usando .FindFirst
Podría mejorar el rendimiento de las grabaciones, modificaciones y
eliminaciones usando ADO en lugar de DAO?
Existe en ADO el método .seek?
Cuando tengo que tratar grupos de registros para actualizaciones utilizo
ADO, pero cuando quiero modificar, eliminar o grabar un registro en
particular uso DAO.
Muchas gracias por las respuestas
 

Leer las respuestas

#1 MEVB
27/01/2009 - 13:29 | Informe spam
Hola José

En lo personal podría decir que NUNCA utilizo esos métodos de búsqueda de
registros ni actualizaciones individuales.
SIEMPRE utilizo las sentencias SQL directamente y a través de ADO.
Se dice que ADO, al ser una tecnología más nueva que DAO está mucho más
optimizada y es mucho más eficiente.
Más aún que está enlazada directo a MS SQL Server.

Sin embargo, debes tomar en cuenta el costo de modificación de todo el
código.

Utilizar los métodos que mencionas implica tener los registros cargados en
el objeto DAO (o ADO si lo modificas). A su vez, eso implica ocupar memoria
con ese lote de registros. En teoría y práctica, realizar cambios en memoria
es más rápido que hacerlos directo a disco. Sin embargo, piensa en cargar
100, 500, 1000 o más registros en un objeto DAO o ADO y solo modificar un
par de ellos (eso depende de como estés abriendo la tabla a modificar)... en
contraste a realizar una operación de SQL directa sobre el registro.
Ejemplos:

UPDATE tabla SET CAMPO1 = valor1 WHERE ID = clave

Con la sentencia anterior ni siquiera tienes que declarar ni abrir un
recordset. Unicamente abres la conexion y la ejecutas.

miConex.Execute( miSQL )

Espero te sirvan los comentarios.

Saludos
MV



"José A. Giménez [Py]" <gimenezj(arroba)hotmail(punto)com> escribió en el
mensaje news:
Saludos a todos.

He migrado una base de datos de Access 2007 a SQL Server Express 2008. En
Access 2007 utilizaba DAO y los método .index y .seek para grabar,
modificar y eliminar registro de las tablas vinculadas. Como al vincular a
la base de datos en SQL Server no puedo usar el método .seek estoy usando
.FindFirst
Podría mejorar el rendimiento de las grabaciones, modificaciones y
eliminaciones usando ADO en lugar de DAO?
Existe en ADO el método .seek?
Cuando tengo que tratar grupos de registros para actualizaciones utilizo
ADO, pero cuando quiero modificar, eliminar o grabar un registro en
particular uso DAO.
Muchas gracias por las respuestas

Preguntas similares