Porovnání řazením SQL pro řazení systému Windows

Překlady článku Překlady článku
ID článku: 322112 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

V Microsoft SQL Server 2000 a 2005 Microsoft SQL Server "řazení" Určuje, jak jsou řetězce porovnání a seřazeny a jaký znak se používá sada dat kódování Unicode. SQL Server 2000 podporuje dva typy řazení:
  • Řazení SQL
  • Řazení systému Windows
Popis každého typu řazení a zboží přehled toho, jak se rozhodnout, které řazení použít, naleznete v tématu "Kolace výběru" v SQL Server 2000 Books Online nebo v tématu "Řazení typů" v SQL Server 2005 Books Online.

Tento článek pojednává o další informace, které mohou ovlivnit váš rozhodnutí, zda zvolit řazení systému Windows nebo řazení SQL při instalaci serveru SQL Server 2000 nebo SQL Server 2005.

Další informace

Sémantika řazení

Řazení systému Windows je porovnání data v kódování Unicode implementována pomocí stejného algoritmu jako data ve formátu Unicode. Obě kódování Unicode a řazení kódování Unicode jsou slučitelné s pravidly pro porovnání řetězce v určitém verze systému Windows. To poskytuje konzistence v rámci typů dat na serveru SQL Server. Také umožňuje vývojáři, kteří používají CompareString Funkce rozhraní API systému Win32 pomocí řazení řetězce v jejich aplikaci stejná pravidla, které používá SQL Server.

V řazení SQL, SQL Server definuje různých porovnání sémantiku pro data v kódování Unicode. Databází serveru SQL Server sémantika těchto porovnání na SQL "pořadí řazení." Pro mapování řazení s řazením SQL naleznete v tématu "Název řazení SQL" v knihy pro SQL Server Online.

Pravidla řazení SQL pro řazení dat kódování Unicode kompatibilní s jakékoli řazení rutiny, která je k dispozici v systému Microsoft Windows operační systém; řazení dat ve formátu Unicode je však kompatibilní s konkrétní verzi systému Windows, třídění pravidel. Protože pravidla pro porovnání kódování Unicode a Unicode dat liší, při použití řazení SQL může se zobrazit různé výsledky porovnávání stejné znaky, v závislosti na podkladová data. Například pokud používáte SQL řazení "SQL_Latin1_General_CP1_CI_AS", kódování Unicode řetězec "-c" je menší než řetězec 'ab' protože pomlčky ("-") je řazen jako samostatný znak které pochází před "b". Však převedete-li tyto řetězce Unicode a provést stejnou porovnání řetězce Unicode N'a-c "se považuje za větší než N'ab' protože řazení Unicode pravidla použít řazení"slovo", ignoruje pomlčka.

Řetězec porovnání výkonu

Řazení Unicode pravidla jsou mnohem složitější než pravidla pořadí řazení Unicode SQL. Když SQL Server porovná data v kódování Unicode, znaky jsou přiřazena váha, který dynamicky změnit na základě národní prostředí uživatele řazení. Data je také změněny oproti nastavení stylu takové Šířka, zvýraznění nebo Kana citlivosti. Rutiny řazení Unicode podporuje více řazení inteligentního chování jako řazení v aplikaci word.

Dále, protože rutin musí zpracovat data ve formátu Unicode jsou dostatečně pružná, zpracování, třídění a srovnání několika tisíců různých znaků namísto maximální 255 znaky, které nejvíce Pořadí řazení SQL Server může zpracovat. Z těchto důvodů porovnání řetězců raw práce, která používá pravidla řazení Unicode je obvykle dražší hlediska čas a cykly procesoru než porovnání řetězců podobná, používá pořadí řazení Unicode SQL.

Co to znamená pro případné kombinace datové typy a typy řazení na serveru SQL Server:
  • Pokud ukládání a zpracování dat pomocí typy dat kódování Unicode)znak (Char), varchar, text) a používáte řazení SQL, porovnávání řetězců provést řazení Unicode SQL.
  • Pokud ukládání a zpracování dat pomocí typy dat kódování Unicode)znak (Char), varchar, text), a pomocí řazení systému Windows, bude porovnávání řetězců provést pravidla řazení Unicode. To může způsobit určité operace které jsou neobvykle závislé na řetězec řazení výkonu trvat delší dobu a Další využití procesoru než podobné operace, která se provádí pomocí SQL řazení.
  • Pokud používáte (typy dat ve formátu Unicodenchar, nvarchar, ntext), není žádný rozdíl v chování řazení SQL a řazení systému Windows. Obě budou používat pravidla řazení Unicode.
Obecně stupeň rozdíl výkonu Windows a řazením SQL nebude významný. Pouze rozdíl se zobrazí v případě, že je pracovního vytížení procesoru vazbou, spíše než je ovlivněno I/O nebo rychlost sítě a většina tohoto procesoru je způsobena břemeno Režijní náklady na manipulaci s řetězci nebo porovnání se provádí na serveru SQL Server. Aplikace například aplikace, kde může být výraznější rozdíl ve výkonu je systém, kde aplikace předává dlouhý řetězec SQL Server uložené procedury. Uložená procedura pak analyzuje prostřednictvím rozsáhlé řetězce pomocí jazyka Transact-SQL řetězec manipulace s funkcí jako CHARINDEX nebo PATINDEX. Pokud je zatížení poměrně jednorozměrné a je ovládáno spuštění Tento řetězec analýze uložená procedura rozdíl ve výkonu mezi Řazení SQL a řazení systému Windows může být patrné. Však návrh Většina aplikací nesmí vést k situaci, kdy výkon je významný rozdíl.

Doporučení

  1. Řazením SQL jsou k dispozici pro zpětnou kompatibilitu s starší verze serveru SQL Server. Řazení systému Windows poskytují konzistentní řetězec porovnání obou Unicode a text v kódování Unicode na serveru SQL Server, které jsou také konzistentní s porovnávání řetězců v operačním systému Windows. Pro ze všech těchto důvodů řazení systému Windows jsou upřednostňovány nejsou-li zpětně potíže s kompatibilitou nebo výkonu určitých problémů, které vyžadují SQL řazení.
  2. Pokud uvažujete založené pouze na řazení SQL charakteristiky výkonu řazení SQL, uvědomit si, že výkon většiny aplikací není nijak podstatně těžit z důvodu změny v řazení. Ujistěte se, že problémovou dotazů, které ukazují výhody z řazení SQL. Jakmile identifikujete ovlivněné dotazy, zvažte Následující alternativy ke změně v řazení. Obě tyto alternativy může přinášet výkonu větší než co uvidíte Pokud změníte instanci řazení na řazení SQL:
    1. Pokud je sledovat zatížení řazení systému Windows, k Rutiny Transact-SQL provádějící manipulaci s explicitní řetězec nebo analýze, a pokud používáte typy dat kódování Unicode, můžete zadat řazení SQL nebo binárního souboru Řazení systému Windows pro operaci často provést a který je nejnákladnější. Předpokládejme, že použijete funkci PATINDEX k určení, zda text sloupce v tabulce obsahuje znak "x". Pokud jste řazení SQL že zejména srovnání a nadále používat Windows řazení pro zbytek databáze a aplikace, není nutné Změna řazení pro celý systém:
      SELECT PATINDEX ('%x%', MemoFld COLLATE SQL_Latin1_General_Cp1_CI_AS) FROM ...
    2. Pokud je sledovat zatížení řazení systému Windows, k více rutinní dotazů, které není složitý řetězec pomocí funkce manipulace s Zdokonalený vzhled indexu nebo dotaz může poskytovat vylepšení, které dwarf Chcete-li změnou řazení SQL uvidí. Dotaz, který může splnit. vysoce selektivní usiluje o vhodné indexy nebudou citlivé na vedlejší změny v porovnání řetězců nákladů. Naopak, režie na malé množství porovnání řetězců můžete přidat rychle v dotazu, který musí provést prohledání tabulky a porovnejte určitou hodnotu každé miliony řádků. Pokud zabráníte velké tabulky nebo indexu prohledává z plánu dotazu změnou indexování nebo dotaz sám, mnohem rychleji, než když změníte provede dotaz k řazení SQL.
Poznámka: Existuje třetí typ řazení, který je variantou SQL řazení. Tento třetí řazení je označován jako "řazení kompatibility" nebo "obsolescent řazení." Řazení kompatibility je sada řazení a porovnání pravidla, které nemají předdefinované řazení název serveru SQL Server 2000. Například pokud nastavíte SQL Server 7.0 s nekonzistentním rozdílného nastavení kódování Unicode a pro data v kódování Unicode, bude nutné Kompatibilita řazení při upgradu této instance serveru SQL Server 7.0 a SQL Server 2000. V diskusi výše v tomto článku, informace o Řazením SQL platí také pro řazení kompatibility.

Další informace o kompatibilitě řazení, klepněte na následující číslo článku databáze Microsoft Knowledge Base:
270042Souboru INF: Popis kolací serveru SQL Server kompatibilitu

Vlastnosti

ID článku: 322112 - Poslední aktualizace: 19. května 2011 - Revize: 10.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbhowto kbinfo kbmt KB322112 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:322112

Dejte nám zpětnou vazbu

 

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