Exportación e Importacion de datos

26/02/2005 - 14:32 por Juan Pedro Gonzalez | Informe spam
Aqui estoy otra vez, a este paso voy a parecer un pesado...

Veamos esta pregunta se divide en dos... En primer lugar tengo que volcar
ciertos datos entre dos SQL Servers, y por otro lado tengo que volcar datos
entre un SQL Server y un Access. Todo esto a traves de una aplicacion.

Los usuario del SQL Server se conectan empleando autenticacion de SQL
Server, y un rol de aplicacion.
Por ciertos motivos que no vienen al caso es imposible realizar replicas.
Por motivos de seguridad no puedo dejar ficheros en una carpeta para
importarlos al SQL Server como ficheros de texto.

Hasta el momento la aplicacion abria un DataReader, e iba ejecutando los
INSERTs correspondientes en la otra base de datos (Ya fuese de SQL Server a
SQL Server, de SQL Server a Access o de Access a SQL Server). Este proceso
es lentisimo, y se que se puede mejorar, la pregunta es ¿como?

Una de las ideas mas básicas que he leido por ahi es emplear una tabla
temporal, de tal forma que el INSERT sea mas rápido al carecer de Indeces, y
posteriormente copiarlo a la tabla final. La verdad es que no lo he probado
y no se si realmente notaria alguna mejora...

Otro dato importante es que queria pasar datos de varias tablas en una sola.
Vamos, actualmente tengo una vista que me prepara lso datos y esos son los
que deberian pasar al Access. Los datos del Access al SQL Server pasan tal y
como se encuentran en el access (Estos datos estan en otra tabla
independiente), sin embargo debo descartar todos los datos que ya hayan sido
sincronizados (Vamos, mas o menos igual que una replica)...

¿Alguna idea o sugerencia? ¿Algun link interesante sobre el tema?
 

Leer las respuestas

#1 MAXI
26/02/2005 - 22:23 | Informe spam
Hola, primero te comento algo: No eres ningun pesado ni mucho menos, aqui
estamos para ayudarte y hacer que puedas usar sqlserver de la mejor manera
posible :-)


Bien, vayamos a lo que nos interesa: Para pasar datos de un sistema a otro
podes usar alguna de estas tecnicas

1) Armas paquetes DTS
2) Usar BCP

Dependiendo de la cantidad de registros un metodo es mejor que el otro, por
ej BCP esta mas pensado para pasar una cantidad interesante de registros los
cuales los tomara de un plano.

DTS es mas programatico y puedes hacer muchas cosas, en la empresa donde
estoy tenemos todo un sistema de gestion de calidad el cual usa Access pero
hemos armado DTS y migramos los datos a SqlSErver para luego usar OLAP por
ej.

Te recomiendo que empieces a leer este tema en tus libros Online y cualquier
duda nos las haces saber :-)



Maxi
Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:



"Juan Pedro Gonzalez" escribió en el mensaje
news:
Aqui estoy otra vez, a este paso voy a parecer un pesado...

Veamos esta pregunta se divide en dos... En primer lugar tengo que volcar
ciertos datos entre dos SQL Servers, y por otro lado tengo que volcar
datos
entre un SQL Server y un Access. Todo esto a traves de una aplicacion.

Los usuario del SQL Server se conectan empleando autenticacion de SQL
Server, y un rol de aplicacion.
Por ciertos motivos que no vienen al caso es imposible realizar replicas.
Por motivos de seguridad no puedo dejar ficheros en una carpeta para
importarlos al SQL Server como ficheros de texto.

Hasta el momento la aplicacion abria un DataReader, e iba ejecutando los
INSERTs correspondientes en la otra base de datos (Ya fuese de SQL Server
a
SQL Server, de SQL Server a Access o de Access a SQL Server). Este proceso
es lentisimo, y se que se puede mejorar, la pregunta es ¿como?

Una de las ideas mas básicas que he leido por ahi es emplear una tabla
temporal, de tal forma que el INSERT sea mas rápido al carecer de Indeces,
y
posteriormente copiarlo a la tabla final. La verdad es que no lo he
probado
y no se si realmente notaria alguna mejora...

Otro dato importante es que queria pasar datos de varias tablas en una
sola.
Vamos, actualmente tengo una vista que me prepara lso datos y esos son los
que deberian pasar al Access. Los datos del Access al SQL Server pasan tal
y
como se encuentran en el access (Estos datos estan en otra tabla
independiente), sin embargo debo descartar todos los datos que ya hayan
sido
sincronizados (Vamos, mas o menos igual que una replica)...

¿Alguna idea o sugerencia? ¿Algun link interesante sobre el tema?


Preguntas similares