1

의 성능을 테스트하는 방법은 사용자 활동에 대한 테이블을 다음 한 데이터베이스를 만들었습니다. 그래서 나는 어떻게 든 그것을 테스트하고 싶다. 데이터베이스에 많은 데이터를 채울 수 있으며이 테이블에서 데이터를 가져와야하는 페이지를 열 수 있지만 관련 테스트인지 여부는 알 수 없습니다.데이터베이스

피드 테이블에 10.000 명의 사용자와 50.000.000 개의 레코드가있을 때이 디자인이 어떻게 작동하는지 볼 수있는 좋은 방법이 있습니까?

이 도울 수 있다면 나도 몰라하지만 내가 MS SQL Server

+2

빌드하십시오. 그것을 측정하십시오; ** then ** 조정하십시오. –

+0

즉,이 디자인을 프로덕션 환경에 적용한다는 의미입니다. 하지만 50.000.000 개의 활동을 얻었을 때 사용자가 느린 데이터베이스로 인해 페이지를 열 수 없다는 것을 알게되었습니다. 나는이 활동을위한 디자인이 효과가 있음을 확신해야한다. – 1110

+1

하드웨어가 무엇입니까? SSD를 사용하고 있습니까? 당신의 지표는 무엇입니까? Have/스키마 집계 뷰를 디자인하여 집계를 캐시 할 수 있습니까? FK가 뭐니? 나는 단지 당신의 질문을 다루는 데 필요한 관련 질문을하기 시작했습니다. ** 실제로 문제가 발생할 경우 3NF 디자인 **을 작성하고 성능 문제를 해결하십시오. –

답변

0

에 관한 성능을 사용하고, 어떤 가정은 안전하지 않습니다. 다음 단계를 따라야합니다.

  • 로드 및 응답 시간과 관련하여 성능 목표를 정의하십시오. 특정 데이터로드에 대해 허용 된 응답 시간을 식별해야합니다.

  • 리소스를 정의하십시오. 모든 컴퓨터 구성이 동일하게 작동하는 것은 아닙니다. 대상 구성으로 가상 Maching을 빌드해야합니다.

  • load testing을 실행합니다. SQL Server load generator 같은 도구를 사용하면됩니다.

희망이 있습니다.

0

이 지금까지 나를 위해 일했습니다

  1. 는 세트를 식별하는 경우 성능이 중요 쿼리.
  2. DBMS가 위에서 확인한 쿼리에 대해 빠른 실행 계획을 사용할 수 있도록 데이터베이스를 디자인하십시오.
  3. 테스트 데이터의 대표적인 양으로 데이터베이스를 채우고 위에서 예상 한 쿼리 실행 계획이 실제로 사용되고 있는지 (그리고 각 쿼리의 성능이 만족 스러운지) 확인하십시오.
  4. 소프트웨어의 전체 "수직 스택"을 벤치마킹하십시오. 지금까지는 너무 많은 불의의 놀라움이 있어서는 안됩니다.

보다시피 데이터베이스 설계는 비즈니스 요구 사항을 충족시키는 것만이 아닙니다. 실제로 클라이언트가 데이터에 액세스하려는 방법을 이해하는 것이 설계 프로세스의 필수적인 부분입니다.

즉, 전통적으로 "논리적 디자인"으로는 충분하지 않습니다. 논리적 디자인과 물리적 디자인 사이에 "양방향 거리"가 있어야합니다.

10.000 사용자와 50.000.000 레코드가 피드 테이블에있을 때이 디자인이 어떻게 작동하는지 보는 좋은 방법이 있습니까?

해당 문장에는 충분한 정보가 포함되어 있지 않습니다.

먼저 데이터 액세스 방법을 사용하십시오. 그런 다음 특정 액세스 패턴을 효율적으로 지원하도록 데이터베이스를 디자인 할 수 있도록 도와 줄 수 있습니다. "페이지를로드하는 것은"(이것은 보통) 사용자 경험을 위해 중요하다면


예를 들어

1

은 일반적으로 그 과정에서 실행됩니다 쿼리의 목록을 확인하십시오.

2 파티셔닝 등 인덱싱, 클러스터링 등의 "물리적"기술을 포함, 또한 전통적으로, 비록 이러한 키와의 관계의 설계와 같은 "논리적"디자인 등의 몇 가지 양태를 포함 할 수있다 . 일반적인 DBMS가 사용하는 기본 데이터 구조를 이해한다면 대부분의 설계 결정에 따른 성능 결과를 예측할 수 있습니다. Use The Index, Luke!은 주제에 대한 훌륭한 소개입니다.

+0

스키마를 기반으로 특정 사용자에게 관심이있는 모든 레코드를 가져와야합니다. 따라서 이것은 'user_id = 123 order by read/view_at desc' 작업에서 간단한'select top 10 * '활동 일 것입니다. 나는 모든 ID가 다른 테이블에 대한 조인 형식을 기반으로 여기에 있다고 생각했지만 이것이 문제가 될 것이라고 생각하여이 테이블에서 할 수있는 한 많은 데이터를 유지하기로 결정했습니다. 이 비정규 화 데이터베이스를 알고 있지만 더 나은 방법을 찾을 수 없습니다. – 1110