So sánh SQL collations cho Windows collations

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 322112 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Trong Microsoft SQL Server 2000 và trong Microsoft SQL Server 2005, m?t "collation" xác đ?nh cách th?c chu?i so sánh và đư?c s?p x?p, và nh?ng g? k? t? thi?t l?p đư?c s? d?ng cho d? li?u không dùng Unicode. SQL Server 2000 ho? trôï hai collations:
  • SQL collations
  • Windows collations
Cho m?t mô t? c?a t?ng lo?i collation và m?t t?t T?ng quan v? làm th? nào đ? quy?t đ?nh collation đ? s? d?ng, xem các ch? đ? "Ch?n Collations" trong SQL Server 2000 cu?n sách tr?c tuy?n, ho?c xem ch? đ? "Collation lo?i" trong SQL Server 2005 sách tr?c tuy?n.

Bài vi?t này th?o lu?n v? cân nh?c b? sung mà có th? ?nh hư?ng đ?n c?a b?n quy?t đ?nh v? vi?c li?u đ? ch?n m?t collation Windows ho?c m?t SQL collation khi b?n cài đ?t SQL Server 2000 ho?c SQL Server 2005.

THÔNG TIN THÊM

Collation ng? ngh?a

Đ?i v?i m?t Windows collation, m?t so sánh d? li?u không dùng Unicode là th?c hi?n b?ng cách s? d?ng các thu?t toán tương t? như Unicode d? li?u. C? hai Unicode và không dùng Unicode phân lo?i là tương thích v?i chu?i so sánh quy đ?nh đ?c bi?t m?t Phiên b?n c?a Windows. Đi?u này cung c?p nh?t quán trên các ki?u d? li?u trong SQL Server. Nó c?ng cho phép các nhà phát tri?n nh?ng ngư?i s? d?ng các CompareString Win32 API ch?c năng đ? s?p x?p chu?i trong các ?ng d?ng b?ng cách s? d?ng các cùng m?t quy t?c s? d?ng SQL Server.

Trong m?t collation SQL, SQL Server đ?nh ngh?a ng? ngh?a khác nhau so sánh d? li?u không dùng Unicode. Các căn c? c?a SQL Server nh?ng ng? ngh?a so sánh trên m?t SQL "phân lo?i đ?t hàng." Đ?i v?i m?t b?n đ? c?a đơn đ?t hàng lo?i đ? SQL collations, xem ch? đ? "SQL Collation tên" trong SQL Server Books Tr?c tuy?n.

Quy t?c này m?t collation SQL đ? phân lo?i d? li?u không dùng Unicode không tương thích v?i b?t k? thói quen lo?i đư?c cung c?p b?i Microsoft Windows h? đi?u hành; Tuy nhiên, phân lo?i d? li?u Unicode là tương thích v?i m?t Phiên b?n đ?c bi?t c?a các c?a s? phân lo?i quy t?c. B?i v? các quy t?c so sánh Đ?i v?i phi-Unicode và Unicode d? li?u là khác nhau, khi b?n s? d?ng m?t collation SQL b?n có th? nh?n th?y k?t qu? khác nhau đ? so sánh nh?ng nhân v?t tương t?, tùy thu?c vào ki?u d? li?u n?m bên dư?i. Ví d?, n?u b?n đang s? d?ng SQL collation "SQL_Latin1_General_CP1_CI_AS", Phi-Unicode chu?i 'a-c' là ít hơn hơn chu?i 'ab' b?i v? g?ch n?i ("-") đư?c s?p x?p theo m?t nhân v?t riêng bi?t mà đ?n trư?c khi "b". Tuy nhiên, n?u b?n chuy?n đ?i các dây Unicode và b?n th?c hi?n các so sánh tương t?, chu?i Unicode N'a-c' đư?c coi là l?n hơn N'ab' v? Unicode phân lo?i quy đ?nh s? d?ng m?t lo?i t?"" mà b? qua d?u n?i.

Chu?i so sánh hi?u su?t

Unicode phân lo?i quy t?c là ph?c t?p hơn so v?i các quy t?c cho m?t Th? t? s?p x?p Phi - Unicode SQL. Khi SQL Server so sánh d? li?u Unicode, các k? t? đư?c ch? đ?nh m?t tr?ng lư?ng t? đ?ng thay đ?i d?a trên các collation c?a mi?n đ?a phương. D? li?u c?ng l?n b?ng cách so sánh cài đ?t ki?u như v?y như chi?u r?ng, gi?ng hay Kana nh?y c?m. Thói quen s?p x?p Unicode h? tr? hơn s?p x?p thông minh hành vi như t? phân lo?i.

Ngoài ra, b?i v? các thói quen ph?i x? l? d? li?u Unicode, h? là linh ho?t, đ? đ? x? l? các phân lo?i và so sánh c?a m?t vài ngh?n nhân v?t khác bi?t, thay v? c?a t?i đa 255 k? t? mà nh?t SQL Server lo?i đơn đ?t hàng có th? x? l?. V? nh?ng l? do, nguyên chu?i so sánh công vi?c s? d?ng Unicode phân lo?i quy t?c là thư?ng đ?t hơn trong đi?u ki?n th?i gian và CPU chu k? hơn m?t so sánh tương t? chu?i có s? d?ng m?t Th? t? s?p x?p Phi - Unicode SQL.

Đi?u này có ngh?a cho là có th? t? h?p các lo?i d? li?u và collation lo?i trong SQL Server:
  • N?u b?n đang lưu tr? và x? l? d? li?u c?a b?n b?ng cách s? d?ng các lo?i d? li?u không dùng Unicode)Char, varchar, văn b?n), và b?n đang s? d?ng m?t collation SQL, so sánh chu?i s? th?c hi?n v?i m?t th? t? s?p x?p Phi - Unicode SQL.
  • N?u b?n đang lưu tr? và x? l? d? li?u c?a b?n b?ng cách s? d?ng các lo?i d? li?u không dùng Unicode)Char, varchar, văn b?n), và b?n đang s? d?ng m?t Windows collation, so sánh chu?i s? đư?c th?c hi?n v?i Unicode phân lo?i quy t?c. Đi?u này có th? gây ra m?t s? ho?t đ?ng kinh doanh đó là b?t thư?ng ph? thu?c vào chu?i phân lo?i hi?u su?t đ? kéo dài lâu hơn và s? d?ng CPU nhi?u hơn m?t ho?t đ?ng tương t? đư?c th?c hi?n v?i m?t SQL collation.
  • N?u b?n đang s? d?ng Unicode d? li?u các lo?i)NCHAR, nvarchar, ntext), không có s? khác bi?t trong hành vi phân lo?i cho SQL và Windows collations. C? hai s? s? d?ng Unicode phân lo?i quy t?c.
Nói chung, m?c đ? c?a s? khác bi?t hi?u su?t gi?a các Windows và SQL collations s? không đáng k?. S? khác bi?t ch? xu?t hi?n n?u m?t kh?i lư?ng công vi?c là b? ràng bu?c CPU, ch? không ph?i b? h?n ch? b?i I/O ho?c b?i t?c đ? m?ng, và h?u h?t trong s? này CPU gánh n?ng gây ra b?i các trên cao c?a thao tác chu?i ho?c so sánh th?c hi?n trong SQL Server. M?t Ví d? v? m?t ?ng d?ng, nơi mà s? khác bi?t hi?u su?t có th? đư?c phát âm là m?t h? th?ng nơi mà m?t ?ng d?ng đi m?t giá tr? chu?i dài đ?n m?t máy ch? SQL th? t?c đư?c lưu tr?. Các th? t?c đư?c lưu tr? sau đó phân tích chu?i thông qua m? r?ng s? d?ng ch?c năng thao tác chu?i Transact-SQL như CHARINDEX ho?c PATINDEX. N?u kh?i lư?ng công vi?c khá one-dimensional và nó b? chi ph?i b?i x? t? c?a chu?i này phân tích cú pháp th? t?c đư?c lưu tr?, s? khác bi?t hi?u su?t gi?a m?t SQL collation và Windows collation có th? là đáng chú ?. Tuy nhiên, thi?t k? h?u h?t các ?ng d?ng không d?n đ?n m?t t?nh h?nh nơi hi?u su?t s? khác bi?t là đáng k?.

Khuy?n ngh?

  1. SQL collations đư?c cung c?p cho tương thích ngư?c v?i Phiên b?n trư?c c?a SQL Server. Windows collations cung c?p nh?t quán chu?i so sánh c? hai Unicode và cho văn b?n không dùng Unicode trong SQL Server đang c?ng phù h?p v?i chu?i so sánh trong h? đi?u hành Windows. Cho t?t c? nh?ng l? do này, Windows collations đư?c ưa thích tr? khi có r?t l?c h?u v?n đ? tương thích ho?c các v?n đ? hi?u su?t c? th? yêu c?u m?t SQL collation.
  2. N?u b?n đang xem xét m?t collation SQL d?a ch? trên các hi?u su?t đ?c tính c?a m?t collation SQL, nh?n ra r?ng các hi?u su?t c?a h?u h?t các ?ng d?ng không có l?i cho m?t cách đáng k? t? m?t s? thay đ?i trong collation. H?y ch?c ch?n r?ng b?n đ? cô l?p truy v?n hi?n th? m?t l?i ích t? SQL collation. Ngay sau khi b?n xác đ?nh các truy v?n b? ?nh hư?ng, xem xét các l?a ch?n thay th? sau đây đ? thay đ?i v? collation. C? hai c?a nh?ng l?a ch?n thay th? có th? cung c?p m?t hi?u su?t l?i ích l?n hơn nh?ng g? b?n s? th?y n?u b?n thay đ?i collation th?m đ? m?t collation SQL:
    1. N?u chi phí cho Windows collations ngu?n t? Thói quen SQL giao d?ch th?c hi?n thao tác chu?i r? ràng ho?c phân tích, và n?u b?n đang s? d?ng các lo?i d? li?u không dùng Unicode, b?n có th? ch? đ?nh m?t collation SQL ho?c m?t nh? phân Windows collation cho các ho?t đ?ng mà thư?ng xuyên b? hành quy?t và đó là đ?t nh?t. Gi? s? b?n s? d?ng ch?c năng PATINDEX đ? xác đ?nh li?u m?t văn b?n c?t trong m?t b?ng ch?a các k? t? "x". N?u b?n bu?c m?t collation SQL đ? mà so sánh đ?c bi?t ho?t đ?ng, và b?n ti?p t?c s? d?ng m?t c?a s? collation cho ph?n c?n l?i c?a cơ s? d? li?u và các ?ng d?ng, b?n không c?n ph?i thay đ?i collation cho toàn b? h? th?ng:
      SELECT PATINDEX ('%x%', MemoFld COLLATE SQL_Latin1_General_Cp1_CI_AS) FROM ...
    2. N?u chi phí cho Windows collations ngu?n t? thêm tr?n t?c truy v?n nào không s? d?ng chu?i ph?c t?p thao tác ch?c năng, c?i ti?n thi?t k? ch? s? ho?c truy v?n có th? cung c?p c?i ti?n mà lùn nh?ng ngư?i b?n s? th?y b?ng cách thay đ?i m?t collation SQL. M?t truy v?n có th? hài l?ng b?i t?m ki?m r?t ch?n l?c v? ch? s? thích h?p s? không đư?c nh?y c?m v?i ti?u nh?ng thay đ?i trong chu?i so sánh chi phí. Ngư?c l?i, m?t s? lư?ng nh? c?a chi phí cho m?i so sánh chu?i có th? thêm lên nhanh chóng trong m?t truy v?n ph?i th?c hi?n m?t b?ng quét và so sánh m?t giá tr? c? th? cho m?i hàng tri?u hàng. N?u b?n ngăn ch?n b?ng l?n ho?c ch? s? quét t? k? ho?ch truy v?n b?ng cách thay đ?i các ch? m?c ho?c các truy v?n riêng c?a m?nh, truy v?n c?a b?n s? th?c hi?n nhanh hơn nhi?u hơn nó n?u b?n thay đ?i đ? m?t collation SQL.
Chú ý Đó là m?t lo?i th? ba c?a collation là m?t bi?n th? c?a m?t SQL collation. Collation th? ba này đư?c g?i là m?t "kh? năng tương thích collation" ho?c m?t "chi?c collation." M?t kh? năng tương thích collation là m?t t?p h?p các phân lo?i và so sánh quy t?c mà không có m?t tên đư?c xác đ?nh trư?c collation trong SQL Server 2000. Ví d?, n?u b?n đ? thi?t l?p SQL Server 7.0 v?i m?t không phù h?p Case-sensitivity cài đ?t Unicode và d? li?u không dùng Unicode, b?n s? có m?t kh? năng tương thích collation khi b?n nâng c?p này th? hi?n c?a SQL Server 7.0 v?i SQL Server 2000. Trong các cu?c th?o lu?n trư?c đó trong bài vi?t này, các thông tin v? SQL collations c?ng áp d?ng cho kh? năng tương thích collations.

Đ? bi?t thêm thông tin v? kh? năng tương thích collations, nh?p vào s? bài vi?t sau đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
270042INF: Mô t? c?a SQL Server kh? năng tương thích collations

Thu?c tính

ID c?a bài: 322112 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
T? khóa: 
kbhowto kbinfo kbmt KB322112 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:322112

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com