SQL Server 2000 through 2008R2 (모두 Standard Edition)를 지원합니다.보기에 대한 질문
질문 1
다음과 같은 가상의 상황을 고려하시기 바랍니다. 테이블이 내부에 조인 된 5 개의 테이블 뷰가 있다고 가정 해 봅시다. 또한 각 테이블에서 10 개의 필드를 가져 오는 것으로 가정하므로 총 50 개의 필드가있는보기가 있습니다. 보기에서 두 필드 (두 테이블 각각 하나씩) 만 선택한 경우 동일한 테이블과 조인을 모두 가지고 있다고 가정하면 동등한 테이블 조인 스크립트보다 쿼리가 느려 집니까?
질문 2 나는이 같은 스크립트 일반적인보기 만들어진 어떤 경우
:
Create View SomeView
AS
select * from SomeTable
Go
이 테이블 필드는 상당히 정기적으로 추가해야합니다. "SomeTable"에 필드를 추가 할 때마다보기가 자동으로 올바르게 작동합니다. 이것은 상당히 느립니다 SomeTable에 50 개의 필드가 있고 일반 뷰에서 두 필드를 선택한 경우? Select * 뷰에서 두 개의 필드를 선택하면 해당 필드에 대해서만 쿼리가 수행됩니까?
Select (some fields) from dbo.Blah where SomeDate >= '1/1/2008'
내가 어떤 성능을 잃게됩니다
질문 3 나는 다음과 같은
Create View Blah
AS
select (some fields)
from TableA join TableB on TableA.Blah = TableB.Blah
Go
같은 뷰를 작성하는 경우 그 다음이 같은 뷰를 사용할 수 있습니까? 옵티마이 저는 실제로 적용된 뷰 레코드 만 가져 오거나 모두 풀링 한 다음 결과 세트를 하위 선택합니까?
TIA.
안 보이면보고 실행 적으로'select *'를 가진 뷰를 생성한다 - 근본적인 테이블이 바뀌면 기대했던 것보다 다른 데이터 값/타입을 얻을 수 있기 때문에 정말 나쁜 생각이다 – RedFilter