如何生成非常大的数据库模式图(SQL Server)

tom*_*ing 16 sql-server schema database-design database-diagramming

我有一个非常大的数据库,我需要图表.该数据库是x64上的SQL Server 2008.它很大,有数百个相关的表,每个表有多达2000个字段(有些是稀疏的),表之间有多个关系(实际上每个表通常有数百个),多个模式......你明白了.

我尝试使用SQL Server Management Studio的数据库图表功能,但它崩溃了Win32Exception:"没有足够的存储空间来处理此命令......"

我尝试在不同的机器上使用Visio的逆向工程功能来连接和绘制它,但是这已经持续了几个小时而没有完成的迹象.

构建这个巨型模式的脚本是我们为工作构建的工具.虽然该工具正常工作,但可视化其输出是很棘手的.

我正在使用一个工具来踢出这个数据库的图表,这样我们就可以做到这一点.有什么建议?

编辑:只是强调,图表确实不应该用于实际有用的参考.它是一个客户关系管理设备,用于演示系统的复杂性/规模.

KM.*_*KM. 15

我在一个有几百张桌子(近1k)的地方工作,没有人真正知道系统中发生了什么,公司正在成长和雇用很多.一个人的任务是做一个图表,他自动神奇地创建了一个巨大的平铺海报,其中包含连接各种表格的线条(遍布整个地方).我不确定他用过什么,几年前就是Unix和Oracle(Linux和开源之前的方式).他的图表中的表格布局没有真正的押韵或理由.他成功地创建了每张桌子的图表."海报"被放在一个公共区域的墙上,看起来很少,但没有人真正使用它,它无法使用,太杂乱,太无组织.结果是,我使用MS-Word创建一个单页图,其中包含20个主表(它经历了几次迭代,因为我"发现"新的主表),每个外键的行和每个表以逻辑方式放置.我展示了列名,数据类型,可空性,PK和所有FK.我把显示器放在墙上.最终每个人都想要我的图表副本,包括制作"海报"的人.当我离开那份工作时,他们仍在向新员工提供我的图表.

我建议您像浏览器一样工作,找到关键表并随时映射它们,在发现系统时根据需要制作尽可能多的特定图表.试图自动制作一张巨大的"海报"并不会很好.

  • +1 - 更明智。人们在图表中仍然可以处理的项目是有限的。 (2认同)
  • @TomTom,是的,"根据需要制作尽可能多的具体图表." 谁拥有整个世界的一张街道地图?你通常有每个重要区域的详细地图,在一个城市开车时,不需要有关另一个城市的详细信息. (2认同)

kd7*_*kd7 10

为这样大小的数据库生成任何类型的图像只会变成眼睛卡在墙上吸引人的喘息,除了偶尔的目光之外,老老实实没有任何实际目的.为什么不使用像Red Gate的文档工具这样的工具来实现目的呢?请理解我并不是以嘲弄的方式说这个,但是在尝试绘制一个庞大的数据库之前我一直走在这条路上,而且我在某种程度上取得了成功,但从来没有找到一个有用的出口.

  • 只要有爆米花,我就在那里! (2认同)
  • 最终提供了这个工具的输出 - 更有用(除了没有图形工具似乎能胜任这项工作的事实) (2认同)