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 3999 게시물 읽기
No. 3999
속도향상에 대해서?
작성자
임진표(nasa941)
작성일
2008-01-25 11:50ⓒ
2008-01-25 15:26ⓜ
조회수
3,946

test_tableA는 test_tableB을 복사한 테이블입니다.
test_tableB에 유니크한컬럼이 없어 test_tableA로 복사후 seq int형 칼럼 추가 한후에 indentity 증가1씩하엿구여 유니크한 클러스트 인덱스를 걸었습니다.
그런데 속도가 차이가없어서 올려봅니다..조언좀

--------- 쿼리 실행 -----------
 
set statistics TIME on
set statistics profile on

select * from test_tableA

select * from test_tableB

set statistics TIME off
set statistics profile off

------------- time 결과 --------------
test_tableA 실행값
(160397개 행 적용됨)

SQL Server 실행 시간:
   CPU 시간 = 297ms, 경과 시간 = 26997ms.

(162811개 행 적용됨)

test_tableB 실행값
SQL Server 실행 시간:
   CPU 시간 = 203ms, 경과 시간 = 25781ms.

--------- profile 결과 -----------

 [test_tableA] 결과

160397 1 SELECT * FROM [test_tableA] WHERE [seq]>@1 19 1 0 NULL NULL NULL NULL 160397.0 NULL NULL NULL 1.4603649 NULL NULL SELECT 0 NULL

160397 1   |--Clustered Index Seek(OBJECT:([testdb].[testdb].[test_table].[PK_test_table]), SEEK:([test_table].[seq] > Convert([@1])) ORDERED FORWARD) 
19 


Clustered Index Seek 
Clustered Index Seek 
OBJECT:([testdb].[testdb].[test_table].[PK_test_tableA]), SEEK:([test_table].[seq] > Convert([@1])) ORDERED FORWARD 
[test_table].[iSubCnt], [test_table].[point], [test_table].[level_pass], [test_table].[book_pass], [test_table].[jisa_id], [test_table].[number], [test_table].[book_gubun], [test_table].[book_code], [test_table].[write_date], [test_table].[book_level], [te 
160397.0 
1.26781 
0.17651521 
95 
1.4443252 
[test_table].[iSubCnt], [test_table].[point], [test_tableA].[level_pass], [test_table].[book_pass], [test_table].[jisa_id], [test_table].[number], [test_table].[book_gubun], [test_table].[book_code], [test_table].[write_date], [test_table].[book_level], [te 
NULL 
PLAN_ROW 

1.0



 [test_tableB] 결과

162811 1 SELECT * FROM [test_tableB] 20 1 0 NULL NULL NULL NULL 162765.0 NULL NULL NULL 1.5018638 NULL NULL SELECT 0 NULL

162811 1   |--Table Scan(OBJECT:([testdb].[dbo].[test_tableB])) 
20 


Table Scan 
Table Scan OBJECT:([testdb].[dbo].[test_tableB]) 
[test_tableB].[iSubCnt], [test_tableB].[point], [test_tableB].[level_pass], [test_tableB].[book_pass], [test_tableB].[jisa_id], [test_tableB].[number], [test_tableB].[book_gubun], [test_tableB].[book_code], [test_tableB].[write_d 
162765.0 
1.3064674 
0.17912 
102 
1.4855874 
[test_tableB].[iSubCnt], [test_tableB].[point], [test_tableB].[level_pass], [test_tableB].[book_pass], [test_tableB].[jisa_id], [test_tableB].[number], [test_tableB].[book_gubun], [test_tableB].[book_code], [test_tableB].[write_d 
NULL 
PLAN_ROW 

1.0
-------------------------------

참고로 한 20만 row 데이터 select 시 어는정도 시간걸리나염?

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

클러스터나 넌클러스터를 걸려면 조건을 주셔야 하는데 둘다 주지 않았네요 

20만이던 1억이든간에 클러스터, 넌클러스터 인덱스를 이용해서 쿼리했을때의 수행시간은 
거의 0초대에 나오게 해야 하지 않을까 싶습니다.

.님이 2008-01-25 14:57에 작성한 댓글입니다. Edit

조건을 준다는건 조건절 where를 말씀하시는 건가여? 
테이블 A에 조건을 걸고 프로파일을 보았는데


---
  |--Clustered Index Seek(OBJECT:([testdb].[dbo].[test_tableA].[IX_test_table]), SEEK:([test_tableA].[seq] > Convert([@1])) ORDERED FORWARD)
---
(160397개 행 적용됨)
SQL Server 실행 시간:
   CPU 시간 = 188ms, 경과 시간 = 27048ms.
---

속도면에서 별차이가 없네요..제가 조건을 잘못이해한듯하네염..ㅡㅡ;




임진표(nasa941)님이 2008-01-25 15:16에 작성한 댓글입니다.
이 댓글은 2008-01-25 16:02에 마지막으로 수정되었습니다.

where seq > 1 

이런 조건을 주셨나요? 
모두가 1보다 커겠죠? 그건 조건을 주나 마나입니다. 

seek로 떨어지지만 full scan입니다. 

조건을 준다는 건 이런거겠죠 

where seq = 1 

.님이 2008-01-25 16:19에 작성한 댓글입니다. Edit

음..자세히 설명을 하자면여..

test_tableA 라는  테이블이 뷰어이고

고유한 컬럼값이 없어 seq를 추가하여 스키마바인딩하여 인덱스를 걸었습니다.

test_tableA 라는 뷰어테이블자체를 실행하는데 11초정도가 걸리고있습니다.

이 test_tableA를 member 테이블과 left join 하여 게시판리스트처럼 웹에서 20row 단위로 표현하고자 함인데여...
전체 리스트중에 rs.pagesize를 20잡아서 뿌리는거라 어떤조건문을 넣는다는것이힘드네여....ㅡㅡ;

그래서

top 구문으로 20단위로 잡아서 뿌렷는데도 실행시간이 오래걸리네염..ㅡㅡ;

게시판같은경우 어떤 조건을 걸어야할지 난감하네여..ㅡㅡ;

답변감사합니다.

임진표(nasa941)님이 2008-01-25 16:38에 작성한 댓글입니다.

서버의 상황을 오픈할수 있다면 Messenger를 공개해 주십시오. 

제가 직접보고 해결을 해드리고 싶네요 ^^

.님이 2008-01-25 17:25에 작성한 댓글입니다. Edit

넘 감사드립니다..

에궁 이직해서 3일만에 다른분이 제작하신가 헤딩만했네여.

다시 전 회사에서 콜해서..ㅡㅡ;

우..해결하고 가야햇는데..

감사드려여..

임진표(nasa941)님이 2008-01-26 10:53에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4004INSERT SELECT하위쿼리 봐주세요 ㅠ.ㅠ
김경호
2008-01-25
3882
4002여러가지 조건에 중복 열에 대한 집계 쿼리..
건빵
2008-01-25
3325
4001데이타 export 중에 테이블의 키값이 풀려버립니다 [1]
정성원
2008-01-25
3162
3999속도향상에 대해서? [6]
임진표
2008-01-25
3946
3998프로필러 실행하면 연결되고 조금 지나 연결이 끈어져요
정병화
2008-01-25
3228
3997A테이블에서 B테이블로 INSERT시 SEQ를 1부터 1씩증가 방법 [1]
김경호
2008-01-24
3376
3996데이타 형식 관련 질문 드립니당..ㅠ_ㅠ/ [1]
송경훈
2008-01-24
3218
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다