Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
SIS - Importazione di file flat di grandi dimensioni
martedì 11 marzo 2008 - 12.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
jordi75
Profilo
| Junior Member
81
messaggi | Data Invio:
mar 11 mar 2008 - 12:32
Ciao.
Sto importando un file txt in ina tabella di sql server 2005 tramite ssis.
In totale vengono caricate 1500500 record di 45 campi.
Il file txt contiene il delimitatore di riga ma non di colonna, di conseguenza ho dovuto inserire una trasformazione colonna derivata tra la mia origine flat e la destinazione sql inserendo una serie di funzioni substring (conosco la lunghezza di ciascun campo).
Il risultato è un'operazione che il mio pc (il server spero ci metta meno) svolge in 3 minuti e 40 sec circa.
Sapete dirmi se questa è la soluzione migliore o se c'è qualche altra strada?
Ad esempio se lavorassi con access potrei collegare i dati esterni del file txt ad una tabella del db. In sql server non esiste nulla del genere, vero?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 11 mar 2008 - 21:33
>Sapete dirmi se questa è la soluzione migliore o se c'è qualche
>altra strada?
Ciao Giorgio,
Mi pare di capire che le colonne sono a lunghezza fissa.
In questo caso puoi procedre all'importazione utilizzando l'utility command line bcp.exe oppure il comando T-SQL BULK INSERT definendo un opportuno file di formato come nel seguente esempio:
http://groups.google.it/group/microsoft.public.it.sql/msg/24f7f20953fb8f40
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 12 mar 2008 - 00:44
>Ciao.
Ciao!
>Sto importando un file txt in ina tabella di sql server 2005 tramite ssis.
>In totale vengono caricate 1500500 record di 45 campi.
>Il file txt contiene il delimitatore di riga ma non di colonna,
>di conseguenza ho dovuto inserire una trasformazione colonna
>derivata tra la mia origine flat e la destinazione sql inserendo
>una serie di funzioni substring (conosco la lunghezza di ciascun
>campo).
>Il risultato è un'operazione che il mio pc (il server spero ci metta meno) svolge in 3 minuti e 40 sec circa.
>Sapete dirmi se questa è la soluzione migliore o se c'è qualche altra strada?
Se il campo è di lunghezza fissa e se sai le dimensioni di ogni campo (sembra proprio sia così come indica Lorenzo) usa un flat file connection manager.
Ti consente di tagliare il file proprio dove ti serve, la colonna derivata appesantisce di molto l'elaborazione, perchè ragiona riga per riga (o quasi).
Tagli il file definiendolo a lunghezza fissa nel Flat File connection manager.
Al massimo se poi devi gestire dei dati null, puoi usare il conditional split e/o la colonna derivata, ma il flat file ti prepara il file già corretto.
Se il caricamento non è necessariamente legato a logiche di importazioni particolari (tipo elaborazioni intermedie durante il caricamento) allora ti consiglio di utilizzare bcp come ti dice correttamente Lorenzo. Se ti servono logiche impegnative, puoi stare su SSIS che, per loro natura, sfruttando l'architettura NUMA , vanno fortissimo
. Inoltre puoi gestire anche la cache per eventuali lookup. Ed infine hai un buon provider di log che ti consente di mantenere salvato il comportamento del tuo ssis. Infine, hai anche i dataviewers che ti permettono un monitoring in fase di debug. Dipende tutto da cosa devi fare tu. Non ha senso costruire un palazzo se ti serve una capanna
Alx81 =)
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
jordi75
Profilo
| Junior Member
81
messaggi | Data Invio:
mer 12 mar 2008 - 17:34
Grazie mille ad entrambi. ora faccio un po' di analisi
jordi75
Profilo
| Junior Member
81
messaggi | Data Invio:
mer 12 mar 2008 - 18:12
Sc
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 12 mar 2008 - 18:40
>Sc
??
Alx81 =)
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !