When looking at anything on the BO that deals with dirty records, the filter applied is irrelevant as the CurrenDataTable is used instead of the current view. Your applied filter will be left alone so there will not be any speed issues as the applied filter will be ignored for dirty records.The Select() is used through ADO.NET on the data table to get any rows that have an added, modified, or deleted row state. The same logic is taken into account during a save. So you should not experience any performance issues in this regard. Just so you know, the current data table is enumerated (not the view) when checking any to see if a row needs to be checked for validation, so the applied filter is ignored there as well. In short, the save and row checking only looks at rows that have been modified, deleted, or added.