Pregunta: | 4712 - URGE: CONSEGUIR RAPIDEZ CON ADO Y SQL-SERVER 7 |
Autor: | ameli cn |
Gracias por leerlo. Tengo un gran problema y es que tengo una aplicacion VB en la que accedo a una base de datos en Sql-Server 7 a traves de ADO y los accesos son muy muy lentos. Que puedo hacer hay algo para optimizarlo en SQL-Server 7 o que hago mal, yo abro una conexion para toda la aplicacion y la utilizo en los accesos de esta forma: Global G_Conex_Config As New ADODB.Connection Dim reg As New ADODB.Recordset G_Conex_Config.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;PWD=;Initial Catalog=nombre_base_datos;Data Source=nombre_servidor", , , -1 . . . reg.Open "Select * from empresas", G_Conex_Config, adOpenDynamic, adLockOptimistic, -1 Muchas gracias por vuestra atención |
Respuesta: | Javier Gonzalez |
Para optimizar tus consultas, deberias administrar los indices de tus tablas, NO usar un recordset para actualizar o agregar(Update, AddNew) usa instrucciones SQL (Insert into,Update set), Para crear recordset, para recorrerlos, en la consulta solo debe obtener los que necesitas, no pongas "select * from ...", ocupa mucha memoria, al crear el Recordset debe crearlo no como dynamic, ni Static, debe hacerlo como Firehose (De Solo lectura y solo avanze), crea un cursor notablemente mas rapido |
Respuesta: | Ubeimar Alonso Vergara Gallo |
Lo que se puede hacer es no abrir todos los recordset en el modo adOpenDynamic, y solo se debe usar cuando lo que se quieren es actualizaciones (update) o insertar (addNew). Para solo consulta es mejor el modo adOpenStatic. Por otro lado es mejor omitir el ultimo parametro (-1). El modo en que se abre un recordset influye en los tiempos de respuesta de estos. Al abrir la conexion solo es necesario el primer parametro (ConnectionString) PD: mil disculpas, pero no suelo marcar los acentos, espero que esté claro. |