집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 여러 값을 사용하는 단일 INSERT보다 여러 INSERT 문이 더 빠른 이유는 무엇입니까?
SQL Server의 자동 매개 변수화 프로세스로 인해 여러 개의 INSERT 문이 여러 개의 VALUES를 사용하는 단일 INSERT보다 성능이 뛰어납니다.
여러 개의 INSERT 문이 있는 경우 각 문이 컴파일되어 실행됩니다. 독립적이므로 오버헤드가 최소화됩니다. 그러나 여러 VALUES가 포함된 단일 INSERT 문을 사용하면 쿼리 최적화 프로그램이 실행 전에 전체 문을 구문 분석하고 컴파일해야 하므로 컴파일 시간이 크게 늘어날 수 있습니다.
자동 매개 변수화에 대한 컷오프는 약 250VALUES 절에서 발생합니다. 이 지점을 지나면 캐시된 계획 크기가 갑자기 줄어들고, 컴파일 시간이 급격히 증가하며, 값 절 처리 효율성이 선형적으로 감소합니다.
이 동작은 계획 유형 변경으로 인해 발생합니다. 자동 매개변수화를 사용할 때 계획은 삽입되는 리터럴 값에 따라 다릅니다. 제한을 초과하면 계획은 매개변수화되지 않으며 정렬과 같이 선형적으로 확장되지 않는 활동을 수행해야 하므로 컴파일 시간이 길어집니다.
이로 인한 영향은 특히 클 수 있습니다. 더 긴 문자열이나 고유한 값을 처리할 때. 그래프에서 알 수 있듯이 문자열 길이를 늘리거나 중복을 제거하면 여러 VALUES 메서드를 사용하는 단일 INSERT 문에 대한 성능이 저하됩니다.
반대로, 중복을 도입하면 SQL Server가 대수화 단계에서 이를 식별하고 방지할 수 있으므로 성능이 향상됩니다. 불필요한 정렬입니다.
따라서 여러 행을 삽입하는 경우 여러 개의 INSERT 문을 사용하는 것이 일반적으로 여러 개의 INSERT 문을 사용하는 단일 INSERT 문보다 더 효율적입니다. VALUES, 특히 긴 문자열이나 고유 값을 처리할 때.
위 내용은 SQL Server에서 여러 값을 사용하는 단일 INSERT보다 여러 INSERT 문이 더 빠른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!