나는 APPS 서비스가 약 15 테이블과 푸른 SQL 데이터베이스를 사용하여 푸른에서 호스팅이 기록 및 일일 기반으로 내 DB는 새로운 사용자와 관련하여 약 2000 건의 신규 지원을 받고 있습니다. 내 응용 프로그램에서 모든 테이블 (업데이트, 삽입 등)에 1 분마다 많은 작업을하고있는 cron이 있습니다.SQL 서버 실시간 및 히스토리 대시 보드 읽기 양식 테이블
지금 당장 내 목표는 관리자 (보조원 수, 보조 지연 수 등)에 대한 데이터를 표시하는 멋진 대시 보드를 만드는 것입니다. 기본적으로 해당 테이블에서 데이터를 읽습니다. 또한 날짜별로 필터링 할 수있는 가능성을 제공해야합니다. 최악의 시나리오에서는 같은 시간에 월간 보고서를 생성 할 수있는 사용자가 거의 없습니다 (aprox. 60k 레코드). 사실, 이미 많은 작업을 진행하면서 cron을 수행했기 때문에 제 찌름 데이터베이스에서 직접 작업하는 것이 두렵습니다. 따라서 잠금에 대해 걱정이됩니다.
내 생각은 - sql 데이터베이스웨어 하우스 -> 가장 큰 문제는 비용입니다. - 대시 보드의 데이터를 쿼리하는 데 사용할 두 번째 DB로 복제 - 나는이 해결책에 대해 납득하지 않는다. - noSQL 데이터베이스로 복제 (중요한 정보 만 푸시)하고 대시 보드 원본으로 사용하십시오. - 나는 지금까지 그런 해결책에 대한 경험이 없다.
무엇이 가장 좋을까요?
150k 레코드 (예 : 작음) 만 있으면 먼저 스냅 샷 격리를 사용하여 (쓰기 경로의 잠금을 최소화하기 위해) 기본 데이터베이스에 대해 쿼리를 실행 해 보겠습니다. 그 작동하지 않는 경우 두 번째 DB에 복제를 시도합니다. ** 정답 **은 없습니다. – mjwills
명령 줄 실행 파일 중 하나를 사용하면보다 효율적으로 보고서를 생성 할 수 있습니다 (https://docs.microsoft.com/en-us/sql/tools/command-prompt-utility-reference-database-engine). sqlcmd.exe를 사용하여 csv 형식으로 데이터를 출력 한 다음 C#으로 가져올 수 있습니다. 나는 C#에서 문자열 쿼리를 생성 한 다음 프로세스로 실행하는 응용 프로그램이 있습니다. 이 명령은 데이터베이스를 보관하고 C# 쿼리를 실행하는 것보다 훨씬 효율적으로 실행되도록 설계된 실행 파일을 나타냅니다. – jdweng