안녕하세요.
저희 공장에 A라고 하는 설비가 있는데,
A 설비에 필요한 데이터(기준정보) 및 생산이력(Raw data)을
A 설비 PC 내부의 SQL Server에서 관리합니다.
A 설비의 PC는 서버급은 아니지만 워크스테이션 급이라서 이전까지는 성능에 크게 문제는 없었는데
A 설비 DB의 데이터를 설비 밖에서 활용하기 시작하면서 문제가 발생했습니다.
스마트팩토리를 한다고 데이터를 활용하기 시작하면서
A 설비 DB의 데이터를 외부 프로그램(대시보드, 데이터 분석 툴 등)에서 조회하게 되었고
쿼리문이 복잡하고 여러 곳에서 요청을 하다보니 A 설비 PC의 리소스가 많이 딸리게 되었습니다.
제일 좋은 방법은 A 설비의 PC를 서버급으로 바꾸는 것이겠지만 예산 등의 문제로 쉽지가 않아서
HW 교체 없이 A 설비의 DB에 부하를 최소한으로 줄일 수 있는 방법을 알아보고 있습니다.
막연하게 생각하기로는 A 설비 DB의 내용을 주기적(예를 들어 10분 간격)으로
B라는 DB에 업데이트해줘서 대시보드 등의 외부 프로그램은 B에서 데이터를 받아가도록 하면
A 설비 DB가 부하가 적게 걸리지 않을까 생각은 하고 있습니다.
제가 서버에 대해 잘 알지 못 해서... 이런 경우에는 어떻게 DB를 운용하는 것이 좋을지 조언을 구해봅니다.
바쁘시겠지만 조언 부탁드리겠습니다. 감사합니다.
이건 하드웨어로는 해결이 불가능하구요.
대부분 생산시스템은 MSSQL AlwaysON 기능을 많이 활용합니다. (MSSQL Always ON 을 사용하기 위한 전략 – 블로그 술이 (sooli.com))
OLTP 서버는 순수서비스만 적용하고 나머지 복제된 서버에서 DW나 보고서 및 통계를 위해 많은 데이터를 조회해 갑니다.
이게 부하가 걸리는 이유가 여러테이블을 조인하고 수집하니까 DB단에서는 많은 부하가 걸리는게 사실입니다. 이것 때문에 AlwaysON 기능을 쓸수밖에 없는 현실입니다. 라이센스 비용 많이 들겠네요.
모 대기업 생산시스템 전부 이렇게 구성하여 사용중입니다. 몇년동안 직접 구축하고 운영해보고 느낀건 MSSQL AlwaysON은 정말 축복이다 싶었습니다. 구축하고 한번도 MSSQL에 대한 장애도 없었습니다.