0

TVP (TVP)로 재생할 SQL Server 2008이없는 경우 SPROC에 XML 매개 변수를 전달할 때의 이점은 매개 변수 요구 사항이 변경되면/etc를 다시 컴파일하지 않아도된다는 것입니다. 앱이 준수해야합니다.테이블 값 매개 변수 (TVP)를 사용할 수 없을 때 SQL Server XML 저장 프로 시저 매개 변수를 처리하는 방법?

필자는 테이블 필드에 데이터를 XML로 유지하는 것이 좋지 않다는 점을 고려하면 sproc은 들어오는 XML을 구문 분석하고 테이블의 관련 필드를 채워야합니다. 그러나 테이블의 필드 내에 포함 된 XML에 대해 SELECT/필터 쿼리를 쉽게 수행 할 수도 있습니다.

XML을 구문 분석하고 해당 필드를 채우는 데 어떤 지연이 발생합니까?이 작업으로 얻은 결과는 무엇입니까?

교통량이 많은 환경에서 가장 좋은 정책은 무엇입니까?

답변

0

다릅니다. 이것은 매우 광범위한 질문입니다. 일반적으로 XML을 파싱하려면 많은 처리가 필요합니다 (XML 인덱스가없는 경우). 높은 트래픽이 많이 삽입되고 있거나 많이 선택합니까?

적용 가능한 경우 테이블에 구문 분석 할 때 많은 이득이있을 수 있습니다. 쿼리 할 필요가 없으며 XML을 저장하여 나중에 같은 형식으로 반환하면 얻을 수있는 정보가 적습니다.

확실히 테이블의 나머지 데이터와 선택 및 기타 유지 관리에 대한 삽입/업데이트에 소요되는 시간에 따라 다릅니다. XML을 색인과 함께 삽입하는 것이 좋은 매체 일 수 있습니다. 내가 알고있는 최선의 정책은 없지만 삽입 시간에 구문 분석하고 별도의 필드에 저장하여 참조 무결성, 색인, 빠른 쿼리 및 감소 된 스토리지 비용의 장점을 목표로 삼을 것입니다.

다른 접근 방식을 비교할 때 쿼리 계획을 사용하고 통계를 기다릴 수 있습니다.

+0

이것은 트래픽이 매우 많아서 XML 파싱을 선택하지 않을 것이라고 생각합니다. 입력 매개 변수는 아마도 변경되지 않을 것이며, 실제로 그렇게되면 sproc signature를 수정하는 것이 정말로 문제가되지 않을 것입니다. 과거에는 원시 XML을 저장하고 필요한 필드를 구문 분석하여 요구 사항에 따라 XML을 완전히 구문 분석하지 않도록 선택했습니다. SQL Server로 XML을 구문 분석 할 때 성능 메트릭을 찾고있었습니다. – ElHaix

관련 문제