none
SSD에 설치된 SQL Server에 Table Partitioning을 하면 성능 상의 이익이 있나요? RRS feed

  • 질문

  • 요즘 HDD 대신에 SSD를 사용하는 경우가 많아지고 있는데,

    SSD에 설치된 SQL Server에 Table Partitioning을 하면,

    Partitioning을 하지 않았을 때 비해서  성능 상의 이익이 있나요?

    HDD는 물리적인 회전 disk 및 access arm을 가지고 있기 때문에

    DB를 여러 HDD 상에 분산시켜서 Partitioning을 하면 성능이 좋아진다고 배웠습니다.

    그런데 SSD(또는 FusionIo)는 access arm과 같은 물리적인 부분이 없기 때문에

    Partitioning을 하더라도 효과가 없을 것 같은데...

    오히려 컬럼 비교 등을 하느라고 성능에 손해있을 것으로 여겨집니다.

    어느 것이 맞는 이야기인지요?

    2015년 5월 8일 금요일 오전 6:08

답변

  • 안녕하세요.

    먼저 질문하신 내용에 대해서는 여러 관점과 의견이 있을 것으로 보입니다.

    일단 제 의견은, 테이블 파티션닝의 목적을 IO를 분산시켜서 성능의 이득을 얻는 것에는 조금 회의적이긴 합니다.

    IO 분산이 목적이라면, 해당 테이블의 파일 그룹에 파일을 여러개를 디스크에 나눠서 만드는 것과 별 다르지 않을 것으로 보입니다.

    아니면 여러 디스크를 RAID로 묶어서 사용하는 것도 디스크 IO를 좋게 하는데 도움이 되겠지요.

    보통 파티션에서 성능의 이득을 얻는다고 생각되는 부분은 쿼리에서 특정 파티션만 조회할 수 있게 작성된 경우 성능의 이득이 있다고 얘기하는데, 머.. 이 부분도 인덱스를 잘 만든다면 어느정도 커버 가능하다고 생각됩니다.

    사실 파티션은 성능보다는 관리에 포커스를 맞추는 것이 맞지 않나 싶습니다.

    슬라이딩 윈도우로 history 테이블로 오래된 파티션을 이동시킨다던지, 오래된 데이터를 지우는 것을 파티션을 삭제로 대체한다던지, 특정 파티션만 인덱스 rebuild/통계 업데이트(SQL Server 2014)를 하는 등의 용도가 더 적합하지 않나 싶습니다.

    다시 파티션 - IO 이슈로 돌아와서, 

    SSD가 IO가 좋으니까 파티션을 사용하는 것이 의미가 없다기 보다는, 사용 용도에 따라서 파티션을 사용하는 것을 결정하는 것이 더 중요하다고 생각됩니다.

    제 의견이 도움이 되셨으면 좋겠습니다.

    Younggun Kim

    MCDBA, MCITP
    Consultant @ Database Division in SQLRoad
    http://www.sqlroad.com  http://www.sqlserver.co.kr
    ygkim@sqlroad.com


    • 편집됨 Younggun KimMVP 2015년 5월 8일 금요일 오후 12:41
    • 답변으로 표시됨 youngkee 2015년 5월 10일 일요일 오후 11:09
    2015년 5월 8일 금요일 오후 12:40