database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1661 게시물 읽기
No. 1661
[질문]파일그룹에 대해 질문이 있습니다... 꼭 답변해주세요~~ ^-^
작성자
김미숙
작성일
2004-11-12 21:36
조회수
3,379

안녕하세요...

 

질문이 있어서 이렇게 글 올립니다.^-^

 

부디 지나치지 마시고 꼭 답변해주세요~~~~

 

 

파일그룹에 대해서 여러가지 테스트를 해 봤습니다.

 

이론상으로 데이터 파일을 여러개의 파일이나, 파일그룹으로 나누는 경우에...

 

데이터가 분산되어 병렬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가 두개, 물리적인 하드디스크가 두개인 서버에서 테스트한 결과입니다....

 

 

 

이 글에 대한 댓글이 총 1건 있습니다.

테스트는 하는 방법에 따라 틀리겠지요.

혹시 매 테스트마다 동일한 조건에서 테스트를 하였는지요.

제생각으로는 쿼리플랜과 디스크 I/O의 수는 거의 동일 하지 않을까 합니다.

경과시간도 비슷하겠지요.

테스트 대상이 디스크 분산을 통한 속도 개선인데...

매 테스트 마다 서버를 재 시작 않했다면 큰 차이는 없었을것 같습니다.

왜냐하면 첫번째 쿼리로 인해 모든 데이터가 디스크에서 메인 메모리 캐시로 로드되고

그다음 쿼리는 디스크가 아닌 메모리에서 I/O가 발생하니 동일한 속도가 나올수 밖에 없을것 같습니다.

성능테스트에서 주의 점은 매 테스트는 항상 동일한 테스트 환경에서 테스트되어 져야만 한다는 것입니다. 

쿼리플랜에서 병렬처리 플랜이 있었다면 좀 빠라 질수는 있었겠지요.

정리를 하면

1. 매 테스트시는 동일한 환경에서 테스트 (DB shutdown후 테스트 or 시스템 재시작후)

2. 하나의 사용자 이상에서 테스트 

3. 기타- 병렬처리(parallel processing)를 위한 설정후 테스트 - 예) partition table, 병렬처리 가능 쿼리

 

좋은 결과 있으시기를 .......

많은사랑(haha)님이 2004-11-17 11:37에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1665덤프 입력에러..????
SCV
2004-11-16
2578
1664DBCC SHRINKFILE [2]
김민영
2004-11-15
3645
1663조인을 어떻게 해야 할까여? [4]
yookrogu
2004-11-13
3149
1661[질문]파일그룹에 대해 질문이 있습니다... 꼭 답변해주세요~~ ^-^ [1]
김미숙
2004-11-12
3379
1660SQL구문에러입니다 [3]
최혁천
2004-11-12
2308
1659디비 설계 문제점이요... [1]
전자람
2004-11-12
2433
1658디비에 계정 다 만들었는데 윈도우인증을 하지않으면 에러 [2]
db사랑
2004-11-11
2577
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다