현재 .NET 응용 프로그램은 SQL Server 데이터베이스에 유지되는 메모리에 XML 데이터를 구성합니다. XElement 객체는 ToString()을 사용하여 문자열로 변환 된 다음 DB의 varchar (MAX) 열에 저장됩니다. 유효성 검사가 필요 없으며 SQL이 모든 단계에서 XML을 쿼리 할 필요가 없으므로 SQL XML 데이터 유형을 사용하지 않아도됩니다.SQL Server 데이터베이스에 저장할 XML의 .NET 압축
이 구현은 정상적으로 작동하지만 XML을 저장하기 전에 압축하고 가져온 후에 압축을 풀어 데이터베이스 크기를 줄이고 싶습니다. 누구든지 XElement 개체를 압축하기위한 샘플 코드가 있습니까 (압축 풀기도 훌륭합니다)? 또한이 압축을 완전히 활용할 수 있도록 데이터베이스 열의 데이터 형식을 변경해야합니까?
SQL Server 2005에서 제공하는 XML 데이터 형식을 다시 조사한 결과 유효성 검사 오버 헤드가 너무 높아서이를 사용하는 것을 고려하지 않았습니다. 또한 XML을 다소 압축하지만 .NET DeflateStream 클래스만큼 압축하지는 않습니다.
DeflateStream 클래스는 디스크에 사용한 XML을 디스크에 쓴 다음 새 파일로 저장하여 테스트했습니다. 결과는 훌륭합니다. 16kb 파일은 3kb 파일로 내려갑니다. 따라서이 파일을 메모리에서 작업하고 결과 데이터를 DB에 저장하는 경우가 없습니다. 누구나 압축을 수행 할 수있는 샘플 코드를 가지고 있고 varbah (MAX) colum을 varbinary로 변경해야합니까? 사전
Xml 압축도 성능 향상에 좋은 아이디어입니다. 이로 인해 많은 XML이 데이터베이스에 기록 될 때 병목이 생겨서 앱 성능이 크게 향상되었습니다. – Justin