我目前正在使用 SMO 和 C# 来遍历数据库以创建代表两个数据库各个方面的设置树,然后比较这些树以查看它们的不同之处和方式。
问题是,对于 2 个大小合理的数据库,在本地抓取它们并收集我希望比较的表/列/存储过程信息需要将近 10 分钟。
有没有比 SMO 更好的界面来以这种方式访问数据库?我不想包含任何额外的依赖项,但我会为提高 50% 的速度而感到痛苦。下面是我如何枚举表和列的示例。
Microsoft.SqlServer.Management.Smo.Database db = db_in;
foreach (Table t in db.Tables)
{
if (t.IsSystemObject == false)
{
foreach (Column c in t.Columns)
{
}
}
}