Hello, I am not sure that the term "derived table field" would be recognizable, so it is probably better to illustrate my problem at hand using a simplified example. Let's say, there is a table named Product and it has fields named Price and SalePrice. This table is used all across the system and is referred to by many views, sprocs, and UDFs. Some of those views/sprocs/UDFs need to calculate a product price discount based on Price and SalePrice fields. The question is: what is the best approach to encapsulate discount calculation in a single place (to avoid repeated SQL code)? One option that comes to mind is to create a view that would encapsulate the widely used logic into a calculated field and then use that view everywhere instead of the Product table itself. For example: --------------- -- Utility View --------------- create view ProductEx as select *, -- Or explicit list of all the Product's fields... (Price - SalePrice) / SalePrice as Discount from Product --------------- -- Calling code --------------- select ... ProductEx.Price -- Instead of Product.Price ProductEx.Discount -- Instead of complex formula with Product's fields ... from ProductEx -- Instead of Product Another option is also to create an utility view encapsulating the logic, but make this view somewhat complimentary to the original table (as opposite to "replacing" the table). For example: --------------- -- Utility View --------------- create view ProductEx as select ID, -- The primary key of the Product table (Price - SalePrice) / SalePrice as Discount from Product --------------- -- Calling code --------------- select ... Product.Price -- As before ProductEx.Discount -- Instead of complex formula with Product's fields ... from Product -- As before inner join -- Little extra code which ProductEx -- still feels like a fair price on Product.ID = ProductEx.ID -- for better encapsulation of some logic Putting aside the issue of which of these two options provides more maintainable code, I would like to hear an expert opinion on performance implications of these two tricks: (1) Are they going to substantially degrade perfomance of the client code (in comparison to the initial version where the encapsulated calculation was repeated all over the place)? (2) Would there be any noticeable differences in performance between these two options? I'd greatly appreciate any comments and advices! Thank you, Yarik.