CREATE VIEW Agent_View
AS
SELECT * FROM Agent_table
Agent_table에서 동일한 인덱스를 만들 필요가 있는지 알고 싶습니다. Agent_View도 있습니다. .
Agent_View를 schemabound로 선언하여 색인을 작성해야합니까? schemabound로 선언하지 않고 인덱스를 만드는 모든 해결 방법이 있습니까?
CREATE VIEW Agent_View
AS
SELECT * FROM Agent_table
Agent_table에서 동일한 인덱스를 만들 필요가 있는지 알고 싶습니다. Agent_View도 있습니다. .
Agent_View를 schemabound로 선언하여 색인을 작성해야합니까? schemabound로 선언하지 않고 인덱스를 만드는 모든 해결 방법이 있습니까?
당신은 SELECT *
와 뷰에 인덱스를 만들 수 없습니다 것은 어쨌든 외부 쿼리로 확장 단지 매크로입니다. 테이블 인덱스는 어쨌든 사용됩니다. 뷰는 스키마 관점에서 존재하지 않습니다.
마지막으로 IMHO는 가능한 한보기를 사용하는 것이 가장 무의미합니다. 에 0이으로 추가됩니다.
복잡한 쿼리가있는 경우 인덱싱 된 뷰를 만들지 만, 경우에 따라 테이블의 인덱스가 사용됩니다. 당신이 인덱스없이 WITH SCHEMABINDING
전망을 할 수 없기 때문에
이 뷰에 대한 대부분의 쿼리 (전부는 아닐지라도)는 언더 레이 테이블을 직접 사용한 것처럼 동작합니다. 인덱스가 사용되는 여부
select *
from agent_table
where agent_name = 'James Bond';
:
select *
from agent_view
where agent_name = 'James Bond';
...이에 옵티 마이저에 의해 다시 작성 될 것이다 : 당신이 agent_table
에 agent_name
를 색인하고, 같은 쿼리를 수행 따라서 경우
또는 아닙니다 다른 질문입니다.
보기에 색인을 생성 할 필요가 없다고 생각합니다. 테이블의 인덱스가 사용됩니다. –