안녕하세요. 코난 김대우 입니다.

이 클라우드 컴퓨팅 Windows Azure 관련 내용은 http://blogs.msdn.com/b/jspark 블로그 박중석님의 허락을 받고 가져온 글이며, 모든 저작권은 박중석님께 있습니다.
원본 출처 : http://blogs.msdn.com/b/jspark/archive/2011/02/21/7sql-azure.aspx



SQL Sever에서 SQL Azure로의 데이터로의 이전은 큰 문제 없이 진행이 되는 경우가 많습니다. SQL Azure Migration Wizard 같은 툴도 나와져 있기도 하고요. 여기에서는 실제 이전 시에 겪었던 문제 중의 하나인 클러스터드 인덱스에 대한 이야기를 해보려고 합니다.


SQL Azure의 경우 모든 Table에 반드시 클러스터드 인덱스가 있어야 합니다. 이유는 SQL Azure의 복제 방식에서 기인 하는데요, SQL Azure에서 DB를 만들면 Primary master 한 개와 두 개의 Secondary Replica가 복제를 위해서 생기게 됩니다. 따라서 Master 에서 트랜젝션이 일어나면 Replica에서도 같은 데이터를 갖기 위한 작업을 하게 됩니다.


Primary Master와 Secondary Replica 들이 물리적으로 떨어진 상태에서도 성능을 최적화를 할 수 있도록 SQL Azure에서 B-tree 로 구성된 클러스터드 인덱스를 사용하도록 되어 있습니다. 그리고 넌 클러스터드 인덱스의 경우 데이터 페이지의 순서를 기억할 수 없기에 SQL Azure 에서는 사용할 수 없도록 되어있습니다.


끝으로, SELECT INTO 구문은 테이블을 생성하면서 클러스터드 인덱스를 생성 할 수 없기 때문에 SQL Azure에서 사용을 하실 수가 없습니다.


더 자세한 내용은 아래 관련 URL들을 참고 하시길 바랍니다.


Why Do I Need a Clustered Index?

SELECT INTO With SQL Azure

Similarities and Differences - SQL Azure vs. SQL Server

SQL Server의 ALTER TABLE 관련 내용(한글)





profile

부족하지만, SQLER의 누군가와 함께한 나눔을 통해 제가 더 많이 즐거웠습니다.
SQLER와 함께 즐거워 할수록, 그 나눔을 통해 더 많은 기회와 가치를 발견하게 되었습니다.
나눔의 생각이 앞으로도 계속, SQLER를 움직일 것입니다.

코난, 김대우 / SQLER 운영자 / 골라먹는 SQLER RSS 정보 구독 / 실시간 SQLER 소식 uxkorea 트위터