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
운영게시판
최근게시물
Oracle Q&A 38285 게시물 읽기
No. 38285
이런 경우에는 어떻게 처리하는게 빠를까요?
작성자
조형래(rushzang)
작성일
2011-01-03 11:18ⓒ
2011-01-03 11:19ⓜ
조회수
3,006

a테이블에 30만건정도 되는 데이터가 있습니다.

각각 데이터에는 작성한 사용자 아이디가 들어가 있구요.

로그인한 사용자가 속한 부서에서 작성한 모든 데이터를 가지고 올려고

부서테이블이랑 조인만 하면 느려집니다.

쿼리는 다음과 같습니다.

 

select title from tb_data a

where a.user_id in ( select user_id from tb_dept where dept_id = 'AA' )

특정 조건에서만 로그인한 사용자가 속한 부서에서만 가지고 올려고 하는데

어떻게 하면 될까요?

조인 인덱스를 생성해볼려고 했는데 데이터 입력 및 수정이 빈번히 일어나는

테이블에서는 추천을 하지 않는다는 내용도 있어서

많은 분들의 조언 부탁드립니다.

 

감사합니다.

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

exist 로 변경해 보세요. in 말구요.

수고님이 2011-01-03 11:24에 작성한 댓글입니다. Edit

답변 감사합니다. 수고님 새해 복많이 받으세요.

 

EXIST로 변경을 하면

SELECT TITLE FROM TB_DATA A

WHERE EXIST ( SELECT USER_ID FROM TB_DEPT WHERE DEPT_ID = 'AA' )가

맞는지요?

맞다면 TB_DATA에 데이터를 가지고 오는데 USER_ID 가

SELECT USER_ID FROM TB_DEPT WHERE DEPT_ID = 'AA'  조건을 만족하는

데이터만 가지고 오는지요?

아는게 부족해서 조언부탁드립니다.

 

 

조형래(rushzang)님이 2011-01-03 11:54에 작성한 댓글입니다.

WHERE EXIST ( SELECT 1 FROM TB_DEPT B WHERE A,USER_ID = B.USER_ID AND DEPT_ID = 'AA' )

암비님이 2011-01-10 10:55에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
38288GROUP BY로 카운트를 할려고 합니다.
조형래
2011-01-03
3032
38287to_date관련 문의 [3]
임우빈
2011-01-03
3777
38286NUMBER형데이터 조회 [2]
이종성
2011-01-03
3649
38285이런 경우에는 어떻게 처리하는게 빠를까요? [3]
조형래
2011-01-03
3006
38284START WITH... CONNECT BY 로 연결시킨 구문에서 특정값을 뽑아오고 싶습니다. [1]
전현욱
2010-12-31
4462
38283약간좀 이상한 결과 [2]
김흥수
2010-12-31
3141
38282구분자가 있는 한필드의 결과를 세로로 [4]
짜집기
2010-12-30
5555
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다