2010-05-07 4 views
0

나는 데이터베이스를 디자인했다. 인덱싱이있는 열이나 최적화 할 코드가 없습니다. 나는 그들을 많이 검색하기 때문에 특정 컬럼을 색인화해야한다는 것이 긍정적이다.DB 속도를 테스트하려면 어떻게해야합니까? (학습)

제 질문은 데이터베이스의 일부가 느려지는지 테스트하는 방법입니다. ATM sqlite를 사용하고 있으며 호스트 공급자를 기반으로하는 MS SQL 또는 MySql으로 전환합니다. 각 테이블에 10 만 개의 레코드를 만들면 충분합니까? 아니면 항상 sqlite에서 빠를 것이고 나는 1mil을 할 필요가있을 것인가? 데이터베이스가 느려지려면 10 밀리가 필요합니까?

어떻게 시간을합니까? 나는 C#을 사용하고 있으므로 StopWatch를 사용해야합니까? 아니면 ADO.NET/Sqlite 함수를 사용해야합니까?

답변

2

실제로 데이터를 추가함에 따라 최적의 실행 계획이 변경 될 것이므로 시간이 지남에 따라 모니터링하는 것이 중요합니다. 테스트를 원하면 대부분의 성능 문제를 볼 수 있도록 1 천만 행이 적당해야하지만 실제 데이터와 동일한 카디널리티 특성으로 테스트 데이터를 채워야합니다. SQL Server에는 많은 성능 모니터링 기능 (Dynamic Management Views, XEvents, SQL Trace/Profiler)이 내장되어 있지만 호스팅 솔루션을 사용하는 경우 얼마만큼 액세스 할 수 있는지 확신 할 수 없습니다. 데이터베이스 외부의 성능을 모니터링하기 위해 ADO.NET은 추적 기능을 지원하지만 직접 사용하지는 않았습니다. 두 번째 질문 SqlLite에 대해

0

는 데이터베이스가 하드 디스크 내가 sqlite가 메모리에 있는지의 사실을 생각 해달라고

+0

에 거의 항상 빠른 MSSQL에 비해 SqlLite의 데이터베이스가 MSSQL 같이 메모리에 있기 때문이다. 백만 개의 진입 테이블을 만들었고 램 사용량이 늘어나지 않았습니다. –

+0

메모리 데이터베이스 http://www.sqlite.org/inmemorydb.html로 설정할 수 있습니다. –

관련 문제