테이블의 SELECT 데이터와 뷰의 SELECT 데이터의 차이점은 무엇입니까?
그리고 각 용도에 가장 적합한 용도는 무엇입니까?직접 테이블 선택과보기의 차이
답변
Microsoft에 따르면 인덱스의 SQL Server 2000/2005/2008에서 인덱스를 사용하면 성능이 저하 될 수 있습니다.
인덱싱 된 뷰는 다음과 같은 방법으로 쿼리 성능을 높일 수 있습니다. 1. 집계를 미리 계산하여 인덱스에 저장하면 쿼리 실행 중 비용이 많이 드는 계산을 최소화 할 수 있습니다.
2. 테이블을 사전 조인하고 결과 데이터 세트를 저장할 수 있습니다.
. 조인 또는 집계의 조합을 저장할 수 있습니다.
테이블의 인덱스와 마찬가지로 뷰의 인덱스는 수정 오버 헤드를 경험합니다. 따라서 실행 속도가 향상되어보기 색인을 업데이트하는 데 걸리는 시간을 초과하는 경우에만 색인을보기에 추가하십시오.
아래 링크는이 기능에 대한 자세한 정보를 제공합니다.
대부분의 데이터베이스에서 기능적으로 서로 바꿔서 사용할 수 있습니다. (실제로는 전혀 다른 어떤 구체화 된 뷰를 무시하십시오.) 뷰를 생성하는 일반적인 두 가지 이유가 있습니다. 1. 추상화 (및 컬럼 앨리어싱) 메커니즘, 2. 권한 및 액세스 제어. 그러나 효율면에서 문제는 아닙니다. 그것의
사실이 아닙니다. 일부 데이터베이스는보기가 중첩 될 때 성능 문제가 있습니다. –
그리고 참조가 있으십니까? 그럴 가능성은 희박합니다. (그렇기 때문에 "대부분의 데이터베이스에서"라고 말한 것입니다.) – dkretz
예. Oracle에서는 중첩 된 뷰가 잘못 작동 할 수 있습니다. 확장 된 쿼리와 Oracle 내부의 다중 뷰로 정의 된 동일한 쿼리를 비교할 때이 점을 직접 경험했습니다. –
생각해이 방법 :
뷰가 서버에 거주하고 SQL 엔진에 의해 컴파일 된 단지 선택 문입니다.
일반적으로보기는 테이블 결과를 제한/단순화하는 데 사용됩니다.
감사 K
그것은 데이터베이스와 뷰의 정의에 따라 달라집니다.
별칭 열 또는 간단한 계산을 수행하는 단순보기는 쿼리를 직접 작성하는 것과 다르지 않습니다.
그러나보기가 훨씬 느려질 수 있습니다. 예 : Oracle에서 뷰 쿼리를 너무 많이 중첩하면 (예 : 하나의 뷰가 다른 뷰를 다른 테이블을 다른 테이블을 사용하는 테이블, 다른 테이블을 다른 테이블로 사용함) 끔찍한 성능을 생성 할 수 있습니다.
일반적으로 특정 데이터베이스와 질문을 테스트해야합니다.
- 1. 레일에서 테이블 크기와 밑줄의 차이
- 2. 단일 테이블 내 SQL 시간 차이
- 3. 데이터 테이블 2 개 사이의 차이
- 4. 직접 클래스를 인스턴스화하거나 C에서 제어 인터페이스를 통해 인스턴스화 사이의 차이 #
- 5. 자기 사이의 할당 차이. 그리고 바르에서 할당 직접
- 6. 차이 차이 사이 란
- 7. 시간 차이
- 8. 차이
- 9. 차이
- 10. 차이
- 11. 차이
- 12. 차이
- 13. 차이
- 14. 차이 []
- 15. 차이
- 16. 차이
- 17. 차이
- 18. 차이
- 19. 차이
- 20. 차이
- 21. 차이
- 22. 차이
- 23. 차이
- 24. 차이
- 25. 차이
- 26. 차이
- 27. 차이
- 28. 차이
- 29. 차이
- 30. 차이
이 기사를 자세히 읽는다면 실제로는 특별한 형태의 표를 만드는 또 다른 동물 인 "구체화 된보기"에 대해 이야기하고 있음을 알 수 있습니다. – dkretz