데이터베이스에 C#/VB.Net에서 사용되는 클래스를 나타내는 XML 필드가 있습니다. 문제는 초기 조작 후 대부분이 조작이지만 SQL Server에서 수행됩니다. 즉, XML 필드가 즉시 변환됩니다.SQL Server에서 XML을 더 빠르게 만들기 - 테이블로 변환 하시겠습니까?
필드와 레코드가 늘어남에 따라이 작업이 느려지고 있습니다. 느린 것은 모든 필드를 다른 데이터 유형으로 변환하는 것입니다.
그래서 몇 가지 방법의 생각을 속도를 :
는 XML 데이터의 다른 조각을 나타내는 테이블 세트 되세요. 필자는 Insert/Update에서 변경 사항을 거부하는 트리거를 사용하여이 테이블을 읽기 전용으로 만들 것입니다. XML을 업데이트 할 때 XML이 포함 된 내 '기본'테이블은 트리거를 해제하고 새 값으로 테이블을 업데이트 한 다음 트리거를 다시 켭니다.우리가 XML을 사용하는 유일한 이유는 C#/VB.Net의 클래스로 변환하기가 정말 쉽기 때문입니다. 그러나 나는 모든 비트와 조각을 가져다가 그것을 클래스와 함수로 변환하는 루틴을 작성하게 될 지점을 얻는다. (클래스 -> 테이블).
아무에게도 더 좋은 방법으로 아이디어를 줄 수 있습니까? 나는 XML 구조를 사용하는 아이디어에 묶여 있지 않다. SQL 처리 속도를 높이기 위해 별도의 테이블이 있고 누군가가 테이블의 필드 값을 변경하여 XML이 업데이트되었는지 확인해야하는 것이 염려됩니다. 또는 사용자가 업데이트하도록 허용하지 마십시오.
TIA - Jeff.
C# 클래스를 나타내는 것은 관계형 테이블 대신 XML을 사용하는 특별한 이유가 아닙니다. –
sql에서 클래스 표현을 조작하는 경우 더 이상 신뢰할 수있는 표현이 아니므로 완전한 공간 낭비입니다. 어지럽히 지 말고, 잘못 생각한 것, xml을 버리고 클래스가 테이블 데이터에서 스스로로드되도록하십시오. –