메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 SQL Server

뇌를 자극하는 SQL Server 질의응답 게시판입니다.

[sql2008]8장 실습11 Page 469 : 분산 분할뷰 실습 질문있습니다.

2012-05-24

|

by hoyasoft

2367

CREATE VIEW dpv_userTbl AS
        SELECT * FROM partViewDB.dbo.userTbl
        UNION ALL
        SELECT * FROM SECOND.partViewDB.dbo.userTbl
        UNION ALL
        SELECT * FROM THIRD.partViewDB.dbo.userTbl

안녕하세요 제가 실습을 하다가 실수로 아래의 코드에서 UNION ALL을 사용하지않고 UNION을 사용해서 뷰를 만들었습니다.

그리고 데이터를 입력하는 INSERT 구문을 실행시
Update or insert of view or function dpv_userTbl failed because it contains a derived or constant field. 이와같은 뷰에 파생된 또는 상수 필드를 포함하고 있기 때문에 뷰 또는 기능의 업데이트 또는 삽입에 실패 했다는 애러 메시지가 나오는데요.
UNION ALL로 수정을 해서 자료를 입력하니 정상적으로 작동하였습니다.
UNION과 UNION ALL의 차이는 중복허용과 중복제거 인것으로 알고 있는데 이것이 뷰를 만들때 데이터를 삽입 수정 하는데 왜 이러한 오류가 나고 어떠한 영향을 미치는건지 궁금합니다.

그리고.. 분산 분할 뷰를 만들어서 사용하였을경우 하나의 서버가 다운되었을경우 정상적으로 동작하고 있는 서버의 데이터까지도 조회 할수 없는데요 이를 해결할수 있는 방법은 어떤것이 있을까요?

추가적으로 궁금한것이 있어서 질문 드림니다.
9장. Page.504 에 보면 클러스터형 인덱스는 비클러스터형 인덱스 보다 검색 속도는 빠르지만 데이터의 입력/수정/삭제는 더 느리다. 라고 되어 있습니다.. 입력 과 삭제는 페이지 분할과 데이터 제정렬로 인해 비클러스터형 인덱스 보다 느려 진다는 것이 이해가 갑니다. 하지만 수정작업도 비클러스터형보다 더 느리다는 것이 이해가 잘 안가는데요.

제가 생각하기로는 수정작업은 클러스터 인덱스로 선언된 컬럼이 값만 수정되지 않으면 페이지 분할 작업 및 정렬 작업이 필요하지 않아서 비클러스터 인텍스보다 클러스터 인텍스가 더 빠를 것이라고 생각이 되는데요.
클러스터 인텍스형 인덱스가 비클러스터 인덱스 보다 수정작업이 더 느린점에 대해 보충 설명 부탁드림니다.

요약
1. 분산형 분할 뷰 에서 UNION과 UNION ALL의 차이
2. 분산형 분할 뷰 사용시 한곳의 서버가 동작하지 않으면 해당 뷰를 사용할수 없는 문제점에 대한 해결책.
3. 클러스터 인텍스형 인덱스가 비클러스터 인덱스 보다 수정작업이 더 느린점에 대해 보충 설명.
댓글 입력