2012-12-01 2 views
0

1 년간의 데이터 수집 (30GB 데이터베이스)이 포함 된 응용 프로그램의 사용 데이터 (100 개 이상의 장치)가 포함 된 SQL Server 데이터베이스가 있습니다.통계 응용 프로그램 : MongoDB와 SQL Server

DB에 데이터를 삽입하는 것은 문제가되지 않으며, (현재로서는) 충분히 빠르며 클라이언트가 수행하는 유일한 작업입니다.

하나의 마스터 테이블과 몇 개의 하위 테이블이 있지만, 모든 것을 단일 테이블에 넣을 수 있습니다.

통계 분석을 수행해야하므로 대부분 count(*)으로 필터링하고 하나 이상의 열을 필터링해야합니다. 성능이 느려지고 있습니다 (색인으로 할 수있는 모든 일을 다했습니다).

MongoDB로 이동하면 속도가 향상됩니까? (예 내가 SQL 아니라는 것을 알고) 내가 공부를 시작하지 않은,하지만 내 작업의 99 %는 다음과 같습니다

select count(*) from table 
where date between date1 and date2 and field1 = 10 and field2 = "test" 
+2

당신의 SQLServer 분석 서비스를 고려 했습니까? 꽤 간단한 큐브가 필요한 것 같습니다. – a1ex07

+0

MongoDB가 도움이 될지 의심 스럽습니다. SQL 데이터베이스보다 데이터 분석에 좋지 않습니다. 사실 일부 유스 케이스에서는 더 악화 될 수 있습니다. 필요한 것은 Hadoop과 같은 데이터 분석 프레임 워크입니다. – Philipp

+1

제품을 전환하는 대신 SQL Server 데이터베이스를 조정하는 방법 만 조사 했습니까? MongoDB도 조정해야합니다! – usr

답변

0

어떤 쿼리 내에서 SQL의 다음 성능을 조인 사용하지 않는 경우 서버는 영향을받지 않습니다. 같은 목적으로 mongodb를 사용한다면 질의 시간은 SQL 1 또는 그보다 약간 나쁠 것입니다.

3

귀하의 요구 사항은 SQL Server에서 쉽게 처리 할 수 ​​있습니다. 에 적절한 색인 및 기타 최적화 기술을 사용하십시오. 이러한 쿼리는 SQL Server에서 효율적으로 실행할 수 있습니다. (날짜, 필드 1, 필드 2)에 sinmple 색인을 사용하십시오.

CREATE CLUSTERED INDEX IDX_TABLE_ID ON TABLE(id) 
GO 
CREATE INDEX IDX_TABLE_2 ON TABLE(date,field1,field2) 
GO 

은 빠른 쿼리 실행에 충분할 수 있습니다.

참고 : 보관 분석 용 SQL Server 데이터웨어 하우징 도구 (SQL SERVER ANALYSIS SERVICE)를 제공합니다. SQL SERVER CUBE는 거대한 아카이브 데이터를 집계하고 매우 간단하게 분석 할 수 있습니다. 다른 SQL 서버 정보에 대한

: http://ms-sql-queries.blogspot.in/

+0

감사하지만 인덱스는 해결책이 아니며 단지 예일뿐입니다. 너무 많은 인덱스를 만들어야 만 데이터 삽입이 느려지고 너무 많은 공간을 차지하게됩니다. SSAS를 찾아 보겠습니다. –

관련 문제