я почему спросил: в таблице UnitOfMeasureConversion в методах insert, update, delete
происходит чистка кэша:
UnitOfMeasureConversionCache::flushOnConversionChanged(this.FromUnitOfMeasure, this.ToUnitOfMeasure, this.Product);
по моим наблюдениям она всегда пуста (я о UnitOfMeasureConversionCache).
у нас есть надстройка для портовой логистики, этот функционал очень часто дергает UnitOfMeasureConversion. из за этого происходят deadlock на delete UnitOfMeasureConversionCache.
я пока убрал эту чистку и таблица UnitOfMeasureConversionCache начала расти, но не сильно, в унисон с UnitOfMeasureConversion. и кстати конвершн стал быстрее.
но что я еще заметил - расчет происходит быстрее поиска готового кэша.
теперь я не ищу расчет в кэше, а делаю его каждый раз:
в партнерском классе, наследнике от UnitOfMeasureConverter_Product сделал override findConversion(), таблицу UnitOfMeasureConversionCache я стал использовать как временную.
пока полет нормальный.
Последний раз редактировалось AnGor; 19.06.2017 в 14:25.
|