728x90
반응형
게시판 작업이건, 기타 다른 작업을 할때, 테이블의 전체 행을 구해야하는 경우가 많이 생긴다.
이럴때 보통 사용하는 것이 SELECT COUNT(*) 인데, 이 쿼리는 table fullscan을 이용하여 결과를 받아오기 때문에 대용량의 테이블의 경우 매우 비효율적인 쿼리가 된다.
MS-SQL의 경우
sysindexs 시스템 테이블을 사용한다.
SELECT rows
FROM sysindexes
WHERE id = OBJECT_ID('/*테이블 이름*/')
AND indid < 2
ORACLE의 경우
All_tables Dictionary를 사용한다.
SELECT NUM_ROWS FROM All_tables
WHERE OWNER = '/*소유자 계정 이름*/'
AND TABLE_NAME = '/*테이블 이름*/';
이럴때 보통 사용하는 것이 SELECT COUNT(*) 인데, 이 쿼리는 table fullscan을 이용하여 결과를 받아오기 때문에 대용량의 테이블의 경우 매우 비효율적인 쿼리가 된다.
MS-SQL의 경우
sysindexs 시스템 테이블을 사용한다.
SELECT rows
FROM sysindexes
WHERE id = OBJECT_ID('/*테이블 이름*/')
AND indid < 2
ORACLE의 경우
All_tables Dictionary를 사용한다.
SELECT NUM_ROWS FROM All_tables
WHERE OWNER = '/*소유자 계정 이름*/'
AND TABLE_NAME = '/*테이블 이름*/';
728x90
반응형
'SQL > ORACLE' 카테고리의 다른 글
INDEX_DESC 힌트 절 (0) | 2014.06.11 |
---|---|
컬럼 데이터 유형 (0) | 2014.04.23 |
alter system [switch logfile] 과 [archive log current] 의 차이요 (0) | 2014.04.23 |
Count(*) 와 NVL(Max(RowNum),0) 차이점... (0) | 2014.04.12 |
[오라클] CONCAT, SUBSTR 함수 (0) | 2014.04.12 |
[Qury] Oracle Hint (오라클 쿼리 속도 향상 방법) (0) | 2014.04.03 |
Oracle E-Biz R12 채워가는 팁 (0) | 2014.04.02 |
ORACLE COMMENT 다는 법 (0) | 2014.02.21 |