2010-01-11 7 views
2

이 책은 저에게 흥미 롭습니다. 필자는 Firebird를 오랫동안 사용해 왔지만, 최근까지 흥미로운 행동을 발견하지 못했습니다.파이어 버드 데이터베이스가 계속 커지고 있습니다.

임베디드 파이어 버드 1.5를 사용 중이며 데이터베이스에 BLOB (10MB의 가치가 있다고 가정)을 채우면 데이터베이스 크기가 커진다는 사실을 알게되었습니다. 그런 다음 데이터베이스의 모든 필드를 삭제할 수 있으며 DB의 파일 크기는 확장 된 크기로 유지됩니다. 현재는 20MB이며 완전히 비어 있습니다.

저는 파이어 버드가 아키텍처에 내장되어있어 (빠른 인덱싱, 속도 문제 등), 원래는 원래의 2 메가 바이트 기본값으로 줄어들 것이라고 항상 생각했습니다.

누구나 파일 크기를 줄이기위한 제안이 있습니까? 이유는 이것이 우주 의식 이슈라는 것입니다. 내가 작업 할 수있는 공간이 충분하다면 신경 쓰지 않을 것입니다. 그러나 그것은 사실이 아니며 가능한 한 최적의 상태가되도록해야합니다.

고마워요!

+0

답변 옆의 빈 체크 표시를 클릭하면 유용한 답변을 수락하는 것이 좋습니다. –

+0

오케이, 죄송합니다, 여기 새로 작성 – Liam

답변

4

파이어 버드 데이터베이스에서 사용되지 않은 공간을 비울 수있는 유일한 방법은 백업을 수행 한 다음 해당 백업을 즉시 복원하는 것입니다 (참조 : Firebird FAQ).

Here이 이유에 대한 기술적 인 설명입니다.

파이어 버드는 현재 사용되지 않는 공간을 다시 사용합니다. 현재 10MB의 BLOB를 넣으면 데이터베이스가 30MB로 늘어나지 않아야합니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 데이터베이스의 크기가 사용 예정인 경우에는 어떻게해야합니까? 그 안에 값을 저장하는 것. 사용자는 잠시 동안 데이터베이스를 사용하고 20MB가 될 필요가 없다면 2MB의 기본값 (모든 정보가 유지 된 채로)으로 다시 크기를 조정하고 싶습니다. 말이 돼? 아마 너의 논리를 따르지 않을거야? – Liam

+0

내 답변이 업데이트되었습니다. 기본적으로 백업/복원과 별개의 방법은 없습니다. 당신은 야간/주간 작업으로 이것을 스크립팅 할 수 있습니까? – Blorgbeard

+0

감사합니다. 나는 그 페이지/마이너스/백업/복원을 언급 하단 부분을 읽었습니다. 페이징 시스템 내에서 포인터가 얼마나 복잡한 지 이해할 수 있습니다. 게시 할 시간과 노력을 가져 주셔서 감사 드리며 기사의 백업/복원 부분을 알려주십시오. – Liam

관련 문제