SubSonic "Сохранить" предложение по улучшению - PullRequest
2 голосов
/ 03 июля 2010

[Мы используем ActiveRecord.]

Во время работы Sql Server Profiler мы заметили, что простому «Сохранить» предшествовал значительный объем активности базы данных.Мы обнаружили, что ядро ​​SubSonic проходит через все свойства и сохраняет их значения в словаре, прежде чем оно действительно выполнит сохранение.

Обычно мы «расширяем» наши объекты данных в частичные классы, которые включают в себя некоторые свойства, требующие работы с базой данных.,Здесь происходит дополнительная активность, и, насколько мы можем судить, излишне.

Мы изменили, где скрипт создает свойство из каждого столбца базы данных, чтобы теперь он украшал эти свойства с помощью [LocalData].Затем мы изменили ядро ​​(Extensions.Objects.ToDictionary), чтобы пропустить GetValue, если этот атрибут отсутствует.

В одном тесте с большим количеством операций сохранения типа базы данных мы увидели, что истекшее время сократилось с 21 секунды2, и активность базы данных упадет примерно на две трети.

Во всем этом есть два вопроса: 1) была ли функция, которую мы пропустили, что сделало бы наши изменения ненужными, и 2) если нет, сделайтеВы знаете о некоторых других связанных с ToDictionary процессах, которые теперь будут прерываться?

Спасибо!

1 Ответ

0 голосов
/ 28 июня 2011

Может ли атрибут [SubSonicIgnore] достичь того же?

...