none
한 페이지 용량 8K를 초과한 값 입력 시 어떻게 되나요??? RRS feed

답변

  • 안녕하십니까? 디C 님,
    Microsoft MSDN의Forum 사이트를 방문해 주셔서 감사합니다.

    문의 하신 ”한 페이지 용량 8K를 초과한 값 입력 시 어떻게 되나요???”에 대해 답변드리겠습니다.

    행들이 여러 페이지에 걸쳐 있을 수 없지만 그러한 행 부분들이 해당 행의 페이지를 벗어나서 해당 행이 실제로는 아주 커질 수 있습니다. 한 페이지의 단일 행에 데이터와 오버헤드가 최대 8,060바이트(8KB)까지 저장됩니다. 그러나 텍스트/이미지 페이지 유형에 저장되는 데이터는 여기에 포함되지 않습니다. varchar, nvarchar, varbinary 또는 sql_variant 열이 있는 테이블의 경우 이러한 제한이 완화됩니다. 테이블에 있는 모든 고정 및 변수 열의 전체 행 크기가 8,060바이트 한계를 초과하면 SQL Server는 하나 이상의 가변 길이 열을 가장 너비가 넓은 열부터 시작하여 ROW_OVERFLOW_DATA 할당 단위에 있는 페이지로 동적으로 옮깁니다. 삽입 또는 업데이트 작업으로 행의 전체 크기가 8060바이트 한계를 초과하면 이러한 작업이 수행됩니다. 열이 ROW_OVERFLOW_DATA 할당 단위의 페이지로 이동하면 IN_ROW_DATA 할당 단위에 있는 원래 페이지의 24바이트 포인터가 그대로 유지됩니다. 후속 작업으로 행 크기가 줄면 SQL Server가 동적으로 열을 다시 원래 데이터 페이지로 이동합니다.

    [참고자료]
    페이지 및 익스텐트 이해
    8KB를 초과하는 행 오버플로 데이터

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.
    제시해 드린 답변이 도움이 되었기를 바랍니다.
     
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    • 답변으로 표시됨 디C 2012년 3월 23일 금요일 오전 2:28
    2012년 3월 23일 금요일 오전 2:22
    중재자