2011-10-14 3 views
1

데이터베이스가 있으므로 SQL Server 2005와의 호환성을 유지해야하며 복잡성을 줄이고 성능 문제를 해결할 수있는 방법을 고려해 왔습니다.복잡한 SQL Server 데이터베이스 스키마 작업

내 데이터베이스는 대부분 다른 데이터와 비슷하며 많은 양의 데이터가 있으며 거기에 많은 쿼리가 있습니다. 비즈니스 요구 사항을 충족시키기 위해 (지금 당분간) 진화 해 온 많은 저장 프로 시저가 있습니다. 이것은 대부분 괜찮지 만 성능 문제가 발생하고 쿼리가 점차 복잡해지고 있습니다.

언뜻보기에 내 데이터 모델에 문제가 있다고 생각하지 않습니다. 불합리하게 표준화되지 않았습니다. (일부 항목은 이미 비정규화한 상태입니다.) 그러나 아직까지는 빠른 속도의 쿼리를 작성하고 실행할 수 없습니다. 내 웹 인터페이스 AJAX 쿼리는 여기 저기에 다소 우연히 존재하는 모든 제약 조건 때문에 쿼리를 수행합니다.

그래서 그것에 대해 생각해 보았습니다. 내 데이터베이스를 고리로 구성하려고합니다. 설명하겠습니다.

  • 기본적으로, 가장 내부 링, 당신은 데이터의 대부분의 전문 세트를 찾을 수 있습니다. 이 테이블은 완전히 비정규 화되어 있으며 외부 링의 데이터를 집계하여 쿼리가 실제로 빠르게 실행되도록 구축 된 되었습니다.

  • 가장 바깥 쪽 반지가 이상적으로 "벙어리"이며 기본적으로 실제로는 단지 물건을 넣기에 좋지 않은 입니다. 외부 및 내부 사이

  • 는 기본적 개념 모델, 다른 링에서 이러한 풀 또는 내부 링에 밀어이며, 당신은 당신의 데이터를 정리하고 올바른지 확인하십시오 곳은 입니다.

  • 데이터는 외부 링에서 내부 링으로 만 흐를 수 있습니다.

  • 다른 벨소리를 일관성있게 유지하기 위해 트리거를 사용하고 싶지는 않지만, 결과 일관성을 유지하기 위해 정기적 인 간격으로 수신 대기하는 서비스와 작업이 있습니다.

자, 여기가 조언을 구하고 숙련 된 데이터베이스 사용자로부터 의견을 얻기를 바랍니다. 이런 식으로 데이터베이스에서 더 많은 것을 얻을 수 있다고 생각합니다. 또한 여러 단계에서 복잡성과 성능 문제를 모두 해결할 수 있습니다. 어쩌면 내가하고있는 일에 대한 공통적 인 이름이 있을지, 아니면 NoSQL의 움직임에 관한 것일 수도 있지만 실제로는 모르겠다. 그 아이디어는 나에게 호소력이있다. 그러나 나가 나가는 길에 있다면, 내가 실수하기 전에 그것에 대해 듣고 싶습니다 ...

+0

속도와 최종 일관성을 원할 경우 NoSQL 솔루션을 선택하는 것이 좋습니다. 이 중 일부는 나쁜 생각처럼 보이는 SQL Server를 사용하는 자신 만의 nosql 솔루션과 같습니다. – JNK

+0

언어 청년 시계 –

+0

@JNK - 점프하고 SQL Server를 버리는 것이 발생하지 않는다고 가정 해 봅시다. 또한 SQL Server가 모든 일을 처리하고, 올바른 방식으로 처리하며, 일을 처리하는 데 전혀 불만을 갖지 않습니다. 궁극적으로는 NoSQL이 올바른 선택이지만 아직 거기에 없기 때문에 ... –

답변

0

데이터베이스에 초급자가 필요합니다. 진지하게. 이를 OLTP 및 OLAP 파트로 분할하여 데이터웨어 하우스를 정리합니다. 저장 프로 시저를 제거하십시오. 그런 다음 "많은 odata"가 다른 사람들의 "데이터 농담"일 가능성이 있다는 것을 알고 있습니다. 저는 약 60tb의 데이터 (즉, 60.000)로 확장되는 sysstem을 연구하고 있습니다. 초기 하드웨어에는 21.000GB가 있습니다.

OLTP (일반 데이터베이스)와 데이터웨어 하우스가 혼합 된 것처럼 시스템이 좋아합니다. 그들을 분할 -이 실 거예요. 또한 하드웨어로 분할하십시오. 이것은 데이터웨어 하우스에 대한 전체 표준 geta 책입니다.

+0

IBM Redbooks는 데이터웨어 하우스를 무료로 디자인하고 구축하는 것에 대한 제목을 가지고 있습니다. http://stackoverflow.com/questions/6178330/design-logical-model-of-datawarehouse-fact-tables-and-dimensions-table/6178657#6178657 –

+0

데이터웨어 하우징 (OLTP 및 OLAP)에 대한 소개가 필요합니다. 내가 데이터베이스에 관한 초보자 책을 필요로하는지 확신 할 수 없다. 그래도 그것을 지적 주셔서 감사합니다. 내 문제는 무엇이든 현실이며 모든 것을 진행하고 TB의 데이터까지 확장해야한다는 것을 의미하지는 않습니다. 데이터, 복잡성 및 느린 쿼리가 많은 큰 작업을로드하지는 않지만 그 전에는 정말 문제가되는데, 나는 상황을 해결할 수있는 방법을 찾고 있습니다. –

+0

그래서 뭐? 죄송합니다 - 많은 양의 데이터 + 느린 퀴리는 더 나은 hwardware + 표준 접근법입니다. – TomTom

1

기본적으로 @ TomTom의 대답에 동의하지만 필자는이 개념을 다르게 사용합니다. 독자적으로 데이터웨어 하우스 (또는 데이터 마트) 개념을 기본적으로 개발했습니다.데이터웨어 하우징에 대한 책을 구입하는 것이 좋습니다. 주제에 대한 세미나 또는 일련의 수업에 참석하는 것이 더 좋습니다. 당신은 분명히 이것에 대한 진지한 생각을 분명히 해왔고, 그것은 당신이 베스트 프랙티스와 개발 된 다른 접근법을 배울 때 당신을 잘 섬길 것입니다.

관련 문제