필터링 할 Integer ID 필드 (SQL Server)가 여러 개 있습니다. 새 행 삽입을 준비 중입니다. WHERE fieldname IS NOT NULL
을 사용하는 것이 더 빠르지 않거나 WHERE fieldId > 0
을 사용하여 기존 ID 값의 목록을 얻을 수 있습니까?WHERE 필드가> 0보다 빨리 더 빠릅니다.
-1
A
답변
1
댓글이 너무 깁니다.
SQL Server는 (모든 데이터베이스와 마찬가지로) 데이터 페이지의 디자인이 다소 복잡합니다. Here은 더 자세한 내용을 나타냅니다.
그러나 생각은 NULL 플래그가 실제 값과 별도로 비트 맵에 저장된다는 것입니다. 데이터 페이지에서 값을 읽으려면 저장소 엔진이 그 밖의 작업과 상관없이 NULL 플래그를 구문 분석해야합니다. 값은 NULL 플래그 없이는 의미가 없습니다.
이 관점에서 보면 값을 비교할 때 NULL 플래그를 구문 분석하고 값을 검색해야합니다. 값이 필요하지 않으면 엔진이 NULL 플래그 만 가져올 수 있습니다 (이론적으로) 가능합니다.
질문 : "SQL Server는 IS NULL
비교를 최적화하여 비트 맵에서 NULL
플래그를 가져오고 나머지 값은 가져 오지 않습니까?" 나는이 질문에 대한 답을 모른다.
그러나 페이지상의 데이터 값의 경우 여분의 4 바이트를 복사하거나 복사하지 않는 것의 차이는 실제로 아주 작습니다. 페이지 외부 저장 용량과의 중요한 차이점이 있으므로 은 일 수 있습니다. 스토리지 아키텍처의 내 지식을 바탕으로
내 추측은입니다은 매우, 매우, 매우 작은 최적화를 할 수 NULL
값 비교. 실제로 차이가 있는지 나는 모른다. 어쨌든, 여분의주기 또는 2 회의 저축은 눈에 띄지 않을 것입니다.
관련 문제
- 1. 루프 시작이 더 빠릅니다.
- 2. INSERT 전후에 더 빠릅니다.
- 3. GDI + 또는 libpng가 더 빠릅니다.
- 4. SQL 쿼리가 더 빠릅니다.
- 5. XPath 또는 Regexp가 더 빠릅니다.
- 6. 하스켈에서 히스토그램 계산이 더 빠릅니다.
- 7. HttpWebRequest 또는 Webclient가 더 빠릅니다.
- 8. 오라클 검색에 더 빠릅니다.
- 9. UIViewController가 더 빠릅니다.
- 10. 은 자바보다 더 빠릅니다.
- 11. 어느 것이 더 빠릅니다.
- 12. 반복을 찾는 것이 더 빠릅니다.
- 13. 단어 배열 검색이 더 빠릅니다.
- 14. 더 빠릅니다 : include() 또는 file_get_contents()?
- 15. 이미지 업 로더가 더 빠릅니다
- 16. 오라클에 더 빨리 삽입
- 17. geoserver가 더 빨리 실행되도록하기
- 18. ObservableCollection을 더 빨리 채우십시오.
- 19. 배경에서 더 빨리 urlimage를로드하십시오.
- 20. 코드가 더 빨리 실행됩니까?
- 21. 내가 더 빨리
- 22. awk가 더 빨리 분할됩니다.
- 23. 더 빨리 히스토그램 작성하기
- 24. 더 빨리 달릴 것입니까?
- 25. 더 빨리 Directory.GetFiles()
- 26. 무엇이 더 빠릅니다 : 목록이나 dicts를 파이썬으로 병합합니까?
- 27. 데이터베이스를 더 빨리 업데이트 하시겠습니까?
- 28. iPad와 PC에서 setTimeout이 더 빨리 실행됩니다.
- 29. Quicksort는 더 큰 숫자를 더 빨리 정렬합니까?
- 30. 코드를 더 빨리 최적화하려면 어떻게해야합니까?
QUERY 실행 계획 체크 아웃 –
왜 둘 중 하나를 사용 하시겠습니까? 그들은 어떻게 비교할 수 있습니까? –
'NOT NULL'과'> 0'은 아주 다른 두 가지입니다. 0은 null이 아닙니다. 당신은 비슷하지 않은 두 가지를 비교하고 있습니다. –