Importazione dati da dbf a SQL Server: prestazioni

lunedì 12 luglio 2004 - 17.31

volperubbia Profilo | Senior Member

Ciao a tutti,
devo importare dei dati da un archivio su più file .dbf verso una base dati SQL Server, disegnata con una struttura a stella per consentire un'analisi multi - dimensionale dei dati (cubi su Analysis Services).
Ho optato per una classe vb.net che tramite ODBC legge il file dbf e quindi con un SqlDataAdapter va a scrivere le righe sul db SQL.
Per quanto riguarda l'impiego della memoria, cioè il numero di righe lette in una volta, riesco a limitarle imponendo delle restrizioni nella select.
Il problema principale è il tempo di esecuzione, troppo lungo. Il numero di righe di un singolo file *.dbf è dell'ordine di alcune centinaia di migliaia di righe fino al milione.

Qualche idea su come incrementare le prestazioni?

Grazie, Davide

Brainkiller Profilo | Guru

Ciao,
non ho mai fatto questa operazione ma ti consiglierei l'utilizzo dei DTS (Data Transformation Services) di Sql Server 2000, che ti permettono di Importare/Esportare dati da/a SQL Server in maniera ottimale e rapida.

Seleziona un database con il tasto destro poi scegli All Tasks e poi Import Data. Partirà lo Wizard dove potrai scegliere fonte sorgente e fonte destinazione. Fra le sorgenti ci sono anche dBase 3, 4 e 5. Immagino sia quello che serve a te.
Nelle pagine successive puoi poi rimappare i dati come vuoi.

facci sapè.
ciao
david

volperubbia Profilo | Senior Member

Ciao David,
ho già provato con i DTS e VB.Script, ma ho abbandonato subito quando ho visto i tempi, ... così ho scelto la strada di un eseguibile VB.NET, richiamato da un DTS.
In termini di prestazioni non c'è paragone, tuttavia devo cercare di migliorare ancora. Sto provando a spostare lato vb parte del codice delle stored procedure di inserimento, forse la lentezza è dovuta alla ricerca delle chiavi (delle dimensioni), necessaria prima di poter inserire un record nella tabella dei fatti.
Sarà la strada giusta? Vedremo ...

Grazie, Davide
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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5