我有两张主表 Org & 项目,然后是 OrgItem 表。我必须为特定组织获取 ItemCodes 。
表格结构:
现在只有一些Item具有Org特定的ItemCode,所以默认情况下我从Item中获取ItemCode但是如果对于特定的Item + Org组合如果它的记录存在在OrgItem表中那么我必须获取OrgItem表中的ItemCode。
创建 View_OrgItem_Item 可能是一个解决方案,但它意味着一个视图,其中包含原始Item表大小的n倍(其中n = Orgs数)。
另一种选择是创建 GetItemCode(ItemId,OrgId),它执行查找并返回Item.ItemCode或ORgITem.ItemCode
所以,我的问题是 - 我应该选择'View_OrgItem_Item'还是只创建一个函数 GetItemCode(ItemId,OrgId)?
哪一项在性能方面最佳?还需要考虑其他因素。
**注意:所有Orgs都没有必要在OrgItem *
中有记录答案 0 :(得分:1)
几乎总是会出现视图比使用函数更好的情况。这是因为您经常希望以基于集合的方式获取项目代码。使用函数,此查找必须逐行进行。使用视图,您可以执行简单连接,并且查询优化器可以选择比逐行查找更优化的计划,这是函数本质上强制执行的。