我使用以下代码进行视图检索
restrictionsArray = new string[ 2 ];
schema = connection.GetSchema( "Views", restrictionsArray );
它需要大约240秒,并返回一个表7500行,25列。我使用.Net Framework Data Provider for Oracle。大部分的物品属于“系统”的所有者。
其他代码
restrictionsArray = new string[ 2 ];
schema = connection.GetSchema( "Tables", restrictionsArray );
大约30克,立即工作。
有没有办法忽略'sys'拥有的项目?
1条答案
按热度按时间d7v8vwbk1#
DbConnection.GetSchema
是一个ADO.NET API,它不能保证由ADO.NET提供程序 * 高性能地 * 实现(即使如此,240秒的元数据查询也是多余的-我猜你在一个高延迟连接上,ADO.NET正在做一个 *RBAR查询 *,这可能解释了它)。另一种方法是直接查询Oracle的元数据视图(它们的
ALL_VIEWS
视图大致相当于ISO SQLINFORMATION_SCHEMA.VIEWS
元数据视图):就像这样: