DataTable 上的约束(例如主键和唯一约束)是否可以像在 SQL Server 中一样使 Select 更高效?或者他们的唯一目的是对数据执行规则?
myDT.Constraints.Add("PK", myDT.Columns["UniqueID"], true); //add a primary key
myDT.Constrinats.Add(new UniqueConstraint(new DataColumn[] { //add a unique constraint for UserID
myDT.Columns["UserID"], myDT.Columns["UniqueID"]
}));
当在 DataTable 中查找数据时,这些示例是否可能具有更好的性能UniqueID
or UserID
?
我认为您混淆了主键和约束(业务域模型)的使用与索引(性能)的使用。
外键可以影响优化器,并且通常在外键上创建索引。
在 SQL Server 世界中,主键经常与聚集索引混淆,因为通常选择代理键(例如自动增量标识列)作为主键和聚集索引。
这篇文章可能感兴趣:ADO.NET 2.0 中的数据集和数据表 http://msdn.microsoft.com/en-us/magazine/cc163709.aspx.
回复您的评论:
使用 DataView 进行重复的非主键搜索如果你
需要使用重复搜索
非主键数据,创建一个
具有排序顺序的 DataView。这
创建一个索引,可用于
执行搜索。这是最好的
适合重复搜索,因为
创建该系统需要一定的成本
指数。
DataView 对象公开 Find
和 FindRows 方法,以便您可以
查询底层数据
数据表。如果你只是表演
单个查询,处理过程是
创建索引所需的时间减少
所获得的性能
使用索引。
当您创建 DataView 对象时,使用
DataView 构造函数采用
排序、行过滤器和
RowStateFilter 值作为构造函数
论据以及底层
数据表。使用数据视图
构造函数确保索引是
建造一次。如果您创建一个空的
DataView并设置Sort、RowFilter、
或 RowStateFilter 属性
之后,索引建立在
至少两次。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)