2012-05-10 1 views
1

SQL Server 속성의 메모리 설정을 메모리 부족으로 변경했습니다. 또한 버퍼 temp 경로를 내 system.But의 특정 위치로 변경했습니다. 패키지가 메모리 부족이라는 메시지와 함께 실패하고 있습니까? 버퍼 온도와 BLOB 온도를 설정하면 데이터가 해당 임시 위치로 바뀌어야합니까? 그렇다면 오류가 발생하면 버퍼 온도는 어떻게됩니까?버퍼 온도 및 BLOB temp의 실제 사용은 무엇입니까

답변

5

다소 관련 What is the default file path location for BufferTempStoragePath in SSIS 2005? 특히, SQL Server 에이전트 서비스 계정에서 디스크의 이러한 위치에 대한 액세스 가능성과 관련하여 bimonkey에서 링크 된 문서를 읽습니다.

일반적으로 패키지가 메모리 부족을보고하면 fully blocking transformations을 사용하고 너무 많은 데이터를 회수하는 조회 작업 때문입니다. 패키지에서 차단 변환을 많이 사용하는 경우 원본 시스템에 작업을 시도해보십시오. 조회가 비난받는 경우 조회에서보다 선택적으로 시도하십시오. 전체 테이블을 뒤로 당기지 말고 필요한 컬럼 만 잡아 당깁니다. 이것이 충분히 선택 적이 지 않다면 where 절을 사용하여 해당 데이터 집합을 필터링 해 볼 수 있습니까 (현재 연도 데이터 만 필요합니다). 실패하면 전체 캐시 모드에서 부분 캐시 또는 캐시 없음으로 조회를 전환하십시오. 캐시를 사용하지 않으면 모든 행에 대해 소스 시스템에 일회성 쿼리가 수행됩니다. 2 행 전과 동일한 쿼리를 실행 한 메모리가 없습니다. 부분 캐시는 X MB의 데이터를 메모리에 유지함으로써 이러한 딜레마를 해결합니다. 메모리 사용량을 줄이는 방법에 대한 자세한 내용을 보려면 패키지 모양의 스크린 샷을 게시하십시오. 또한 BufferTempStoragePath와 같은 설정은 데이터 흐름마다 있으므로 패키지에 여러 데이터 흐름이있는 경우 각 데이터 흐름을 구성해야합니다.

데이터 흐름의 아키텍처는 데이터가 메모리 버퍼로 읽혀지고 버퍼의 주소가 다양한 작업으로 전달되는 아키텍처입니다. 그러나 각 작업은 지나친 데이터를 보유하기 위해 할당 된 많은 메모리를 필요로하지 않고 모두 동일한 공유 메모리 세트에서 작동합니다. 태스크에서 태스크로 메모리를 복사하는 것은 느리고 메모리 소비면에서 매우 비쌉니다.

그 전제 부와 함께, BufferTempStoragePath and BlobTempStoragePath은 무엇입니까? 대용량 객체 유형 (n/varchar (max), xml, image 등)을 데이터 흐름으로 가져올 때마다 해당 데이터는 이 아니며 기본 유형과 같은 메모리 버퍼에 보관됩니다 (). 대신 디스크에 기록되고 그 주소에 대한 포인터는 메모리 버퍼에 저장됩니다. 엔진이

  • 이 시도하고 더 이상 얻을 수없는 데이터 흐름 작업이 여전히해야 할 일을 가지고 있지만했습니다 중 하나

    • 이 (완전/부분적으로 차단 변환을 통해) 너무 많은 메모리를 세분화 할 때 BufferTempStoragePath이 사용됩니다 하나의 작업으로 너무 많은 것들을 할 수 있습니다. 엄지 손가락으로는 패키지의 모든 변형에서 모든 출처와 대상으로가는 선을 추적 할 수 있어야한다는 것입니다. 가져 오기/내보내기 마법사에서 패키지를 만든 경우 해당 데이터 흐름은 서로 관련되지 않은 항목을 단일 데이터 흐름으로 그룹화하여 메모리가 부족해지기 쉽기 때문에 별도의 흐름으로 나눌 수있는 주요 후보가됩니다.
    • 이 상자에는 단순히 데이터를 수행 할 수있는 충분한 리소스가 없습니다. 나는 일반적으로 직업에 더 많은 하드웨어를 던지는 것을 피하는 것을 선호하지만 처음 두 개의 글 머리 기호를 처리 한 경우 이것이 내 권총의 마지막 것입니다.
  • +0

    답장을 보내 주셔서 감사합니다. 데이터 흐름 작업 내에서 하나의 조회 변환 (캐시 모드 없음)을 사용하고 있습니다. – NikRED