Simptome
Kada SQL plan ima omogućeno međusobno izvršavanje i koristi odredbu OPTION (OPTIMIZE FOR), funkcija sa vrednošću tabele (TVF) koja koristi parametar prosleđen u istom SQL izrazu daje netačne rezultate pri prvom pokretanju.
Rezoluciju
Ovaj problem je rešen u sledećoj kumulativnom ažuriranju za SQL Server:
Kumulativna ispravka 19 za SQL Server 2019
Beleške Evo primera ne koristi se međusobno izvršavanje kada instalirate ovu kumulativnu ispravku:
DECLARE @start smalldatetime
SELECT count(*) FROM dbo.GetData(@start)
OPTION (OPTIMIZE FOR (@start = '2022-05-23T06:00:00'))
CREATE FUNCTION [dbo].[GetData]
(
@start datetime
)
RETURNS TABLE AS RETURN
SELECT t.id FROM dbo.TestTable t
WHERE t.testdate >= @start
GO
CREATE TABLE [dbo].[TestTable](
[id] [int] IDENTITY(1,1) NOT NULL,
[testdate] [datetime] NULL
) ON [PRIMARY]
GO
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i bezbednosne ispravke koje su bile u prethodnom izdanju. Preporučujemo da instalirate najnoviju verziju za svoju verziju programa SQL Server:
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanja softverskih ispravki.