0

저장 프로 시저에서 작업 중입니다. 보기를 사용하고 결과 집합 테이블을 XML 형식으로 변환합니다. 'FOR XML AUTO, ROOT ('toxicsite '), TYPE'문을 사용했습니다. 뷰가 14k 레코드를 반환하고 XML로 변환 된 후 ... 2 분이 소요됩니다. 다른 대안에 대한 도움이 필요하십니까 또는 어떻게 쿼리를 최적화 할 수 있습니까?FOR XML AUTO, ROOT ('RootName'), 14K 레코드의 TYPE을 사용하면 SQL 쿼리가 느려집니다.

+0

그냥 제대로 내용 : 쿼리는 XML'가 충분히 빠르지 만 FOR 때 당신이 그것을 XML'위한'추가'없이 실행 느린가? 시간은 어때? XML을 가지고 무엇을하고 있습니까? 14k 레코드는 상당히 많습니다. XML은 더 큰 데이터를 위해 설계되지 않았습니다 ... – Shnugo

+0

예 ...보기에서 데이터를 가져 오는 경우 17 초 (14k 레코드)로 돌아옵니다. 그러나 ForXML을 적용하면 ...이 요구 사항을 XML로 보냅니다. 추가 처리. –

답변

0

방금 ​​SELECT TOP 14000 * FROM SomeBigTable으로 시도했습니다. SSMS는 2 초 후에 준비됩니다. FOR XML AUTO으로 꽤 빠른 속도로 돌아옵니다. 나는 XML을 만드는 것이 오랜 시간이 걸릴 것이라고 생각하지 않는다.

VIEW이 매우 복잡하다면, AUTO이 당신을 속일 수있다. AUTO는 쿼리 (관련 데이터의 중첩을) 그냥 성능 차이를 확인 FOR XML RAW,TYPE을 시도 할 수빠른 슛으로

에 대한 적절한 내부 구조를 찾습니다. 가장 좋은 것은 FOR XML PATH의 명시적인 접근 방식으로 중첩 및 관계를 직접 지정할 수 있습니다. 관련된 많은 문자열이있는 경우

(VARBINARY 데이터)를 포함 BLOB를이있는 경우, 당신은 그들이 비 라틴 문자를 많이 가지고 특히, base64이 변환의 추가 비용을 가지고, 당신은 여분이 엔티티 인코딩 비용 ... 일반적으로 XML에서

이 놀랄만큼 빠르고 ...