데이터베이스 리팩토링에 관심이 있습니다. 나는 많은 양의 데이터가없는 몇 개의 데이터베이스를 다루는데, 최대 몇 십만 개의 행이있는 단지 몇 GB에 불과하다. 그러나 테이블, 뷰, sproc 및 기능이 수백 개 (때로는 수백 개) 있습니다. 어떤 곳에서는 스키마를 사용하는 분할 및 규칙 전략이 구현되어 테이블의 소유권/사용법을 확인하는 데 몇 가지 문제가 발생했습니다. 그러나 실제로 객체 결합에 도움이되지는 못합니다.데이터베이스에있는 테이블/sprocs/함수의 개수가 너무 많습니다.
우리 모두는 integration via shared database이 좋지는 않지만, 적어도 잠시 동안 모든 것이 데이터베이스에 있으므로 매우 생산적이라는 것도 알고 있습니다. 객체와 마찬가지로 데이터베이스에 Single Responsibility Principle을 적용하지 않습니다.
편집 : 데이터베이스 성능 문제가 없음을 추가해야합니다. 테이블은 크지 않고, 최대 테이블은 수십만 행에 불과합니다. 실제 데이터베이스 성능 문제는 없습니다. 데이터베이스 스키마/로직/구현이 기묘하게 비효율적 일 때 (보고서의 데이터를 사전 처리하기 위해 결과 집합의 각 행에 대해 sproc 실행을 수행해야한다고 가정 할 때를 제외하고). 당신이 내가 이것을 바꿔야한다고 말하기 전에 요점이 있습니다. 그것은 데이터베이스가 더 이상 변화의 영향을 평가할 수있는 상태가 아니기 때문에 가능하지 않습니다.
분명히 어떤 시점에서 "충분히!"라고 말하면됩니다. 메시지, ETL, 응용 프로그램 계층 등으로 연결된 여러 데이터베이스로 나누십시오.
질문 : 얼마나 많은 것이 너무 많습니까? 당신이 미쳐 가기 전에 가질 수있는 sprocs/tables/functions의 수의 절대적인 상한선은 무엇입니까?
내가 데이터베이스 측면에서 성능 문제가 없습니다. 내가 직면하는 유일한 문제는 기술적 빚이다. 데이터베이스는 복잡 할뿐만 아니라 더 이상 적합하지 않은 많은 필드가 있습니다. –