2017-09-07 15 views
0

나는 APPS 서비스가 약 15 테이블과 푸른 SQL 데이터베이스를 사용하여 푸른에서 호스팅이 기록 및 일일 기반으로 내 DB는 새로운 사용자와 관련하여 약 2000 건의 신규 지원을 받고 있습니다. 내 응용 프로그램에서 모든 테이블 (업데이트, 삽입 등)에 1 분마다 많은 작업을하고있는 cron이 있습니다.SQL 서버 실시간 및 히스토리 대시 보드 읽기 양식 테이블

지금 당장 내 목표는 관리자 (보조원 수, 보조 지연 수 등)에 대한 데이터를 표시하는 멋진 대시 보드를 만드는 것입니다. 기본적으로 해당 테이블에서 데이터를 읽습니다. 또한 날짜별로 필터링 할 수있는 가능성을 제공해야합니다. 최악의 시나리오에서는 같은 시간에 월간 보고서를 생성 할 수있는 사용자가 거의 없습니다 (aprox. 60k 레코드). 사실, 이미 많은 작업을 진행하면서 cron을 수행했기 때문에 제 찌름 데이터베이스에서 직접 작업하는 것이 두렵습니다. 따라서 잠금에 대해 걱정이됩니다.

내 생각은 - sql 데이터베이스웨어 하우스 -> 가장 큰 문제는 비용입니다. - 대시 보드의 데이터를 쿼리하는 데 사용할 두 번째 DB로 복제 - 나는이 해결책에 대해 납득하지 않는다. - noSQL 데이터베이스로 복제 (중요한 정보 만 푸시)하고 대시 보드 원본으로 사용하십시오. - 나는 지금까지 그런 해결책에 대한 경험이 없다.

무엇이 가장 좋을까요?

+0

150k 레코드 (예 : 작음) 만 있으면 먼저 스냅 샷 격리를 사용하여 (쓰기 경로의 잠금을 최소화하기 위해) 기본 데이터베이스에 대해 쿼리를 실행 해 보겠습니다. 그 작동하지 않는 경우 두 번째 DB에 복제를 시도합니다. ** 정답 **은 없습니다. – mjwills

+0

명령 줄 실행 파일 중 하나를 사용하면보다 효율적으로 보고서를 생성 할 수 있습니다 (https://docs.microsoft.com/en-us/sql/tools/command-prompt-utility-reference-database-engine). sqlcmd.exe를 사용하여 csv 형식으로 데이터를 출력 한 다음 C#으로 가져올 수 있습니다. 나는 C#에서 문자열 쿼리를 생성 한 다음 프로세스로 실행하는 응용 프로그램이 있습니다. 이 명령은 데이터베이스를 보관하고 C# 쿼리를 실행하는 것보다 훨씬 효율적으로 실행되도록 설계된 실행 파일을 나타냅니다. – jdweng

답변

0

결국 스냅 샷 격리를 사용하는 Azure의 지오 - 복제 옵션을 사용했습니다. MS Azure조차도이 지리 복제 데이터베이스를 읽기 전용 작업에 사용되는 두 번째 DB로 사용하는 것이 좋습니다! 테스트를 거쳐 위대한 작업을했습니다.

0

Azure 자동화를 사용하면 응용 프로그램에서 실행하는 대신 분당 실행되는 작업을 예약 할 수 있습니다. Azure 자동화 here에 대해 더 많이 알 수 있습니다.

지리 정보 복제를 사용하는 대신 SQL Azure Data Sync를 사용하는 것이 좋습니다. 기본 데이터베이스를 "허브"데이터베이스로 만들고보고 용 복제본을 사용하십시오. SQL 데이터 동기화에 대한 자세한 내용은 here을 참조하십시오.

설명 된대로 Power BI를 사용하여 대시 보드를 만들 수도 있습니다 (here).

희망이 도움이됩니다.