저는 6 개의 DB로 작업하고 있습니다. DB는 모두 동일한 스키마, 동일한 SP 등을 가지고 있습니다. 처음에는 DB를 설계 한 사람에게 말하면 많은 DB를 사용하려는 동기의 상당 부분이 효율성이었습니다. 다른 대안은 데이터베이스의 거의 모든 테이블과 sp에 열을 추가하여 어떤 데이터 세트가 작업 중인지를 표시하는 것입니다. 이로 인해 여러 samll DB 대신 하나의 거대한 (따라서 느린) DB가 생성됩니다. 쿼리되는 데이터 집합을 나타내는 열 대신에 연결 문자열을 사용하여 어느 데이터베이스가 적중했는지 선택합니다.여러 DB를 하나의 DB로 병합하려면 어떻게해야합니까?
정말이 조직을 싫어하는 유일한 이유는 코드 중복이 많아서 유지 관리에 어려움이 있다는 것입니다. 예를 들어, 저장 프로 시저를 변경하고자 할 때마다 모든 데이터베이스에서 alter 문을 실행해야합니다.
내가 고려한 한 가지 해결책은 모든 데이터를 하나의 큰 데이터베이스로 결합하여 장소에 여분의 열을 추가하여 데이터를 결합하지 않은 경우 데이터를 나타냅니다. 그런 다음이 열의 값으로 모든 테이블을 분할 할 수 있습니다. 이론적으로이 모든 결과는 모든 데이터 자체의 기본 표현이 현재와 도덕적으로 동일하지만 인덱스, 스키마, SP 등에 중복되지 않는다는 것입니다.
내 질문 이것들 :
- 이것은 좋은 아이디어입니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?
- 이렇게하는 데 문제가 있습니까?
- 성능에 영향을 미칩니 까?
"멀티 테넌트 (Multi-tenant)"라는 용어는 이것을 연구하기 위해 필요한 것입니다. – Brian