Domanda

Sono stato sbattere la testa contro il muro cercando di capire come posso eseguire script di aggiornamento contemporaneamente contro più database in una singola istanza di SQL Server utilizzando SMO. I nostri ambienti hanno un numero sempre crescente di banche di dati che l'aggiornamento necessità, e scorrendo uno alla volta, sta diventando un problema (troppo lento).

Da quello che ho capito SMO non supporta le operazioni simultanee, e le mie prove hanno foro che fuori. Sembra che ci sia memoria condivisa a livello di oggetto Server, per cose come contesto DataReader, mantiene generare eccezioni come "lettore è già aperto." Mi scuso per non aver l'esatta eccezioni che sto ottenendo. Cercherò di farli e aggiornare questo post.

Non sono un esperto di SMO e solo sentendo la mia strada attraverso ad essere onesti. Non proprio sicuro mi sto avvicinando nel modo giusto, ma è qualcosa che deve essere fatto, o la nostra produttività rallenta a passo d'uomo.

Quindi come voi ragazzi fare qualcosa di simile? Sto usando la tecnologia non va con SMO? Tutto Sono voler fare è eseguire script SQL nei database in una singola istanza di SQL Server in parallelo.

Grazie per qualsiasi aiuto che potete dare, Daniel

È stato utile?

Soluzione

Basta usare più oggetti ServerConnection, e gli oggetti instantiate multipe Server con ciascuno. Fondamentalmente, uno per thread. Non importa se tutti di connessione per la stessa istanza del database.

ho scritto un'applicazione per documentare lo schema di un database in questo modo. Corro "query" più (non solo ExecuteNonQuery (), ma anche altre funzioni su SMO) contemporaneamente senza problemi - bene, almeno fino ad oggi. Purtroppo loro non sembra essere molto documenation su SMO a parte piuttosto roba "di base".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top