Ciao Sto lavorando a un progetto in cui è necessario elaborare diversi file xml una volta al giorno e compilare un database con le informazioni contenute in tali file.Inserimento o aggiornamento di NHibernate
Ogni file è circa 1Mb e contiene circa 1000 record; di solito è necessario elaborare tra 12 e 25 di questi file. Ho visto alcune informazioni riguardanti gli inserimenti di massa utilizzando NHibernate, ma il nostro problema è in qualche modo più complicato dal momento che i file xml contengono nuovi record mescolati con i record aggiornati.
Nel xml c'è un indicatore che indica che un record specifico è nuovo o un aggiornamento di un record esistente, ma non quali informazioni sono state modificate. I record xml non contengono il nostro identificativo DB, ma possiamo usare un identificatore dal record xml per localizzare in modo univoco un record nel nostro DB.
La nostra strategia finora è stata quella di identificare se il record corrente è un inserto o un aggiornamento e in base al quale eseguiamo un inserimento sul DB o facciamo una ricerca, quindi aggiorniamo le informazioni sull'oggetto con il informazioni provenienti dal record xml e infine facciamo un aggiornamento sul DB.
Il problema con il nostro approccio attuale è che stiamo avendo problemi con i blocchi DB e le nostre prestazioni si degradano molto velocemente. Abbiamo pensato ad alcune alternative come avere tabelle separate per le operazioni distinte o anche le DB separate, ma fare una mossa del genere significherebbe un grande sforzo, quindi prima di prendere qualsiasi decisione vorrei chiedere l'opinione della comunità su questo argomento, grazie in anticipo.