Microsoft raspoređuje Microsoft SQL Server 2005 ili Microsoft SQL Server 2008 ili SQL 2008 R2 ispravke kao jednu datoteku za preuzimanje. Budući da su popravci kumulativni, svako novo izdanje sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim programom Microsoft SQL Server 2005 ili Microsoft SQL Server 2008 ili SQL 2008 R2 popravak izdanje

Simptomi

Pretpostavimo da pokrenete upit u instanci sustava Microsoft SQL Server 2005 ili Microsoft SQL Server 2008 ili Microsoft SQL Server 2008 R2 koji zadovoljava sljedeće uvjete:

  • Upit sadrži relacijski operator. Na primjer, operator manje od (<).

  • Postoji funkcija DateDiff u operidu relacijski operator.

U toj situaciji SQL Server može odabrati tarifu suboptimalno upita za pokretanje ovog upita. Stoga se upit može pokrenuti sporo.

Uzrok

Taj se problem pojavljuje zato što alat za optimizaciju sustava SQL Server podcjenjuje broj redaka koji će biti vraćeni kada koristite funkciju DateDiff .

Rješenje

Kumulativne informacije o ažuriranju

Servisni paket 3 za SQL Server 2005

Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 15 za SQL Server 2005 Service Pack 3. Dodatne informacije o tom zbirnim paketom za ažuriranje potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

2507766 Kumulativno ažuriranje paketa 15 za SQL Server 2005 Service Pack 3Napomena Budući da su grade kumulativne, svako novo izdanje ispravaka sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima sustava SQL Server 2005 Fix. Microsoft preporučuje da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

960598 Verzije sustava SQL Server 2005 koje su objavljene nakon objavljivanja sustava SQL Server 2005 Service Pack 3 Za određene servisne pakete sustava SQL Server stvaraju se hitni popravci sustava Microsoft SQL Server 2005. Za instalaciju sustava SQL Server 2005 Service Pack 3 morate primijeniti hitni popravak sustava SQL Server 2005 Service Pack 3. Svaki hitni popravak koji je naveden u servisnom paketu sustava SQL Server po zadanom je uključen u sljedeći servisni paket sustava SQL Server.

Servisni paket 4 za SQL Server 2005

Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 2 za SQL Server 2005 Service Pack 4. Dodatne informacije o tom zbirnim paketom za ažuriranje potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

2489409 Kumulativno ažuriranje paketa 2 za SQL Server 2005 Service Pack 4Napomena Budući da su grade kumulativne, svako novo izdanje ispravaka sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima sustava SQL Server 2005 Fix. Microsoft preporučuje da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

2485757 Verzije sustava SQL Server 2005 koje su objavljene nakon objavljivanja sustava SQL Server 2005 Service Pack 4 Za određene servisne pakete sustava SQL Server stvaraju se hitni popravci sustava Microsoft SQL Server 2005. Za instalaciju sustava SQL Server 2005 Service Pack 4 morate primijeniti hitni popravak sustava SQL Server 2005 Service Pack 4. Svaki hitni popravak koji je naveden u servisnom paketu sustava SQL Server po zadanom je uključen u sljedeći servisni paket sustava SQL Server.

Servisni paket 1 za SQL Server 2008

Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 13 za SQL Server 2008 Service Pack 1. Dodatne informacije o tom zbirnim paketom za ažuriranje potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

2497673 Kumulativno ažuriranje paketa 13 za SQL Server 2008 Service Pack 1Napomena Budući da su grade kumulativne, svako novo izdanje ispravaka sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima sustava SQL Server 2008 Fix. Microsoft preporučuje da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

970365 Verzije sustava SQL Server 2008 koje su objavljene nakon objavljivanja sustava SQL Server 2008 Service Pack 1 Za određene servisne pakete sustava SQL Server stvaraju se hitni popravci sustava Microsoft SQL Server 2008. Za instalaciju sustava SQL Server 2008 Service Pack 1 morate primijeniti hitni popravak sustava SQL Server 2008 Service Pack 1. Svaki hitni popravak koji je naveden u servisnom paketu sustava SQL Server po zadanom je uključen u sljedeći servisni paket sustava SQL Server.

Servisni paket 2 za SQL Server 2008

Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 3 za SQL Server 2008 Service Pack 2. Dodatne informacije o tom zbirnim paketom za ažuriranje potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

2498535 Kumulativno ažuriranje paketa 3 za SQL Server 2008 Service Pack 2Napomena Budući da su grade kumulativne, svako novo izdanje ispravaka sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima sustava SQL Server 2008 Fix. Microsoft preporučuje da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

2402659 Verzije sustava SQL Server 2008 koje su objavljene nakon objavljivanja sustava SQL Server 2008 Service Pack 2 Za određene servisne pakete sustava SQL Server stvaraju se hitni popravci sustava Microsoft SQL Server 2008. Za instalaciju sustava SQL Server 2008 Service Pack 2 morate primijeniti hitni popravak sustava SQL Server 2008 Service Pack 2. Svaki hitni popravak koji je naveden u servisnom paketu sustava SQL Server po zadanom je uključen u sljedeći servisni paket sustava SQL Server.

Servisni paket 1 za SQL Server 2008 R2

Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 1 za SQL Server 2008 R2 Service Pack 1. Dodatne informacije o dobivanju tog kumulativnog paketa za ažuriranje potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

2544793 Kumulativno ažuriranje paketa 1 za SQL Server 2008 R2 Service Pack 1Napomena Budući da su grade kumulativne, svako novo izdanje sustava Fix sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima programa SQL Server 2008 R2. Preporučujemo da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

2567616 Verzije sustava SQL Server 2008 R2 koje su objavljene nakon objavljivanja sustava SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

Popravak tog problema prvi je put izdan u kumulativnom ažuriranju 7. Dodatne informacije o dobivanju tog kumulativnog paketa za ažuriranje za SQL Server 2008 R2 potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

2507770 Kumulativno ažuriranje paketa 7 za SQL Server 2008 R2 Napomena Budući da su grade kumulativne, svako novo izdanje sustava Fix sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnim izdanjima programa SQL Server 2008 R2. Preporučujemo da razmotrite primjenu najnovijeg izdanja popravka koja sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

981356 Verzije sustava SQL Server 2008 R2 koje su objavljene nakon objavljivanja sustava SQL Server 2008 R2

Status

Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".

Zaobilazno rješenje

Da biste zaobišli taj problem, ponovno napišite upit tako da tarifa za upit ne koristi funkciju DateDiff u predikatima. Sljedeći se primjer može postupno pokrenuti:create procedure proc_test @date datetimeasselect COUNT (*) from t where c1 <DATEADD(mm, DATEDIFF(mm,0,dateadd(month, -6,@date)), 0) No upit možete prepisati kao sljedeće da biste zaobišli taj problem:create procedure proc_test2 @date datetimeasdeclare @datestr nvarchar(50), @sqlstr nvarchar(1024)set @datestr = CAST (DATEADD(mm, DATEDIFF(mm,0,dateadd(month, -6,@date)), 0) as nvarchar(50))set @sqlstr ='select COUNT (*) from t where c1 < ''' + @datestr + ''''exec (@sqlstr)

Reference

Dodatne informacije o modelu programa inkrementalni servis za SQL Server potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

935897 U timu SQL Server dostupan je inkrementalni servisni model za isporuku hitnih popravaka za prijavljene problemeDodatne informacije o shemi imenovanja za ažuriranja sustava SQL Server potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

822499 Nova shema imenovanja za pakete softverskih ažuriranja za Microsoft SQL ServerDodatne informacije o terminologiji za softversko ažuriranje potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:

824684 Opis standardne terminologije koja se koristi za opisivanje ažuriranja Microsoftova softvera

Potrebna vam je dodatna pomoć?

Proširite svoje vještine
Istražite osposobljavanje
Prvi koristite nove značajke
Pridružite se Microsoft Insidere

Jesu li ove informacije bile korisne?

Koliko ste zadovoljni kvalitetom prijevoda?
Što je utjecalo na vaše iskustvo?

Hvala vam na povratnim informacijama!

×