insert 속도를 높여보자
로킹 시스템 DB 아키텍팅이라는 새로운 업무를 진행중이다.
어떻게 하면 가장 빠르게 데이터를 넣을 수 있고,
어떻게 하면 가장 빠르게 데이터를 인출 할 수 있을 것인가에 대한 고민이다.
먼저 데이터 삽입에 대해서는 이러한 방법이 테스트의 대상이 될 듯 하다.
방법1
insert into tblx values (1,'minsouk')
go
insert into tblx values (2,'eunkyoung')
go
insert into tblx values (3,'bomi')
go
방법2
begin tran
insert into tblx values (1,'minsouk')
go
insert into tblx values (2,'eunkyoung')
go
insert into tblx values (3,'bomi')
go
commit tran
방법3
if object_id('usp_insert_tblx') is null
exec ('create proc usp_insert_tblx as select 1')
go
alter proc usp_insert_tblx
@idx int
,@cname varchar(200)
as
insert into tblx values(@idx, @cname)
go
exec usp_insert_tblx 1, 'minsouk'
go
exec usp_insert_tblx 2, 'eunkyoung'
go
exec usp_insert_tblx 3, 'bomi'
go
방법4
begin tran
exec usp_insert_tblx 1, 'minsouk'
go
exec usp_insert_tblx 2, 'eunkyoung'
go
exec usp_insert_tblx 3, 'bomi'
go
commit tran
방법5
sqlcli를 테이블 변수 이용
방법6
insert into tblx values (1,'minsouk'), (2,'eunkyoung'), (3,'bomi')
글을 읽고있는 당신은 무엇이 가장 빠르다고 생각되는가?
더 빠르게 넣을 수 있는 방법이 있다고 생각하는가?
단 쿼리문의 변경과 insert 하는 방법론으로만 이야기를 한정 하고자 한다.
로그 디스크를 어떻게 구성하고 등등은 2부로 하자.
'밥벌이' 카테고리의 다른 글
이 쿼리의 결과는 뭘까요? (6) | 2010.11.04 |
---|---|
insert select 로 인해 플랜 공간이 소모됩니다. (0) | 2010.10.28 |
.net framework 의 sql native client 를 이용할 경우 sp_reset_connection (4) | 2010.10.18 |
SQL Server I/O Basic (0) | 2010.10.11 |
read-ahead 미리읽기란? (0) | 2010.10.08 |