문제

예약 된 응용 프로그램이 있고 다른 데이터베이스 테이블에서 일부 데이터를 가져오고 기본 응용 프로그램 데이터베이스 테이블에 덤프를 하고이 테이블의 레코드 수는 매일 증가하며 매일 발생하는 트랜잭션 이벤트 데이터로 매일 성장할 것이라고 가정합니다. 이 데이터는 각 레코드를 취하고 필요한 분석을 수행하고 각 레코드를 처리 된대로 표시하는 기본 응용 프로그램에서 처리하는 데 사용됩니다.

미래에 데이터베이스의 크기를 낮추기 위해 어떤 종류의 솔루션을 제공 할 수 있습니까?

이 상황에서 어떻게 갈 것인가?

몇 가지 엔터프라이즈 애플리케이션을 관찰 한 결과, 사용자가 '60 일 이상'등을 텍스트 파일에 보관할 수있는 옵션을 제공합니다. 데이터베이스에서 레코드를 삭제하면 필요한 경우 텍스트 파일을 나중에 가져올 수 있습니까? 이것이 해결책입니까?

도움이 되었습니까?

해결책

가끔 이전 데이터에 액세스 해야하는 경우 프로세스를 구축하여 텍스트로 보관 한 다음 텍스트에서 다시로드하는 것은 훌륭한 솔루션이 아닙니다. 하드 드라이브는 저렴합니다.

이전 데이터를 집계 할 수 있습니다. 예를 들어 트랜잭션 데이터가 밀리 초 곡물에 있지만 이전 데이터에 대해보고하면 하루까지 데이터를 "매일"으로 집계하는 것을 고려하십시오. 당신은 매일 수십만 행을 단지 몇 일로 붕괴시킬 수 있습니다.

또한 하나의 디스크 세트와 아카이브 된 데이터를 다른 디스크로 유지할 수있는 가장 최근의 트랜잭션을 유지할 수있는 좋은 파티션 체계를 고려하십시오. 다른 디스크를 쉽게 추가하고 해당 디스크에 테이블을 만들 수있는 프로세스에서는 다른 디스크에 보관 된 데이터를 다른 디스크로 보관할 수 있습니다.

다른 팁

회사는 어떤 종류의 과거 데이터보고 요구가 있습니까? 아카이브 된 데이터를 텍스트 파일로 삭제하는 것은 나중에 해당 데이터를보고 할 필요가 없다고 가정 할 때 모두 좋고 좋습니다. 그러나 텍스트 파일에 있으면 필요할 때 주문형 데이터베이스로 가져 오려면 수동 프로세스가 있어야합니다.

더 나은 옵션은 아카이브 데이터를 트랜잭션 처리 (OLTP)에 사용하지 않는 데이터웨어 하우스 데이터베이스로 옮기는 것입니다. 이 보관 된 데이터를보고 할 때가되면 준비가되었습니다. 이 아카이브 데이터베이스에서 데이터를 구조화하는 방법에주의를 기울이면 모든 데이터를 OLAP 큐브로 집계하는 것이 매우 쉬워야하므로 해당 데이터를 훨씬 더 빠르고 유연하게보고합니다.

그러나 다시 ... 데이터를보고 여부와 보고서가 얼마나 멀리 돌아갈 수 있는지에 달려 있습니다.

그것은 과거 데이터에서 얼마나 많은 분석을 수행 할 것인지에 달려 있지만 성능이 문제가되지 않고 데이터베이스에 모든 것을 유지하는 방법이 있습니다.

떠오르는 해결책은 해당 테이블을 분할하는 것입니다. 우리 회사에는 매월 데이터가 분할 된 데이터베이스 테이블이 있으며 각 데이터는 약 2 천만 행이 포함되어 있습니다. 파티셔닝은이 데이터를 단일 테이블에 저장 한 것보다 훨씬 실용적으로 만듭니다. 이제 유일한 실제 제약 조건은 디스크 공간입니다. 요즘에는 얼마나 저렴한지를 감안할 때 문제가되지 않습니다.

그러나 일부 데이터베이스는 파티셔닝을 지원하지 않는다는 것을 알고 있습니다. 이 경우 구분 된 파일에 데이터를 저장하는 것이 적절한 솔루션이라고 생각합니다.

IMHO, 사용자가 과거 데이터를 분석해야 할 가능성에 달려 있습니다. 가능하면 좋은 색인을 만들고 모든 데이터를 기본 데이터베이스에 보관하십시오.

그렇지 않으면 txt에 떨어 뜨립니다. 물론 발생하는 시간은 물론 구성 할 수 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top