mssql의 page단위는 8KB이다 header부분을 제외하면 데이터가 저장될수있는 공간은 8000byte정도 이기때문에 char의 최대 저장단위는 8000byte이다
따라서 mssql에서 varchar의 최대 저장은
varchar(8000)까지 가능하다.
varchar(MAX)는 8000이상까지 저장이 가능하며, 8000이상의 데이터가 들어왔을 때 LOB 데이터 형식으로 변경된다.
따라서 page자체에 데이터가 저장되는것이 아니라, data는 따로 저장되고 page에는 해당 data를 가르키는 포인터 주소가 저장된다.
따라서 동일한 양의 data를 입력하더라도 varchar(MAX)는 더 오랜 시간이 걸린다.
또한 varchar(MAX)는 그 자체로 index생성이 불가능한다 ( 다른 컬럼과함께 복합인덱스로는 구성 가능)
종합하자면