일부 C# 코드를 사용했습니다.C# : DbType.String 대 DbType.AnsiString
코드가 매개 변수를 사용하는 일부 SQL
으로 데이터베이스에 도달했습니다.
모든 문자열 매개 변수는 DbType.String
대신 DbType.AnsiString
으로 입력됩니다.
왜 DbType.String
대신 DbType.AnsiString
을 사용하겠습니까?
일부 C# 코드를 사용했습니다.C# : DbType.String 대 DbType.AnsiString
코드가 매개 변수를 사용하는 일부 SQL
으로 데이터베이스에 도달했습니다.
모든 문자열 매개 변수는 DbType.String
대신 DbType.AnsiString
으로 입력됩니다.
왜 DbType.String
대신 DbType.AnsiString
을 사용하겠습니까?
AnsiString
1에서 8,000 자 사이의 비 유니 코드 문자의 가변 길이 스트림.
문자열
유니 코드 문자열을 나타내는 유형입니다. 데이터베이스에서
:
NCHAR 및 NVARCHAR은 유니 코드를
숯불과 VARCHAR 당신은 당신의 SQL Server 데이터베이스에 암시 적 변환을 피하기 위해 대신 문자열을 AnsiString을 사용 비 유니 코드
입니다.
즉 문자열 변수를 MSSQL에 전달하면 nvarchar (max)로 표시됩니다. 사실 잘 설계된 데이터베이스는 기본적으로 nvarchars가 아닌 varchars를 사용할 수 있습니다 (비 라틴 문자 세트에 대한 비즈니스 요구 사항이없는 경우).
이 경우 문자열 변수는 데이터베이스에서 암시 적 변환을 유발합니다. 그러면 엔진이 특정 인덱스를 사용하지 못하게하고 전체 테이블 스캔을 수행 할 수 있습니다 (데이터베이스 성능에 대한 모든 악의 뿌리 중 하나)
+1. 왜 아무도 그것의 AnsiString을 사용합니까 데이터베이스에서 ansi 비 유니 코드 문자열입니까? 논리로 나를 풀어. – TomTom
'DbType.AnsiString'은'DbType.String'의 하위 집합입니까? –
이 문맥에서 '유니 코드'문자는 무엇입니까? –