안녕하세요...
질문이 있어서 이렇게 글 올립니다.^-^
부디 지나치지 마시고 꼭 답변해주세요~~~~
파일그룹에 대해서 여러가지 테스트를 해 봤습니다.
이론상으로 데이터 파일을 여러개의 파일이나, 파일그룹으로 나누는
경우에...
데이터가 분산되어 병렬I/O처리가 가능해지기 때문에 성능향상이
된다고 알고 있습니다.
그래서 아래의 네가지 경우의 데이터베이스를 만들어서... 테스트를
해 보았습니다.
1. T Database - 주파일그룹 하나에 MDF파일, LDF파일 하나씩만을
사용하는 디폴트 데이터베이스
2. F Database - 주파일그룹 하나에 MDF파일, NDF파일, LDF파일
하나씩을 사용하는 데이터베이스
( MDF파일과 NDF파일은 서로다른 물리적 드라이브에 있음
)
3. G Database - 주파일그룹에 MDF파일 하나와 사용자 정의
파일그룹에 NDF파일 하나 그리고 LDF파일 하나를 사용하는
데이터베이스
( 마찬가지로 사용자 정의 파일그룹은 다른 물리적
드라이브에 있음 )
4. FG Database - 주파일 그룹에 MDF파일하나 NDF파일하나와
사용자 정의 파일그룹에 NDF파일두개 그리고 LDF파일을
사용하는 데이터베이스
각각 데이터베이스에 똑같은 테이블 A를 하나씩 만들고 똑같이
데이터를 삽입하였습니다.
그리고 아래와 같이 테스트를 하였습니다.
[1] 테스트 - A테이블에서 인덱스 없이 Select 쿼리를 날린다.
==> 파일이 나뉘어져있는 경우 얼만만큼 성능이 향상이 될까?
를 보기위한 테스트였습니다.
[2] 테스트 - 인덱스를 만든후 ( G, FG Database에서는 A테이블
데이터파일이 없는 다른 파일그룹에 인덱스를 만든다. ) Select 쿼리를
날린다.
==> 데이터와 인덱스가 서로다른 파일에 있는 경우 얼마만큼
성능이 향상될까? 를 보기위한 테스트였습니다.
[3] 테스트 - 또다른 테이블B를 하나 만들어서 ( 역시 G, FG에서는
A테이블의 데이터파일이 없는 다른 파일그룹에 테이블을 만든다. )
데이터를 삽입한 후 Join하는 Select 쿼리를 날린다.
==> 조인하는 테이블의 경우 각 테이블 데이터가 서로 다른
파일에 있는 경우 얼마만큼 성능이 향상될까? 를 보기위한
테스트였습니다.
그런데 테스트 결과는....-_-;;;
==> 테스트마다 조금조금씩 다르긴 했지만....거의 대부분
실행계획도 똑같았고, 논리적 읽기수나 경과시간 등에서 아주 근소한
차이가 있었습니다.
T Database와 F Database가 거의 같은 성능을 보였고, G
Database와 FG Database는 그것보다 시간이 조금 더
걸리더라구요...
이론상으로는 G와 FG 데이테베이스가 훨씬 좋은 성능을 보여야
할텐데... 어째서 이런 결과가 나온 것일까요??
고수님들의 의견이 궁금합니다...
아주 간단한 답변이라도 좋으니까.. 답변 많이많이
올려주세요^_^
참! cpu가 두개, 물리적인 하드디스크가 두개인 서버에서 테스트한
결과입니다....
|