2008-08-31 6 views
0

우리의 Windows Forms 응용 프로그램은 ADO.NET 및 SOAP 웹 서비스를 통해 SQL Server의보기에서 레코드를 가져 와서 데이터 그리드에 표시합니다. 상대적으로 원활하게 작동하는 ~ 25,000 개의 행을 가진 사례가 여러 번 있었지만 잠재 고객은 단일 목록에서 여러 번 그렇게해야합니다.벤치마킹을 위해 큰보기 쿼리 시뮬레이션

실제 데이터를 표시하는 대신 가상 서버에서 임의의 데이터를 보내도록 미리 시뮬레이션을 구현하고 싶습니다. . 클라이언트와 전송 측면은 거의 동일합니다. 뷰 (또는 최소한 기본 테이블)는 물론 다르게 작동합니다. 사용자는 허구 행 수를 지정합니다 (예 : 100,000).

당분간 클라이언트가 데이터를 검색하고 처리하는 데 걸리는 시간을 알고 싶습니다. 그리고 바로 표시 할 준비가되었습니다.

내가 알아 내려고하는 것은 다음과 같습니다. SQL Server에서 이러한 데이터를 보내려면 어떻게해야합니까?

해야합니까 :

  1. 실제 테이블을 채우기 위해 사전에 실행해야하는 저장 프로 시저를 만드시겠습니까?
  2. 뷰를 가리키는 함수를 생성하여 서버가 'live'데이터를 생성하도록합니까?
  3. 어떻게 든 기존 데이터를 복제 및/또는 임의화할 수 있습니까?

첫 번째 옵션은 현실 세계에서 가장 가까운 결과를 얻는 것처럼 나에게 들립니다. 데이터가 실제로 '물리적으로 존재하기'때문에 SELECT 쿼리는 실제 데이터와 성능면에서 매우 비슷합니다. 그러나, 그렇지 않으면 무의미한 조작으로 서버에 과세됩니다. 가짜 데이터는 하나의 동일한 데이터베이스에 저장되므로 백업됩니다. 물론 각 벤치 마크 실행 후 데이터가 삭제되지 않는 한 가짜 데이터는 백업됩니다.

두 번째 및 세 번째 옵션은 서버 에 세금을 부과하고은 실제 시뮬레이션을 실행하므로 잠재적으로 비현실적으로 느린 결과를 제공합니다.


또한 루프 나 커서를 사용하지 않고 이러한 행을 만드는 방법을 잘 모르겠습니다. foo에 실제로 <n> 항목이있는 경우 SELECT top <n> random1(), random2(), […] FROM foo을 사용할 수 있지만 그렇지 않은 경우에는 (분명히) foo만큼 많은 행을 가져옵니다. GROUP BY newid() 또는 그와 비슷한 것이 트릭을 수행하지 않는 것으로 보입니다.

답변

0

당신이 의지 할 수있는 결과를 원한다면 가능한 한 현실적인 테스트 시나리오를 만들어야합니다. 그러면 옵션 1이 최선책이됩니다. 다른 옵션으로는 충분하지 않은 결과가 나오면 다른 데이터베이스 작동으로 인한 것이 아닌지 확실하지 않다는 것을 지적하십시오.

데이터를 생성하는 방법은 문제 도메인에 따라 크게 달라질 수 있습니다. 여러 고객의 데이터 세트를 하나의 메가 데이터 세트에 병합 할 수 있습니까? 데이터가 시계열 인 경우 다른 범위에서 중복 될 수 있습니다.

0

데이터는 일반적으로 연락처, 프로젝트 등의 CRM과 비슷합니다. 데이터를 단순히 복제하는 것이 좋습니다 (예 : 20,000 개의 행만있는 경우 5 번 복사하여 원하는 100,000 개를 얻습니다. 행).반면, 합병은 벤치마킹 도구를 공개적으로 배포하지 않으면 명백한 개인 정보 보호를 위해 작동합니다 (물론 원래 데이터를 복구 할 수 없도록 각 열에 기능을 적용하지 않는 한? 해싱 기능과 유사). 값의 크기를 너무 많이 수정하지 않고).

아마도 이런 일을 할 것, 행을 채우려면 :

테스트 CRM 형 테이블에 대한 데이터의 경우
WHILE (SELECT count(1) FROM benchmark) < 100000 
    INSERT INTO benchmark 
    SELECT TOP 100000 * FROM actualData 
1

SQL Server 2008을 사용하고 있는지 언급하지 않았습니다. 2008을 사용하고 데이터 압축을 사용하는 경우 무작위 데이터가 실제 데이터보다 매우 다르게 (느리게) 작동한다는 점에 유의하십시오. 무작위 데이터는 압축하기가 훨씬 어렵습니다.

Quest Toad for SQL Server 및 Microsoft Visual Studio Data Dude는 모두 가짜 "실제"데이터를 레코드에 넣을 테스트 데이터 생성기를 가지고 있습니다.

+0

좋은 점. 내 글에 다시 태그를 추가했습니다. 우리는 여전히 2005 년을 사용하고 있습니다. –

관련 문제