로그 항목을 보관할 데이터베이스가 있습니다.NVARCHAR (MAX)와 비교할 때 SQL Server에서 XML 데이터 형식의 성능 저하는 무엇입니까?
로그 테이블의 열 중 하나에 직렬화 된 (XML로) 개체와 NVARCHAR (MAX) 대신 XML 데이터 형식을 사용하도록 제안 된 팀원이 있습니다. 이 테이블은 "영원히"보관 된 로그를 갖습니다 (나중에 매우 오래된 항목을 보관하는 것이 고려 될 수 있습니다).
CPU 오버 헤드가 조금 걱정되지만 DB가 더 빨리 성장할 수 있다고 걱정됩니다 (XML을 사용할 때 참조 된 질문에서 FoxyBOA가 70 % 큰 DB를 얻음).
나는 이것을 question으로 읽었으며 아이디어를 얻었지만 데이터베이스 크기가 증가했는지 감소했는지에 대한 명확한 설명에 관심이 있습니다.
귀하의 통찰력/경험을 말씀해주십시오.
BTW. 현재 SQL Server의 XML 기능에 의존 할 필요가 없습니다 (특정 경우 저에게 거의 이점이 없습니다). 때때로 로그 항목이 추출되지만 .NET을 사용하여 XML을 처리하는 것을 선호합니다 (작은 클라이언트를 작성하거나 .NET 어셈블리에 정의 된 함수 사용).
하지만이 로그 항목, 그래서 그것은 훨씬 느리게 읽어했다하더라도 아마 당신은 (직렬화 된 객체가 큰 경우 상당한 수) 인덱싱 오버 헤드없이 쓰고 싶어? – MusiGenesis
네, 물론 XML 전체를 보여줄 필요가있는 한 (로깅 항목을보아야 할 때) XML 인덱스는별로 도움이되지 않지만 오버 헤드 비용이 듭니다. –