2014-07-07 2 views
0

나는 개발자이며 어떻게 든이 일에 관여했습니다. 많은 데이터베이스가 있으며 각 데이터베이스에 대해 하나의 MDF 만 존재하며 현재까지는 NDF가 없습니다.MDF 파일을 여러 ndf 파일로 분할하는 작업을 만드는 방법

이 데이터베이스가 커지면서 어느 MDF 파일이 다가오고 있는지 이미 알게되거나 이미 크기를 초과 한 작업을 만들어야합니다. 그러면 MDF를 더 많은 ndf 파일로 분할하여 공유해야합니다. 로드하고 성능을 향상시킵니다.

필요할 때마다 동일한 주 파일 그룹에 새 ndf 파일을 만든 다음 mdf를 축소하여 강제로 새 ndf로 데이터를 이동하도록 제안했습니다. 그런 다음 인덱스를 다시 작성하면 작업이 완료됩니다.

약간의 연구 끝에 새 파일을 새 파일 그룹에 추가하고 큰 테이블의 인덱스를 새로운 ndf 파일로 옮겨서 더 나은 방법으로 할 수 있다고 확신했습니다. 번호 데이터베이스의 대형 테이블은 거의없고 약 80 %의 데이터가 해당 테이블에 상주합니다.

이제 문제는 많은 데이터베이스가 있으며 background.and에서 실행중인 작업을 통해 완료되어야하며 모든 데이터베이스에서 작동해야합니다.

제발 내가 어떻게해야합니까? 분할이 처음으로 수행되고 새 파일 그룹이 만들어지고 ndf가 생성되면 색인이 ndf 파일로 이동합니다. 다음에 mdf가 한계에 다다를 때 무엇을해야합니까?

또는이 방법의 단점이 있습니다. 동일한 파일 그룹에 새 ndf를 만들고 한계에 도달 할 때마다 mdf를 비워야합니다.

누군가 동적으로 수행하는 방법을 제안 할 수 있다면 좋을 것입니다. 미리 감사드립니다.

답변

0

link은 원하는 결과를 얻는 방법에 대한 몇 가지 훌륭한 세부 정보를 제공합니다. sp_MSforeachdb 명령으로 확장하여 각 데이터베이스에서 스크립트를 실행할 수 있습니다. 그러나 이것은 현재 매우 위험합니다.

예상되는 성장 및 기타 증가를 살펴보고 다음 6 개월에서 12 개월 동안이를 수용 할 계획을 세우고 일년에 한두번 수동으로 해보십시오. 이것이 가능하지 않다면 큰 테이블에 대해서만 데이터 이동을 스크립팅하는 중간 지점이 있습니다.

+0

고맙습니다. .. 한 번 활동으로 대규모 테이블의 클러스터되지 않은 인덱스에 대한 새 파일 그룹을 만들고 (나중에 필요한 유지 관리가 필요할 수 있음) 기본 파일 그룹에 다른 ndf 파일을 추가하여 빈 파일을 추가하는 스크립트를 만드는 것이 좋습니다. 데이터가 한계에 도달하면 mdf에서? – user3613755

+0

질문이 하나 있는데, 왜 새 파일 그룹입니까? 구체적으로 무엇을하고 싶습니까? 실제 파일을 다른 실제 드라이브에 넣으 려한다면 필요할 것입니다. 그렇지 않으면 추가 된 복잡성을 능가하는 추가 값을 보지 못합니다. 그것은 작은 것처럼 보일지도 모르지만 이러한 변화가 일어 났을 때와 이후에 복구 계획을 생각해 보면 내가 무엇을 의미하는지 알 수 있습니다.) 또한 대답이 완료되고 원하는대로 표시가 대답 인 경우 : D – Tristan

+0

서로 다른 파일 그룹에 색인을 별도로 저장하여 성능을 향상시킬 수 있습니다 (다른 디스크에있을 수도 있음). 또한 같은 그룹에 ndf 파일을 계속 작성하면 기본 그룹이 곧 만료 될 것이라는 우려가 있습니다. . – user3613755

관련 문제