Förmodligen går det väl att förbättra. Jag skulle inte börja i den änden om jag upplevde prestandaproblem.
Halloj!
Jag har en massa Lagrade Procedurer som jag vill effektivisera.
Denna SP fungerar, men jag skulle vilja effektivisera partiet där man kollar om det finns en eller flera värden i "@sFM" (OR/AND).
Kan man göra på nåt bättre/effektivare sätt?
Jag vet att man helst inte ska stränga ihop SQL-satsen i SP:n, men behöver hjälp för att snickra till det
SET @SQLstring ='SELECT * FROM tabell WHERE test=' + @test
begin
set @CommaWk = 0
set @SQLString = @SQLString + N'and ('
select @iCommaAt = CHARINDEX(',',@sFM)
while @iCommaAt > 0
begin
if @CommaWk > 0 set @SQLString = @SQLString + N' or '
if substring(@sFM, 1, @iCommaAt - 1) > ''
begin
set @CommaWk = @CommaWk + 1
set @SQLString = @SQLString + 'Fakt.sFakt = ''' + substring(@sFM, 1, @iCommaAt - 1) + ''''
end
select @sFM = substring(@sFM, @iCommaAt + 1, 255)
select @iCommaAt = charindex(',', @sFM)
end
if @CommaWk > 0
begin
set @SQLString = @SQLString + N' or '
end
if @sFM > '' SET @SQLString = @SQLString + N'Fakt.sFakt = ''' + @sFM + ''''
set @sqlstring = @SQLString + N')'
end
:l