Pregunta

Tengo una gran base de datos que necesito el diagrama. La base de datos es SQL Server 2008 en x64. Es grande en el que hay cientos de tablas relacionadas, cada uno con hasta 2000 campos (algunos son escasos), múltiples relaciones entre tablas (a menudo cientos por mesa, de hecho), múltiples esquemas ... se entiende la idea.

He intentado utilizar la base de datos cuentan con Diagramas de SQL Server Management Studio, pero choqué con un Win32Exception: "No hay suficiente almacenamiento está disponible para procesar este comando ..."

He intentado utilizar la función de la ingeniería inversa de Visio en una máquina diferente para conectar y diagrama, pero que ha estado sucediendo durante unas horas sin ninguna señal de finalización.

Las secuencias de comandos para construir este esquema gigante están siendo por una herramienta que construimos para el trabajo. Mientras que la herramienta está haciendo su trabajo muy bien, es difícil de visualizar su salida.

Estoy después de una herramienta para echar a un diagrama de esta base de datos para que podamos hacer esto. ¿Alguna sugerencia?

EDIT: Sólo destacar, no se supone de hecho el esquema que se utilizará como referencia útil real. Es un dispositivo de gestión de relaciones con el cliente para demostrar la complejidad / escala del sistema.

¿Fue útil?

Solución

La generación de una imagen de cualquier tipo para una base de datos de ese tamaño se convierte simplemente en los ojos dulces que se ha quedado atascado en una pared que jadeos de dibujar, y honestamente no sirve a ningún propósito real excepto ocasionales miradas. ¿Por qué no utilizar una herramienta como herramienta de documentación de Red Gate que servirá a un propósito real? Por favor, entienda que no estoy diciendo esto de una manera burlona, ??pero he estado en este camino antes de tratar de diagrama una base de datos enorme, y tuve éxito hasta cierto punto, pero nunca he encontrado una salida buena donde era de alguna utilidad.

Otros consejos

Yo trabajaba en un lugar que tenía varios cientos de mesas (cerca de 1k) y nadie sabía realmente lo que estaba pasando en el sistema, la empresa fue creciendo y la contratación de un lote. Un tipo tuvo la tarea de hacer un diagrama, y ??se auto-mágicamente creado un cartel de baldosas gigante que contenía cada mesa con las líneas que conectan diferentes cuadros (que va por todo el lugar). No estoy seguro de lo que solía, que era Unix y Oracle hace años (mucho antes de Linux y de código abierto). No había ninguna rima real o razón para la disposición de las mesas de los de su diagrama. Se había creado con éxito un diagrama de cada mesa. El "cartel" fue puesto en una pared en un área común, y se puso un par de miradas, pero nadie realmente lo utilizó, era inutilizable, demasiado desordenada, demasiado desorganizado. Como resultado, solía MS-Word para crear un único diagrama de página que contiene las 20 tablas principales (pasó a través de unas pocas iteraciones como "descubrí" nuevas tablas principales) con líneas para cada clave externa y cada tabla situada en una manera lógica . Mostré el nombre de columna, tipo de datos, nulabilidad, PK, y todas las claves ajenas. Pongo mi diagrama en mi pared de mi monitor. Con el tiempo todo el mundo quería una copia de mi diagrama, incluyendo a la persona que hizo el "cartel". Cuando me fui de ese trabajo que todavía estaban dando mi diagrama para los nuevos empleados.

Le recomiendo que trabaja como un explorador, encontrar las tablas de claves y mapa sobre la marcha, por lo que tantos diagramas específicos como sea necesario a medida que descubre el sistema. Tratando de hacer una gigantesca "cartel" de forma automática no funciona muy bien.

Dado que usted tiene varios esquemas tal vez una buena idea es generar diagramas de esquema por vez

Uso graphviz. Utilizar algunos comandos SQL para generar la digram, a continuación, ejecute a través de dot.exe para generar un archivo PDF o PNG.

lo he usado para generar digramas de datos dentro de tablas de SQL Server. No hay razón por la que se puede utilizar para las tablas también.

http://www.graphviz.org/

También hay java, Silverlight, AJAX y utilidades para navegar grandes gráficos adicionales, como PDF es sólo para una página.

Me gustaría evitar hacer todo esto en un solo diagrama. Como usted ha mencionado, las herramientas de accidente, y es probable que no sea posible comprender fácilmente un diagrama con cientos de mesas con potencial de miles de registros por tabla. Se puede generar diagramas de áreas lógicas más pequeñas con cierta superposición con otra áreas lógicas?

Como alternativa, se podría tratar de usar algo como graphviz para analizar las sentencias DDL y luego producir un gráfico. Es probable que batir por un tiempo, pero yo recuerdo haber visto en una universidad diagramas de tamaño póster con letra pequeña, que probablemente eran de la misma complejidad que la suya. Buena suerte!

Fwiw, asumiendo que desea seguir adelante con esto me he encontrado personalmente que el Visual Studio 2010 modelador de base de datos hace las mejores diagramas que he encontrado hasta ahora - Sólo tiene que importar su base de datos como si se va a usar para Linq2SQL

schemaspy proporciona una interfaz cómoda para generar diagramas interactivos que abarcan varios esquemas utilizando graphviz como backend. Nunca he probado en cualquier cosa de este tamaño sin embargo.

IntelliJ (IDEA específicamente como sólo trató con esto, pero creo que sus otros IDE ofrecen esta función https: // www .jetbrains.com / ) se ha construido en las instalaciones del cliente de base de datos, desde aquí se puede conectar a la base de datos y analizar las tablas individuales, combinación específica o mesa o todas las tablas, poniendo de relieve las tablas deseadas, 'clic derecho' y la selección de la opción 'diagrama'. Se pueden guardar para su posterior consulta y también imprimir. He intentado esto en una gran base de datos de más de 500 mesas y rendido en cuestión de segundos, el diagrama vectorial sirve como una forma alternativa para digerir las estructuras de base de datos visual y las relaciones y restricciones entre ciertas tablas pero no se recomienda para la impresión.

introducir descripción de la imagen aquí

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