Pregunta

He estado golpeando mi cabeza contra la pared tratando de averiguar cómo se puede ejecutar scripts de actualización simultánea contra varias bases de datos en una sola instancia de SQL Server utilizando SMO. Nuestros ambientes tienen un número cada vez mayor de que las bases de datos de actualización necesidad, y la iteración a través de uno a la vez se está convirtiendo en un problema (demasiado lento).

Por lo que entiendo SMO no soporta operaciones simultáneas, y mis pruebas tienen que ánima a cabo. Parece ser compartido de memoria a nivel de objeto de servidor, para cosas como contexto DataReader, mantiene lanzar excepciones tales como "lector ya está abierto." Me disculpo por no tener las excepciones exactas que estoy recibiendo. Voy a tratar de conseguirlos y actualizar este post.

No soy experto en SMO y simplemente sintiendo mi camino a través de ser honesto. No es muy seguro me estoy acercando a la manera correcta, pero es algo que se tiene que hacer, o nuestra productividad se desacelerará a un rastreo.

Entonces, ¿cómo ustedes hacer algo como esto? ¿Estoy usando la tecnología mal con SMO? Todo lo que estoy queriendo hacer es ejecutar secuencias de comandos SQL en bases de datos en una sola instancia de servidor SQL en paralelo.

Gracias por cualquier ayuda que puede dar, Daniel

¿Fue útil?

Solución

Sólo tiene que usar varios objetos ServerConnection, y cree una instancia del servidor multipe objetos con cada uno. Básicamente, una por hilo. No importa si todos ellos de conexión a la misma instancia de base de datos.

He escrito una aplicación para documentar el esquema de una base de datos de esa manera. Corro múltiples "consultas" (no sólo ExecuteNonQuery () sino también otras funciones al SMO) al mismo tiempo sin ningún problema - bueno, al menos hasta hoy. Por desgracia, no parece ser mucho su Documenation en SMO, aparte de más cosas "básica".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top