2013 m. vasario 16 d., šeštadienis

Query hints


<  query_hint   > : : = 
{ { HASH | ORDER } GROUP 
  | { CONCAT | HASH | MERGE } UNION 
  | { LOOP | MERGE | HASH } JOIN 
  | EXPAND VIEWS 
  | FAST number_rows 
  | FORCE ORDER 
  | IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX
  | KEEP PLAN 
  | KEEPFIXED PLAN
  | MAXDOP number_of_processors 
  | MAXRECURSION number 
  | OPTIMIZE FOR ( @variable_name { UNKNOWN | = literal_constant } [ , ...n ] )
  | OPTIMIZE FOR UNKNOWN
  | PARAMETERIZATION { SIMPLE | FORCED }
  | RECOMPILE
  | ROBUST PLAN 
  | USE PLAN N'xml_plan'
  | TABLE HINT ( exposed_object_name [ ,  [ [, ]...n ] ] )
}

OPTIMIZE FOR - nurodo optimizuoti užklausos vykdymą, kai nurodoma konkreti reikšmė

OPTIMIZE FOR UNKNOWN - optimizuoja užklausas naudojantis statistika

KEEP PLAN - užtikrina, kad užklausa nebus perkompiliuojama taip dažnai, kaip dažnai vykdomi lentelės atnaujinimai: UPDATE, DELETE, MERGE, INSERT.

KEEPFIXED PLAN -užtikrina, kad užklausa bus perkompiliuota, jeigu pasikeis lentelės schema arba bus vykdoma sp_recompile.

PARAMETERIZATION { SIMPLE | FORCED } - veikia vykdymo planą, bet ne pačią užklausą.

 FAST number_rows - užklausa optimizuojama greitai grinti pirmuosius rezulatus. Kai grąžinami pirmieji rezultatai, užklausa vykdoma, kol bus grąžinti visi likę rezultatai.

MAXDOP number - optimalus paralelizmo lygis.

HASH GROUP - query hint specifies that aggregations described in the GROUP BY, DISTINCT, or COMPUTE clause of the query should use hashing.

ROBUST PLAN  vykdo planą maksimaliam potencialių eilučių dydžiui (? forces the query optimizer to try a plan that works for the maximum potential row size).

Komentarų nėra:

Rašyti komentarą