SELECT 문을 사용하여 임시 테이블을 사용하면 논리 I/O 수가 증가하는 이유는 무엇입니까? 그것을 감소시키지 않고 데이터베이스에 대한 조회수를 증가시키지 않을까요? '문제'가 섹션으로 나뉘어져 있기 때문입니까? 배후에 무슨 일이 일어나고 있는지 알고 싶습니다. 적어도 MySQL과임시 테이블 및 SQL SELECT 성능
답변
일반적인 대답은 없습니다. 임시 테이블이 사용되는 방법에 따라 다릅니다.
임시 테이블은 배치에서 나중에 여러 번 사용되는 복잡한 필터/조인 후에 작성된 행을 캐싱하여 IO를 줄일 수 있습니다. 이 방법으로 DB는 레코드의 서브 세트 만 필요할 때 기본 테이블을 여러 번 치는 것을 피할 수 있습니다.
임시 테이블은 나중에 쿼리에서 사용되지 않는 레코드를 저장하거나 엔진의 캐시에서 다른 데이터가 더 잘 사용할 수있는 많은 공간을 차지함으로써 IO를 증가시킬 수 있습니다.
쿼리 최적화 프로그램이 임시 테이블을 볼 수 없어 기본 쿼리에서 임시 쿼리를 포함하는 것보다 모든 내용을 한 번 사용하도록 임시 테이블을 만드는 것이 느리며 데이터의 불필요한 spool 소스 테이블에서 스트리밍 할 수 없게합니다.
그 tempaly 테이블을 normaly 히 언급할만한 것은 RAM이나 사용자의 설정이 그러한 gib memeory 테이블이 디스크를 사용하는 것을 허용하지 않는 경우에 한해서만 타입 테이블 메모리로 만들어 지므로 중요한 임시 테이블 속도가 느려집니다. – Rufinus
AFAIK는 TMP 테이블은 HD에게 명중 어떤 것보다 훨씬 빠른에 select를하고, RAM에 보관됩니다
데이터베이스 측에서 컬렉션 구조 결과를 구축하는 문제의 클래스가 있습니다 결과 파트를 클라이언트에 반환하는 것이 각 파트에 대해 라운드 트립하는 것이 훨씬 좋습니다. 예를 들어
: 임의의 깊이 재귀 관계 (보스)
데이터를하지 않고 효율적으로 쿼리 실행을 만드는 방식으로 인덱싱되지 않습니다 질의 문제의 또 다른 클래스가있다. 결과를 사용자 지정 방식으로 인덱싱 할 수있는 컬렉션 구조로 가져 오면 이러한 쿼리에 대한 논리 IO가 줄어 듭니다.
임시 테이블을 사용하면 WHERE 절에서 하위 선택을 의미합니다. 이 작업을 세미 조인 작업이라고하며 보통 쿼리의 텍스트 실행 계획에서 볼 수 있습니다.
쿼리 최적화 프로그램이 하위 선택/임시 테이블을 발견하면 수행 할 작업에 대한 몇 가지 가정을합니다 그 데이터로 근본적으로 최적화 프로그램은 하위 선택 결과 집합에 조인을 수행하는 실행 계획을 작성하여 다른 테이블에서 읽어야하는 행 수를 줄입니다. 행 수가 적기 때문에 쿼리 엔진은 디스크/메모리에서 적은 페이지를 읽고 필요한 I/O 양을 줄일 수 있습니다.
- 1. SQL 임시 테이블 및 복제
- 2. SQL 서버의 임시 테이블
- 3. 임시 테이블 저장 성능 비교
- 4. SQL Azure에서 임시 테이블 사용
- 5. SQL Server 성능 및 완전한 테이블 이름은
- 6. SQL Server Select where 값 LIKE (임시 테이블 값)
- 7. SQL Server 임시 테이블 및 연결 풀링
- 8. SQL SELECT 테이블
- 9. PHP, MySQL 및 임시 테이블
- 10. SQL 서버 임시 테이블 대 커서
- 11. MySQL myisam 테이블, 임시 테이블 및 인덱스
- 12. Vb.Net에서 SQL 임시 테이블 삭제
- 13. SQL Select Master - 세부 테이블
- 14. SSIS + 임시 테이블
- 15. SQL 서버 데이터베이스 테이블 성능
- 16. 뷰 SQL 서버에서 임시 테이블 데이터로 선택 및 삽입 2008
- 17. 연결된 서버 및 임시 테이블 문제
- 18. 공용 테이블 표현식과 임시 테이블
- 19. SQL Server 파티션 테이블 성능
- 20. SQL Server 테이블 값 함수 성능
- 21. 저장된 사전에 임시 테이블 삭제 및 재사용
- 22. Where 절에서 SQL Select Count 성능 문제
- 23. SQL SELECT NULL과 SELECT 1 사이의 성능 비교
- 24. 뷰 SQL 서버의 임시 테이블 또는 임시 변수
- 25. SQL의 임시 테이블
- 26. MySQL 연결 풀링 및 임시 테이블 생성
- 27. 임시 중급 테이블
- 28. MySQL 임시 테이블 문제
- 29. SQL Server의 세션 전역 임시 테이블
- 30. SQL Server 임시 테이블과 테이블 변수
어떤 DBMS입니까? 어떤 SQL을 사용하고 있습니까? –