참 또는 거짓: 큰 레코드(행)와 많은 필드(열)가 있는 테이블은 SQL 쿼리를 반환하는 데 더 오랜 시간이 걸립니까?

참 또는 거짓: 큰 레코드(행)와 많은 필드(열)가 있는 테이블은 SQL 쿼리를 반환하는 데 더 오랜 시간이 걸립니까?

참 또는 거짓: 많은 필드(열)로 인해 대규모 레코드(행)가 있는 테이블이 SQL 쿼리를 반환하는 데 더 오랜 시간이 걸리나요?

즉, 많은 필드가 있고 따라서 빅 데이터가 많은 행이 많은 테이블에서 작동하는 SQL의 SELECT ... WHERE... 쿼리가 있는 경우 이 SQL 쿼리는 동일한 SELECT보다 훨씬 느리거나 느려집니다. /WHERE 더 적은 수의 필드가 있는 테이블에서 작동하는 SQL 쿼리?

확실한 답변을 원합니다. "모든 것이 다릅니다. 테스트하고 확인하는 것이 어떻습니까?" ;-) 레코드에서 지원할 수 있는 최대 필드 수에 가까운 터무니없는 숫자를 선택하지 않는 한 아무런 차이가 없습니다. 대상은 SQL Server 2008입니다. 감사합니다.

편집: 제가 말하는 것은 "GUID", "NAME", "ADDRESS" 필드가 있는 테이블입니다. 그리고 50개의 다른 매개변수는 "GUID" 및 "만 있는 두 번째 테이블에 대해 SELECT/WHERE 쿼리를 반환하는 데 더 오랜 시간이 걸립니다. NAME", WHERE는 물론 '= NAME'입니다(그리고 동일한 원시 행 수, 둘 다 테이블에 10000개의 행이 있다고 가정해 보겠습니다).

답변1

진실

답변2

선택 자체는 '더 작은' 테이블에서 유사한 조건을 갖는 다른 선택과 동일해야 합니다. 그러나 디스크와 네트워크를 통한 데이터 전송에도 시간이 좀 걸리며 이는 분명히 데이터 양의 영향을 받습니다.

대부분의 경우 데이터 전송 시간은 레코드 선택 시간보다 훨씬 짧습니다. 그렇다면 데이터 크기의 영향은 무시할 수 있습니다.

답변3

머리를 써라. 정말. 단순한 답변은 합리적이지 않습니다.

1억에서 1억 행 사이에는 처리 능력과 전송 속도에 차이가 있기 때문에 당연히 차이가 있을 것입니다(아니요, 1억 행은 터무니없는 것이 아닙니다. 하루에 5천만~2억 행 쿼리를 여러 번 실행합니다).

이는 메모리 대역폭의 양으로 시작하고 끝이 아닌 NETOWRK 대역폭만큼 간단한 것으로 끝나지 않습니다. 10행은 천만 개보다 훨씬 적은 데이터를 가지며 네트워크는 초당 전송할 수 있는 양에 무제한입니다.

편집 내용: 비교를 위해 3개 필드에서 53개 필드로 이동합니다. 직접 계산해 보세요. 일반 네트워크에서는 초당 100MB를 허용해야 합니다. 그렇습니다. 자연스럽게 A의 차이가 발생합니다. 당신의 질문은 그것이 얼마나 관련성이 있는지입니다. 하지만 문제를 실제로 이해하는 데는 관심이 없고 이분법적인 예/아니요 대답을 원한다는 점을 명시적으로 분명히 밝혔습니다. 맞아요.

관련 정보