ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SELECT INTO 와 FILE GROUP
    SQL Server 2011. 6. 14. 18:06

    안녕하세요. 이스트럭(강동운) 입니다. ^^


    오늘 포스팅의 주제는.. 바로 SELECT INTO 입니다.


    SELECT INTO시에 원하는 파일그룹으로 복사본 테이블을 다른 파일 그룹으로 넘기는 방법은 어떤게 있을까요??..


    결론부터 말씀드리면.. 데이타베이스의 기본 파일그룹을 변경하면 됩니다.


    간단한 예제를 한번 살펴보시죠~!


    use tempdb

    go

    if exists (select * from sys.sysdatabases where name = 'testdb')

    begin

           alter database testdb set single_user with rollback immediate;

           drop database testdb

    end

    go

    --//testdb 생성

    create database testdb

    go

     

    use testdb

    go

     

    --test 테이블생성

    create table test(idx int not null)

    go

    --기본키생성

    alter table test

    add constraint test_pk primary key(idx)

    go


     -- SQL 2008이라면...

    insert into test values(1),(2),(3)

    -- SQL 2005 이하라면..

    -- insert into test values(1); insert into test values(2); insert into test values(3); 

    go

     

    sp_help test

    1.png 


    데이터베이스를 기본적으로 생성하면 PRIMARY FILE GROUP이 생성이 되며, 기본 값으로 설정이 됩니다.


    여기서 파일그룹을 추가해보도록 하겠습니다.


     

    ALTER DATABASE testdb

    ADD FILEGROUP SECONDARY

     

    ALTER DATABASE testdb

    ADD FILE

    (

        NAME = testdb_Secondary,

        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\testdb.ndf',

        SIZE = 1,

        FILEGROWTH = 1MB

    )

    TO FILEGROUP SECONDARY

    GO



    그리고 나서 한번 SELECT INTO 를 써서 테이블을 복사해보겠습니다.


    select * into test2 from test

    go

    sp_help test2

    2.png 



    그렇다면.. 2번째 생성한 FILE GROUP으로 SELECT INTO를 하려면 어떻게 해야할까요?


    바로 기본 파일그룹 변경입니다.



    ALTER DATABASE testdb

    MODIFY FILEGROUP SECONDARY DEFAULT;

    GO


    select * into test3 from test

    go

     

    sp_help test3

    3.png 


    저도 이번 언플러그드 세미나때 알게 되었지만..


    PRIMARY FILE GROUP에는 데이터를 저장하지 않는 것이 좋습니다.

    (PRIMARY FILE GROUP에는 시스템 테이블정보만 할당해서 사용하도록 합시다!!)


    실제 데이터 그리고 인덱스는 파일그룹을 추가해서 다른 NDF 파일에 저장하는 것이 여러모로 좋다고 합니다.



    감사합니다.

Designed by Tistory.