Primenjuje se na
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Simptomi

Pretpostavimo da pokrenete upit koji uključuje spoj ili agregaciju u koloni koja je pokrivena i jednom kolonom i više kolona statistiku (u kojoj ova kolona nije vodeća kolona). Ako koristite default Cardinality Estimator (CE) in SQL Server 2016, it may underestimate number različitih redova. To dovodi do pod-optimalnog plana izvršavanja upita (na primer: niska procena može dovesti do nedostatka memorijske granta za operatora hasha, što dovodi do prosipanja upita u tempdb).

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Rešenje

Ovaj problem je rešen u sledećoj kumulativnoj ispravci za SQL Server:

Napomena Da bi ova ispravka stupila na snagu, morate da omogućite hitne ispravke za Query Optimizer pomoću zastavice za praćenje (TF) 4199 ili odgovarajuće opcije za konfigurisanje opsega baze podataka ili podsetnika za upite.

Kumulativne ispravke za SQL Server:

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:

Rešenje

Ovaj problem se može otkloniti dodavanjem sledećeg podsetnika za upit:

Koristite HINT('FORCE_LEGACY_CARDINALITY_ESTIMATION')

Reference

Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ispravki.

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.