
13/04/2005, 13:50
|
 | | | Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 20 años Puntos: 2 | |
Cierto!! Eso tienes razon, pero imgagina, tendrias un de este tipo, por ejemplo:
whie not file.eof
select --- EXISTE DATO // 1 llamada al database.
if DATO_NO_EXISTE
insertar // 2 llamadas al database.
end
Esto te da un total de accesos al database = LARGO_ARCHIVO + N_INSERTS
Entonces esto representa carga muy pesada al database, ademas, despues de cada insert la consulta es un pocquititito mas pesada que la anterior, porque tiene mas registros, ademas no puede usar los datos en el cache del database porque las tablas fueron modificadas y este cache se refrescara, lo que se puede hacer es algo como.
1. Cargar en un arreglo temporal los datos UNICOS del archivo de texto.
2. Consultar los datos de la base de datos.
3. While que compara el arreglo del archivo contra la base de datos y hacer los inserts cuando sea necesario.
Aun ahi, entre 2 y 3, podria vaciar el resultados de la consulta a un arreglo, asi no esta manteniendo ese Recordset por mucho tiempo, el cual representa tener un acceso a la base de datos abierto por tiempo indefinido, pero no creo que sea ya necesario tanto ahorro, dependiendo de la aplicacacion que le estes usando..
El metodo que dices es el mas directo y seguro a la vez, porque si varios estan haciendo lo mismo sobre la base de datos entonces habra problemas, lo siguiente es que puede crear UNIQUE INDEX sobre los campos que quiere que sean unicos en la base de datos, entonces al momento de hacer el insert, lo que va a pasar es que arroja un error de que ese dato ya existe en el database, entonces, como tu estas preparado para ese error, entonces lo ignoras y sigues adelante, seria algo como.
1. Te aseguras de tener un UNIQUE INDEX sobre el campo que sabes que nunca sera repetido.
2. En el ASP
2.1 Cargas en un arreglo los datos UNICOS que deseas insertar.
2.2 on error resume next 'Dice que ignorara los errores que se produzcan
2.3 while para insertar en la tabla el arreglo unico de datos.
2.3.1 Si hay error de que estaba repetido, etonces lo ignoras, no problem
Pero este segundo metodo te va a regresar tal vez muchos errores, porque encuentras muchos datos repetidos, pero bien, es otro metodo valido. |