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
운영게시판
최근게시물
ALTIBASE Q&A 101 게시물 읽기
No. 101
쿼리방식에 대한 질문- 어느게 더 시스템에 덜 무리가?
작성자
골빈당
작성일
2007-09-08 11:14
조회수
7,495

 일단 데이터가  일별로 각기 나누어져 DISK 에 저장되고

 최근데이터만 메모리에 올려두고 쓰고 있는 상태 입니다..

 여기서 질문은

 긴시간 데이터를 조회하는데 있어 어느것이 시스템에 덜 무리가 가는 것인가에 대한 것입니다.

 첫번째..   - 테이블 별로 결과를 내고, 그것을  가져와서  보여주는 방식..
               1테이블 조회 - 데이터 가져오기 - 2 테이블 조회 - 데이터 가져오기...  반복..
 두번째..   - 쿼리를 하나로 보내어서 union을 이용하여 데이터를 처리하는 방식

             select .. from (select ... 테이블1 ) union all (select ... 테이블2 ) ...(select ... 테이블n )

 하나는 테이블 별로 쿼리를 보내고, 그 결과를 가져오는 방식으로 n번의 쿼리가 전달되구요

 두번쨰는 하나의 쿼리로 한꺼번에 데이터를 가져오는 방식입니다.

 마지막 테이블 이외에는 모두 DISK에 들어있는 상태구요

 두가지 방식중 시스템에 덜 부하를 주는건 어느것일까요

 디스크에 있는 테이블을 엑세스하면  시스템 리소스 점유가 꽤 많이 올라가더군요.

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

Union all은 row의 같음 검사를 안하기 때문에

임시 저장 공간을 따로 사용하지 않습니다.

테이블을 scan하면서 혹은 index를 scan하면서

row를 리턴하는 방식이기 때문에

union all을 쓴다고 해서 n번 쿼리를 날리는 거에 비해

특별히 시스템에 더 부하를 가져오진 않습니다.


하지만 애플리케이션 작성자입장에서는 union all로 한번 쿼리를 날리는게

간편하지 않을까 싶네요.


현재 알티베이스 버전에서는 full scan을 위한 버퍼 정책을 따로 사용하지 않기 때문에

만약 위 쿼리들이 full scan을 사용하면 버퍼 replacement가 많이 일어납니다.

더군다나 테이블 n개를 full scan한다면 매번 disk I/O가 발생할 수 있습니다.

그렇게 되면 시스템 리소스 점유율이 높아지겠죠...

kumdory님이 2007-09-10 17:38에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
105synonym이 삭제가 안되네요 [1]
김성훈
2007-11-08
10364
104[알티베이스]처리시간이 긴 경우 어떻게? [2]
골빈당
2007-11-05
11945
102[Q]FreeBSD용 알티베이스 드라이버 있으신분.. [3]
골빈당
2007-09-20
8589
101쿼리방식에 대한 질문- 어느게 더 시스템에 덜 무리가? [1]
골빈당
2007-09-08
7495
100Hybird MMDB에 대해서 [2]
mystyle
2007-08-31
9471
99[ODBC 드라이버의 접속이 끊기는듯 한데] [2]
골빈당
2007-07-23
9396
98altibase iloader 사용방법은? [2]
궁금증
2007-07-18
12335
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다