0

SQL 2000 데이터베이스의 한 테이블에서 다른 테이블로 행을 복사하도록 설계된 SQL 스크립트를 고려하십시오. ColB 유형 ntext입니다 때문에 아마도 부분적으로 장기 실행 쿼리입니다큰 INSERT INTO 문에서 SQL Server 파일 그룹이 가득 찼습니다.

INSERT INTO TableB([ColA],[ColB]....[ColG]) 
SELECT [ColA],[ColB]....[ColG] 
FROM TableA 

: 전송은 간단한에서 75 개 행을 포함한다. SELECT 문에는 소수의 CONVERT() 연산이 있습니다.

15 분이 지나면 SQL Server에서이 예외가 발생합니다.

'PRIMARY'파일 그룹이 꽉 차서 '[DB]'데이터베이스에서 '[TABLE]'의 '[PRIMARY_KEY]'공간을 할당 할 수 없습니다. 불필요한 파일을 삭제하거나 파일 그룹에서 개체를 삭제하거나 추가 파일을 파일 그룹에 추가하거나 파일 그룹의 기존 파일에 대해 자동 증가를 설정하여 디스크 공간을 만듭니다.

추가 정보

  • 자동 증가는 이미입니다.
  • 디스크 (~ 20기가바이트)
  • 하나의 .mdf입니다 ~ 6기가바이트에 충분한 여유 공간보다 더있다
  • 소스 또는 목표 테이블에 아무런 트리거

alt text

alt text 질문

어떤 옵션을 설정해야하는지는 Manageme Studio 또는 T-SQL을 통해 데이터베이스를 필요에 따라 확장 할 수 있습니까? 어떤 다른 치료법을 제안 하시겠습니까?

해상도

내가 SQL 서버 2008 익스프레스의 인스턴스에이 데이터베이스를 호스팅 되었기 때문에 DB는 필요에 따라 성장할 수 없었다. 비 중성 버전의 SQL Server로 업그레이드하면이 문제가 해결됩니다. 당신이 당신의 PRIMARY 파일 그룹 메이크업 및 자동 증가 설정에 대한 스크린 샷/정보를 공유 할 수있는 경우

alt text

+0

또한 스크린 샷/정보 PRIMARY 파일 그룹 구성 및 자동 증가 설정? (즉, PRIMARY에 포함 된 모든 파일과 각각의 자동 증가 설정) – chadhoc

답변

0

뿐만 아니라 도움이 될 것입니다 (즉, 모든 파일은 PRIMARY 각각의 자동 증가 설정에 포함). 추가 사항을 보지 않고 첫 번째 생각은 PRIMARY 그룹을 구성하는 파일 중 하나 이상에 대해 지정된 maxFileSize를 잠재적으로 가질 수 있지만 실제로는 정보를 보지 않고 직감에 불과하다는 것입니다.

+0

Chad에게 감사드립니다. FG 정의의 스크린 샷으로 질문을 업데이트했습니다. –

+0

익스프레스가 알아 낸 것처럼 보입니다. Express는 4GB의 데이터베이스 크기 만 지원합니다. 앞으로는 에디션 및 버전 정보 (예 : Sql2000, 2005, 2008 및 표현, 작업 그룹, 표준 등)를 게시하는 것이 좋습니다. 대부분의 사람들이이를 지적 할 수 있었을 것입니다. 행운을 빕니다! – chadhoc

1

최상의 조언 : 데이터베이스를 필요에 따라 확장하도록 강요하는 대신 (느린 작업 일 수 있음) 데이터베이스를 미리 크기 조정하십시오.

이 오류가 발생할 수있는 한 가지 원인은 자동 증가 간격을 너무 크게 설정 한 경우입니다. 명백한 것 (디스크에서 20GB만으로 25GB로 성장하려고 시도 함) 외에도 커다란 성장 간격은 할당하는 데 오랜 시간이 걸릴 수 있으며 이로 인해 쿼리가 시간 초과 될 수 있습니다.

편집 : 새 스크린 샷을 기준으로 볼 때 간격이 문제가 아닌 것처럼 보입니다. 그러나, 나의 원래 충고는 아직도 서있다. 직접 데이터베이스를 직접 확장하여 다음과 같은 결과를 얻을 수 있는지 확인하십시오.

ALTER DATABASE foobar 
MODIFY FILE (name = foobar_data, size = 5000) 
0

해당 테이블에 트리거가 있습니까? 전에 트리거가 있었을 때 비슷한 결과가 나타났습니다. 실제로 로그 파일 (ldf)을 확장하여 mdf 자체가 아니라 트리거에 의해 실행 된 모든 쿼리를 로깅했습니다. 트리거가있는 경우이 업데이트를 수행하는 동안 해당 업데이트를 사용하지 않도록 설정하고 해당 업데이트가 도움이되는지 확인하는 것이 좋습니다 (반복 이벤트가 아닌 일회성 데이터 마이그레이션이라고 가정 함)

관련 문제