У меня есть поле в базе данных, которое является XML, потому что оно представляет класс, который используется в C#/VB.Net. Проблема заключается в том, что после первоначальной манипуляции большинство, но не все, манипуляции выполняются в SQL Server. Это означает, что поле XML преобразуется «на лету».Быстрое преобразование XML в SQL Server - преобразование в таблицы?
Поскольку мы получаем больше полей и больше записей, эта операция замедляется. Я думаю, что замедление - это преобразование всех этих полей в другие типы данных.
Так, чтобы ускорить это, я думал несколько способов:
Есть набор таблиц, которые представляют различные части данных XML. Я бы сделал эти таблицы только для чтения, используя триггер для Insert/Update, который отклонил бы любые изменения. Моя «главная» таблица с XML в ней, когда она обновляет XML, отключит триггеры, обновит таблицы новыми значениями и снова включит триггеры.
Единственная реальная причина, по которой мы используем XML, состоит в том, что очень легко преобразовать его в класс в C#/VB.Net. Но я получаю точку, в которой я могу написать рутину, которая будет принимать все биты и части и преобразовать ее в класс, а также функцию, которая будет идти другим путем (класс -> таблицы).
Может ли кто-нибудь дать какие-либо идеи относительно лучшего способа сделать это? Я не привязан к идее использования структуры XML. Я обеспокоен тем, что у нас есть отдельные таблицы для ускорения обработки SQL, а кто-то меняет значение поля в этой таблице, мы должны убедиться, что XML обновлен. Или не позволяйте человеку обновлять его.
TIA - Jeff.
Представление класса C# само по себе не является особенно веской причиной использования XML вместо реляционных таблиц. –
Если вы манипулируете представлением класса в sql, это уже не надежное представление и, следовательно, полная потеря пространства. Прекратите возиться, признайте, что вы «ошиблись», выровняйте xml, загрузите сам класс из данных таблицы. –