Dotaz, který odkazuje nedeterministické funkce definované uživatelem může být pomalejší v SQL Server 2005 než SQL Server 2000

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

Příznaky

V Microsoft SQL Server 2005 dotaz, který odkazuje nedeterministické funkce definované uživatelem může být pomalejší než stejný dotaz spustí SQL Server 2000.

Poznámka: Vždy je zacházeno jako nedeterministické funkce definované uživatelem, který není vytvořen pomocí klauzule WITH SCHEMABINDING.

Příčina

Uživatelem definované funkce se někdy nazývá k projektu další sloupce ze základní tabulky. Pokud základní tabulky má žádné spojení nebo všechny filtry snížit počet řádků, které jsou vráceny, SQL Server 2005 odloží volání uživatelem definované funkce až po operace spojení nebo po operací filtru v plán provádění. Tento mechanismus snižuje počet uživatelem definovaná funkce se nazývá časy. Tento mechanismus tedy zvyšuje výkon.

Předpokládané sloupec však může být použit pro spojení. Nebo uživatelem definovaná funkce může být použit v filtru je více než ostatní predikáty výběrové. V těchto případech pro nedeterministické funkce definované uživatelem je lepší plán provedení volání uživatelem definované funkce před operace spojení nebo před operací filtru. Pro deterministický funkci definované uživatelem můžete SQL Server 2005 bezpečně odložit volání uživatelem definované funkce v plán provádění.

Řešení

Chcete-li tento problém vyřešit pomocí klauzule WITH SCHEMABINDING vytvořit uživatelem definované funkce.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

K určení, zda uživatelem definovaná funkce je nedeterministické uživatelem definované funkce, spustit následující dotaz.
SELECT OBJECTPROPERTY(object_id('<FunctionName>'), 'IsDeterministic') 
Pokud dotaz vrátí 0, uživatelem definovaná funkce je nedeterministické funkce definované uživatelem.

Vlastnosti

ID článku: 952217 - Poslední aktualizace: 8. května 2008 - Revize: 1.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
Klíčová slova: 
kbmt kbtshoot kbexpertiseadvanced kbsql2005engine kbprb KB952217 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:952217

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