nvarchar가 멀티바이트 문자를 지원한다는 것뿐인가요? 그렇다면 저장 공간 문제 외에
varchar`를 사용해야 할 이유가 있을까요?
모든 유니코드 데이터를 저장할 수 있는 '열' 노바르처. 'A' 를 열 제한되는지 varchar 8 비트 코드 페이지. '한다고 생각하는 사람도 있으므로 사용할 수 있는' varchar 공간을 적게 차지합니다. I believe 정답이 아닙니다. 코드 페이지 린콤파타빌레티스 통증 및 유니코드 코드 페이지 치료제를 는 문제가 있다. 요즘은 정말 값싼 디스크 및 메모리 함께 있는 시간을 낭비하지 빈둥거리지 수립하였습니다 코드 페이지 더 이상 할 필요는 없다.
현대 운영 체제 및 개발 플랫폼을 사용하여 모든 유니코드 내부적으로. '보다는' 하고 ',' 노바르처 사용하여 varchar 인코딩입니다 변환에는 읽거나 쓸 때마다 데이터베이스입니까 방지할 수 있습니다. 시간이 걸릴 수 있으며, 변환에는 가능성 높음. 전환 및 복구 작업을 오류뿐만 는 아닌 사소한 문제가 아니다.
Ascii 와의 상호 작용, 난 여전히 경우 만 사용하는 응용 프로그램을 사용하여 데이터베이스에 추천합니까 유니코드. Os 및 데이터베이스 collation 알고리즘을 사용할 수 있는 더 나은 유니코드. 다른 유니코드 변환 문제 때 상호 작용하지 방지 시스템. 진실이며당신이 앞날을 준비하는 것입니다. 항상 확인해야 할 수 있어 기존 시스템을 위한 데이터 제한되는지 7 비트 ASCII 있는모든 you& # 39, 즐기면서 하고, 심지어 몇 가지 이점을 유니코드 스토리지 전체 유지할 필요가 없습니다.
난 항상 노바르처 사용할 수 있기 때문에, 내가 던질 수 있는 거의 모든 데이터 있는모든 I& # 39 m 구축되므로 http://support. 거잖나. 왜냐하면 내가 우연히 중국 내 CMS 시스템에 사용되는 노바르처 않습니다. 요즘 새로운 애플리케이션으로의 shouldn& # 39, t really 관련된 수 있는 공간이 필요합니다.
어떻게 Oracle 은 의존하기 설치되었음. 이 옵션을 설치 과정 중에 NLS_CHARACTERSET 설정되었습니다. It 의 가치를 찾을 수 있습니다 '에서 $ 를 $ name = & # 39, 여기서 쿼리하지 시s.프로프스 NLS_CHARACTERSET& # 39,'.
Nls_characterset 는 유니코드 인코딩 같은 경우 UTF8, 멋지구리해요. 거의 모두 사용하여 VARCHAR 및 노바르처 동일해집니다. 정지점을 판독값 하악 나아갔습니다. 그렇지 않으면 제어할 수 없는 경우 또는 Oracle 글자셋, 계속 읽어보시기 바랍니다.
저장된 데이터가 varchar NLS_CHARACTERSET 인코딩입니다. 다른 데이터베이스 인스턴스들도 같은 서버의 경우, 당신은 그들을 의해 제한될 수 있습니다. 이후 공유할 수 있습니다, 또는 그 반대로 설정값입니다. 필드 등 모든 데이터를 저장할 수 있으며, 이를 이용하여 인코딩할 수 있는 글자셋 아무것도 . 그래서 1252년 는 다음과 같은 문자를 저장할 수 있지만, 예를 들어, 글자셋 ms 영어 문자, 소수의 강세 문자, 다른 몇 명과 (€) 와 같은 -). 단지 몇 로켈로 응용 프로그램이 유용할 것 ", 세계 다른 지역에서는 작동할 수 없습니다. 따라서 이 고려되는지 나쁜 발상이다.
노바르처 데이터가 저장되는 유니코드 인코딩입니다. 모든 언어를 사용할 수 있습니다. 좋은 아이디어.
저장 공간이 어때? 때문에 일반적으로 효율형 글자셋 / 인코딩입니다 맞춤형 sanlight varchar 특정 로케일입니다. 또는 UTF-16 인코딩을 UTF-8 으로 노바르처 필드를 저장할 수 있는 기본 NLS 설정을 할 수 있는가. UTF-8 은 매우 효율적인 위한 Western" "; 언어를 동시에 지원하는 등 아시아 언어. UTF-16 매우 효율적인 아시아어용 유지하면서 관련 " Western"; 언어. 만약 설정 저장 공간, Oracle 을 일으킬 수 있는 것으로 우려하고 UTF-8 또는 UTF-16 적절히 사용하는 NLS 선택.
처리 속도를 어때? 유니코드 기본적으로 사용하는 대부분의 새로운 코딩 플랫폼 (Java, C++ .NET 에서, 심지어 표준용량 웨스트링 년전인데다!) 만일 이 모든 문자 집합 사이의 변환할지 oralce docname VARCHAR 데이터베이스입니까 필드는 읽기, 쓰기, 별로요. 미리 노바르처 사용하여 변환.
결론: 사용 노바르처! 방지한다 제한 및 종속물, 공간, 일반적으로 최고의 성능을 위해 너무 스토리지용으로 정상입니다.
제 2 센트
올바른 datatypes:< br>, 사용하지 않을 때에는 indexe 실패할 수 있습니다. 빨리 있는 SQL&; 서버: 이를 통해 인덱스화할 있을 때, 빨리, 서버, 유니코드 문자열을 VARCHAR 열과 χ02 SQL& 언약보다는 활용할 색인입니다. 이 때 같은 일이 발생할 수 있는 BigInt 인덱스된 열 스몰린트. 있다 해도 될 정도로 작은 BigInt 스몰린트 사용할 수 없습니다, nbsp, 서버, SQL& 색인입니다. 이 문제를 중심으로 다른 방법이 없는 경우 (또는 ansi 코드 스몰린트 제공할 때 충족되었으며 인덱스된 bigint ot 노바르처 열).
모든 데이터베이스 약간 다른 데이터 형식 및 VARCHAR 같은 의미 없는 모든 것을 알고 있다. 아파치 더비 () 는 데이터베이스 서버 및 노바르처,, 동시에 사용할 수 있을 만큼 SQL& VARCHAR VARCHAR () 는 유니코드 VARCHAR 없고 / 사용할 수 있습니다.
" Unicodes"; 16 비트 문자 인코딩 구성표가 의 등장 등 수 많은 다른 언어로 고말은 아랍어, 히브리어, 중국어, 일본어, 스크램블된 인코딩되지 단일 글자셋.
즉, 당 2 바이트 문자를 사용하고 유니코드 누누니고데스 저장소에만 하나만 사용하여 바이트 문자 단위 저장하였습니다. 즉 유니코드 비사양 유니코드 비해 용량 저장하였습니다 연산뿐 합니다.
I would say, 경우에 따라 다릅니다.
데스크톱 응용 프로그램을 개발할 경우 OS 에서 사용할 수 있는 유니코드 (현재의 모든 Windows 시스템 등) 및 언어 높여줍니까 기본적으로 지원하는 유니코드 (Unicode, 또는 C #, Java 로 같은 기본 문자열은) 한 후, gnu. 노바르처.
Utf-8 로 들어올 경우 웹 애플리케이션으로 문장열 개발 및 언어는 기본적으로 (버전 5.x) 한 후, PHP, 이는 여전히 유니코드를 지원하지 않는 varchar 될 가능성이 더 나은 선택을.
비록 ',' 는 유니코드 노바르처 의해 도움을 받아 VARCHAR '와' 도 좋습니다 collation 먹이좀 데이터의 현지 언어를 사용할 수 있습니다.
다음과 같은 상황을 상상해 보라.
& # 39 와 같은 값을 저장할 수 있는 데이터베이스 (db) 는 페르시아 collation علی& # 39;; (페르시아 먹어서나 알리) 의 VARCHAR (10) '' 데이터 형식. Dbms 및 3 만 /dev/raw/raw1 바이트입니다 저장하였습니다 문제가 없을 것입니다.
그러나 다른 데이터베이스 사용자의 데이터를 전송하려는 경우 정확한 결과를 보고 대상 데이터베이스를다시 대상으로 원하는거요 페르시아 예제에서와 collation 같아야 합니다.
일부 물음표 (?) 가 다른 경우 collation 공략하십시오 볼 수 있습니다. 대상 데이터베이스의.
마지막으로, 현지 언어로 사용할 수 있는 거대한 데이터베이스를 사용할 경우 주지하십시오 캐비닛용입니다 추천합니까 위치, 난 너무 많은 공간을 사용하는 대신 사용할 수 있습니다.
I believe 설계 다를 수 있습니다. 작업한 it 환경에 따라 다릅니다.
내가 가진 것이 많은 것 같다 '' 에 대해 답을 얻고 노바르처 varchar ',' 를 통해 사용할 수 있는 공간이 좁아 문제가 아니라, 그래서 더 이상 할 수 있는 저장 공간을 위한 유니코드 거의 없다. 물론, 이것은 꼭 그렇지 않은 경우가 적용할 때 색인 대한 얻어맞았다. SQL Server 는 900 제한값 크기에 따라 바이트입니다 필드의 인덱스화할 수 있습니다. 그래서 '있으면 varchar (900)' 이 아닌 varchar (901) ',' 인덱스화할 수는 있습니다. ',' 는 문자 수에 반감을 가진 노바르처 인덱스화할 수 있도록 최대 '노바르처 (450gb)'. 그래서 내가 ',' 너 자신이 경우, t, t need don& # 39 노바르처 don& # 39 이 사용하는 것이 좋습니다.
일반적으로, 크기, 내가 필요한 데이터베이스 (db) 에 얽매이지 추천합니까 수 있기 때문에 항상 확장하십시오. 예를 들어, 한 번 사용할 수 있는 직장 동료에게 피해를 줄 수 없다 ' (최대)' 에 대해 아무런 문제가 아니라 우리가 열을 노바르처 스토리지 전혀. 나중에 시도했을 때 적용하는 지수가 이 열, SQL Server 거절됨 이. 그러나 그는 심지어 varchar (5) ',' 시작하는 우리는 우리가 할 필요 없이 간단히 확장됨 나중에 이런 문제는 현장 마이그레이션과 이 문제를 해결하기 위해 우리가 할 계획이 필요합니다.
싱글바이트 사용할 경우 256 가지 가능한 조합 및 그에 따라 저장하였습니다 문자를 다른 문자로 256 저장할 수 있습니다. Collation 은 패턴 문자 및 규칙을 정의하는 것을 통해 비교할지 및 정렬할지.
즉, Latin1 (ANSI), 1252년) 가 가장 흔하다. 또한 많은 언어로 사용하는 모든 문자를 저장하였습니다 싱글바이트 문자 집합이 됩니다. 예를 들어, 일부 아시아 언어 수천 개의 문자를 도왔으매 그들은 2 바이트 문자 단위 사용해야 합니다.
시스템을 사용하여 때 사용되는 통신 네트워크 관리, 여러 코드 페이지 어려워집니다. , 유니코드 컨소시엄이 ISO 와 유니코드 셨으며 표준화를 위해 도입했다. 각 문자는 유니코드 는 두 가지 바이트입니다 저장하였습니다. 즉 65,536 거의 모든 유니코드 문자를 다른 문자로 덮여 있어 수 있습니다) 을 정의할 수 있습니다. 두 대의 컴퓨터를 사용할 경우, 같은 방식으로 나타낼 것인지 모든 유니코드 기호 및 변환 없이 요구되는가 - 이것은 유니코드 뒤에 나왔다.
SQL Server 는 두 가지 범주의 문자 데이터 형식:
여러 국가의 경우, 항상 flfile. 유니코드 문자 데이터 저장 필요하다.
주요 차이점은 'Varchar (n)' 와 '노바르처 (n)' 입니다. ! [입력하십시오. 이미지 여기에 설명을] [1]
'Varchar' (가변 길이 아닌 문자 데이터) 크기는 upto 8000. 1.It 은 가변 길이 데이터 유형
아닌 문자 저장하는 데 사용됩니다.
각 문자에 대한 바이트 공간을 차지하는 1
'' 가변 길이 노바르처 유니코드 문자 데이터.
1.It 는 다양한 크기의 데이터 유형
유니코드 문자를 저장하였습니다 2.used.
따라와야지 차이를 노바르처 데이터 유형 및 Sql Server VARCHAR . 여기 아주 설명식 볼 수 있을 것입니다.
여기서 내가 말하지 않을 수 없다 (I 깨닫게 하는 것, 아마 나를 I& # 39 m, 최대 연 메모 대신!) ',' 실제로 노바르처 실로 유일한 시간을 더 유용한 (더 많은 것을 잡깐!) 때 아닌 '의 VARCHAR' 는 모든 종속 시스템 및 데이터베이스 내의 모든 정렬 것 같습니다. " 어쨌든 그래서 어졌다면 않을 경우 발생할 수 있다 '는' VARCHAR collation 변환이 가능한 것처럼 '노바르처'.
이 때문에 일각에서는 추가할 데이터베이스 시스템 (예: [sql server (2012년 이전)] (http://support.microsoft.com/kb/2663912) 에는 페이지 크기 약 8k. 따라서 검색 가능한 데이터를 저장하는 것은 you& # 39, re 바라보는 열린 'TEXT' 또는 '현장' 는 '다음' VARCHAR 같은 일이 나이스트 8k& # 39 에 달하는 반면 '전체' 노바르처 공간을 제공할 뿐 4k (두 배 바이트입니다 공간을 두 배로).
예를 들어, 내가 사용은 종속적임 인컨텍스트 요약하다 수 있다.
제프리 L 화이틀리지 47000 살충제요 노바르처 사용을 권장 명성을 함께 ~
솔로몬 루츠키 명성을 통해 ~ 33200 살충제요 권고는 다음과 같다. 항상 flfile. 노바르처 마십시오. 즉, 종종 매우 위험한 비용이 많이 드는, 태도 / 외곽진입.
https://www.sqlservercentral.com/articles/disk-is-cheap-orly-4
두 명의 같은 높은 평판을 어떻게 수행합니까 com/go/learn_fl_cs4_learningas2_kr sql server 데이터베이스 개발자 선택해야 할까요?
에 대한 답을 얻고 있는 여러 가지 개의경고 성능 문제를 일관성이 없는 경우 선택값.
콘 노바르처 좁히어 주석입니다 pro/무선 성능.
좁히어 주석입니다 pro/무선 콘 varchar 성능.
특정 요구, 즉 열이 나는 아마도 수백 표 많이 있는 것 자체가 특이한?
이를 둘러싸고 노바르처, 사용, 나를 위해 댁이라면 8060 바이트입니다 제한값.
내가 사용하는 것으로, 이 때, 사우스 오스트레일리아 정부가 이전 직장에서 varchar 열에 의해 숙련된 데이터베이스 개발자가 될 수 있는 테이블의 행 수는 몇 백만 이상의 (열) 이런 경우 몇 노바르처, 아주 아주 큰 표), 그래서 아마도 필요한 데이터를 행일 볼륨입니다 일부가 이 결정을 내렸다.
'안전' 이 (가) 에 비해 사용하기 위해 노바르처 varchar (유형 불일치) '' 코드 '를 사용하면 오류가 없는' 노바르처 유니코드 문자를 때문에 밝힐 수 있다. 여기서 우리가 사용하는 '때' 조건 '=' 운영자, 그렇지 않을 경우 우리는 쿼리하고 SQL Server 에서 사용하는 것을 오류 일부 인용했다. 이것이 가능한 이유는 '우리' 의 varchar 디프린드 구성도를 열 것입니다. 이 문제는 발생하지 않을 경우 이를 '' 내 노바르처 정의했습니다. 우리는 이 문제를 피할 수 '와' 스틱 '우리는 여전히 varchar 같은' = '보다는' 잘 활용하여 키워드다.