데이터 베이스 MySQL 튜토리얼 실행 계획의 암시적 데이터 형식 변환 처리에 대한 SQL Server 2008 개선 사항

실행 계획의 암시적 데이터 형식 변환 처리에 대한 SQL Server 2008 개선 사항

Jun 15, 2018 am 09:29 AM
sql server

다음 테스트를 통해 검증한 결과, 먼저 데이터 분포가 고르지 않은 테스트 테이블을 생성합니다.

USE tempdb
GOCREATE TABLE _t(
    c varchar(50)
);CREATE INDEX IX_c ON _t( c );GO-- 加入 10000 条数据INSERT _tSELECT (9999 + id) FROM(    SELECT TOP 10000 id = ROW_NUMBER() OVER( ORDER BY GETDATE() )    FROM sys.all_columns a, sys.all_columns
)ID
-- 将 100 - 10000 的数据变成相同值UPDATE _t SET c = '' WHERE c >= '10100'
로그인 후 복사

그런 다음 varhcar 및 nvarchar 값을 사용하여 각각 1개 조건과 8900개 조건을 충족하는 실행 계획 행의 예상 개수를 테스트합니다.

ALTER INDEX IX_c ON _t REBUILD;GOSET SHOWPLAN_ALL ONGOSELECT * FROM _t WHERE c = '10005';     -- 实际1条GOSET SHOWPLAN_ALL OFF;GOALTER INDEX IX_c ON _t REBUILD;GOSET SHOWPLAN_ALL ONGOSELECT * FROM _t WHERE c = N'10005';     -- 实际1条GOSET SHOWPLAN_ALL OFF;GOALTER INDEX IX_c ON _t REBUILD;GOSET SHOWPLAN_ALL ONGOSELECT * FROM _t WHERE c = '';          -- 实际9900条GOSET SHOWPLAN_ALL OFF;GOALTER INDEX IX_c ON _t REBUILD;GOSET SHOWPLAN_ALL ONGOSELECT * FROM _t WHERE c = N'';         -- 实际9900条GOSET SHOWPLAN_ALL OFF;GO
로그인 후 복사

얻은 쿼리 계획의 예상 행 수는 아래 그림과 같습니다.

실행 계획의 암시적 데이터 형식 변환 처리에 대한 SQL Server 2008 개선 사항

그림에 표시된 예상 데이터 행 수에서 varchar 값에 대해 알 수 있습니다(숨겨진 데이터 없음). 타입 변환이 필요함), 추정 행 수는 추정 결과가 정확합니다. 그러나 nvarchar 값의 경우 지정된 값에 데이터가 한 개만 있거나 8900개의 데이터가 일치하는지 여부에 관계없이 추정 결과는 99.0099로, 이는 우리가 지정한 값을 고려하지 않고 추정되었음을 나타냅니다.
변수를 사용한 추가 테스트

ALTER INDEX IX_c ON _t REBUILD;GOSET SHOWPLAN_ALL ONGODECLARE @v varchar;SELECT * FROM _t WHERE c = @v; -- varcharGOSET SHOWPLAN_ALL OFF;GOALTER INDEX IX_c ON _t REBUILD;GOSET SHOWPLAN_ALL ONGODECLARE @nv nvarchar;SELECT * FROM _t WHERE c = @nv; -- nvarcharGOSET SHOWPLAN_ALL OFF;GO
로그인 후 복사

결과는 아래 그림과 같습니다.
실행 계획의 암시적 데이터 형식 변환 처리에 대한 SQL Server 2008 개선 사항

varchar 변수든 nvarchar 변수든 예상 행 수는 99.0099입니다. nvarchar 상수 값입니다. SQL Server 쿼리 최적화 프로그램은 실제로 GetRangeThroughConvert의 결과를 변수로 간주해야 합니다. 이는 결국 고정된 상수 값이 지정된 경우 GetRangeThroughConvert의 결과도 특정해야 한다는 점을 제대로 고려하지 않은 설계입니다. 값.

이 기사에서는 SQL Server 관련 내용을 설명합니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 참고하세요.

관련 권장 사항:

MySQL에서 단일 문장으로 무한 수준의 부모-자식 관계 쿼리를 구현하는 방법

진행 상태로 SQL Server FileStream에 액세스하는 방법

잊은 경우 수행할 작업 SQL Server 관리자 비밀번호


위 내용은 실행 계획의 암시적 데이터 형식 변환 처리에 대한 SQL Server 2008 개선 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

마이크로소프트 SQL 서버란 어떤 소프트웨어인가요? 마이크로소프트 SQL 서버란 어떤 소프트웨어인가요? Feb 28, 2023 pm 03:00 PM

Microsoft SQL Server는 Microsoft에서 출시한 관계형 데이터베이스 관리 시스템으로, 통합 비즈니스 인텔리전스(BI) 도구를 사용하여 엔터프라이즈 수준의 데이터 관리를 제공하는 포괄적인 데이터베이스 플랫폼입니다. 관련 소프트웨어와의 통합 정도가 높습니다. SQL Server 데이터베이스 엔진은 관계형 데이터 및 구조화된 데이터에 대한 보다 안전하고 안정적인 저장소 기능을 제공하므로 사용자는 가용성이 높은 고성능 비즈니스용 데이터 응용 프로그램을 구축하고 관리할 수 있습니다.

PDO를 사용하여 Microsoft SQL Server 데이터베이스에 연결하는 방법 PDO를 사용하여 Microsoft SQL Server 데이터베이스에 연결하는 방법 Jul 29, 2023 pm 01:49 PM

PDO를 사용하여 Microsoft SQL Server 데이터베이스에 연결하는 방법 소개: PDO(PHPDataObjects)는 PHP에서 제공하는 데이터베이스에 액세스하기 위한 통합 인터페이스입니다. 이는 데이터베이스의 추상화 계층을 구현하고 많은 양의 코드를 수정하지 않고도 다양한 데이터베이스 유형 간에 쉽게 전환할 수 있도록 하는 등 많은 이점을 제공합니다. 이 기사에서는 PDO를 사용하여 Microsoft SQL Server 데이터베이스에 연결하는 방법을 소개하고 관련 코드 예제를 제공합니다. 단계

PHP 및 SQL Server 데이터베이스 개발 PHP 및 SQL Server 데이터베이스 개발 Jun 20, 2023 pm 10:38 PM

인터넷의 대중화로 인해 웹사이트와 애플리케이션 개발은 많은 기업과 개인의 주요 사업이 되었습니다. PHP와 SQLServer 데이터베이스는 매우 중요한 두 가지 도구입니다. PHP는 동적 웹 사이트를 개발하는 데 사용할 수 있는 서버측 스크립팅 언어입니다. SQL Server는 Microsoft에서 개발한 관계형 데이터베이스 관리 시스템으로 광범위한 응용 프로그램 시나리오를 갖추고 있습니다. 이번 글에서는 PHP와 SQL Server의 개발 과정과 장점, 단점, 적용 방법에 대해 알아보겠습니다. 먼저,

SQL Server를 PHP와 연결하는 5가지 방법에 대한 간략한 분석 SQL Server를 PHP와 연결하는 5가지 방법에 대한 간략한 분석 Mar 21, 2023 pm 04:32 PM

웹 개발에서는 PHP와 MySQL의 조합이 매우 일반적입니다. 그러나 어떤 경우에는 SQL Server와 같은 다른 유형의 데이터베이스에 연결해야 합니다. 이 기사에서는 PHP를 사용하여 SQL Server에 연결하는 다섯 가지 방법을 다룹니다.

SQL 서버 또는 MySQL? 새로운 연구에 따르면 최고의 데이터베이스 선택이 밝혀졌습니다. SQL 서버 또는 MySQL? 새로운 연구에 따르면 최고의 데이터베이스 선택이 밝혀졌습니다. Sep 08, 2023 pm 04:34 PM

SQLServer 또는 MySQL? 최근 연구는 최고의 데이터베이스 선택을 보여줍니다. 최근 인터넷과 빅데이터의 급속한 발전으로 인해 데이터베이스 선택은 기업과 개발자가 직면한 중요한 문제가 되었습니다. 많은 데이터베이스 중에서 가장 일반적이고 널리 사용되는 관계형 데이터베이스인 SQL Server와 MySQL은 논란의 여지가 많습니다. 그렇다면 SQLServer와 MySQL 중에서 어느 것을 선택해야 할까요? 최신 연구는 우리에게 이 문제를 밝혀줍니다. 먼저

SQL Server와 MySQL: 고가용성 아키텍처에 더 적합한 데이터베이스는 무엇입니까? SQL Server와 MySQL: 고가용성 아키텍처에 더 적합한 데이터베이스는 무엇입니까? Sep 10, 2023 pm 01:39 PM

SQL Server와 MySQL: 고가용성 아키텍처에 더 적합한 데이터베이스는 무엇입니까? 오늘날의 데이터 중심 세계에서 고가용성은 신뢰할 수 있고 안정적인 시스템을 구축하기 위한 필수 요소 중 하나입니다. 데이터 저장 및 관리의 핵심 구성 요소인 데이터베이스의 고가용성은 기업의 비즈니스 운영에 매우 중요합니다. 많은 데이터베이스 중에서 SQLServer와 MySQL이 일반적인 선택입니다. 그렇다면 고가용성 아키텍처 측면에서 어떤 데이터베이스가 더 적합할까요? 이 기사에서는 두 가지를 비교하고 몇 가지 제안을 제공합니다.

SQL Server와 MySQL 비교: 대규모 데이터 처리에 어느 것이 더 좋나요? SQL Server와 MySQL 비교: 대규모 데이터 처리에 어느 것이 더 좋나요? Sep 09, 2023 am 09:36 AM

SQLServer와 MySQL은 현재 매우 널리 사용되는 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 둘 다 대규모 데이터를 저장하고 관리하기 위한 강력한 도구입니다. 그러나 대규모 데이터를 처리하는 데에는 몇 가지 차이점이 있습니다. 이 기사에서는 대규모 데이터 처리에 대한 적합성에 중점을 두고 SQL Server와 MySQL을 비교합니다. 먼저 SQLServer와 MySQL의 기본 특성을 이해해 보겠습니다. SQLServer는 Microsoft에서 개발했습니다.

SQL Server와 MySQL이 경쟁합니다. 최고의 데이터베이스 솔루션을 선택하는 방법은 무엇입니까? SQL Server와 MySQL이 경쟁합니다. 최고의 데이터베이스 솔루션을 선택하는 방법은 무엇입니까? Sep 10, 2023 am 08:07 AM

인터넷의 지속적인 발전으로 인해 데이터베이스 선택이 점점 더 중요해지고 있습니다. 많은 데이터베이스 중에서 SQLServer와 MySQL은 두 가지 주요 옵션입니다. SQLServer는 Microsoft에서 개발한 관계형 데이터베이스 관리 시스템이고, MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 그렇다면 SQLServer와 MySQL 중에서 가장 적합한 데이터베이스 솔루션을 선택하는 방법은 무엇일까요? 첫째, 성능 측면에서 이 두 데이터베이스를 비교할 수 있습니다. SQLServer가 처리 중입니다.

See all articles