请问关于c的具体应用场景有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计272个文字,预计阅读时间需要2分钟。
我目前正使用SMO和C++进行开发。
我目前正在使用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)
{
}
}
}
尝试强制SMO一次读取所有必需的字段,而不是查询访问.
有关更多信息,请参见
this blog
编辑:链接已死,但我在archive.org上找到了the page.这是相关的代码:
Server server = new Server(); // Force IsSystemObject to be returned by default. server.SetDefaultInitFields(typeof(StoredProcedure), "IsSystemObject"); StoredProcedureCollection storedProcedures = server.Databases["AdventureWorks"].StoredProcedures; foreach (StoredProcedure sp in storedProcedures) { if (!sp.IsSystemObject) { // We only want user stored procedures } }
本文共计272个文字,预计阅读时间需要2分钟。
我目前正使用SMO和C++进行开发。
我目前正在使用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)
{
}
}
}
尝试强制SMO一次读取所有必需的字段,而不是查询访问.
有关更多信息,请参见
this blog
编辑:链接已死,但我在archive.org上找到了the page.这是相关的代码:
Server server = new Server(); // Force IsSystemObject to be returned by default. server.SetDefaultInitFields(typeof(StoredProcedure), "IsSystemObject"); StoredProcedureCollection storedProcedures = server.Databases["AdventureWorks"].StoredProcedures; foreach (StoredProcedure sp in storedProcedures) { if (!sp.IsSystemObject) { // We only want user stored procedures } }

