Back to OIM Explorer

dbo.QBM_FGIDBQueueSlotsCurrent

Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB

Scalar Function.

Source: sandbox-db sys.sql_modules

Source size: 1.265 characters

Interpretation

  • Database function. Usually supports views, validation, or calculated predicates; look at referenced-by entries for callers.

Relations

  • No extracted relations.

Typed Edges

  • references source dbo.QBM_FCVStringToInt source text reference
  • references source dbo.QBM_FGIConfigparmValue source text reference
  • references source dbo.QBM_FGIDBOwner source text reference
  • references source dbo.QBM_FGIDBQueueSlotsMax source text reference

References

Referenced By

  • No direct source references extracted.

Complete Source

SQL58 lines
1CREATE FUNCTION dbo.QBM_FGIDBQueueSlotsCurrent(2) RETURNS int3AS4BEGIN5  DECLARE @erg int = 16  DECLARE @SlotsMax int7  DECLARE @CountProcesses int8  DECLARE @cfg int9  SELECT @SlotsMax = dbo.QBM_FGIDBQueueSlotsMax()10  IF dbo.QBM_FGIDBOwner() != 'CCC'11  BEGIN12    SELECT @erg = @SlotsMax13    GOTO endLabel14  END15  IF @SlotsMax <= 516  BEGIN17    SELECT @erg = @SlotsMax18    GOTO endLabel19  END20  SELECT @CountProcesses = count(*)21  FROM sys.sysprocesses p22  WHERE23    p.dbid = db_id() AND p.spid <> @@spid AND p.program_name NOT LIKE CONCAT('OneIM_DatabaseAgent',24  '%') AND p.status <> 'sleeping'25  SELECT @erg = @SlotsMax -(@CountProcesses / 100)26  SELECT @CountProcesses = count(*)27  FROM sys.sysprocesses p28  WHERE29    p.dbid <> db_id() AND p.status <> 'sleeping'30  SELECT @erg -=(@CountProcesses / 200)31  IF @erg < @SlotsMax / 432  BEGIN33    SELECT @erg = @SlotsMax / 434  END35  IF @erg < 536  BEGIN37    SELECT @erg = 538    GOTO endLabel39  END40  SELECT41    @cfg = dbo.QBM_FCVStringToInt(dbo.QBM_FGIConfigparmValue('QBM\DBQueue\CountSlotsMax'),42    5)43  IF @erg > @cfg AND @cfg > 0 AND NOT EXISTS(44    SELECT TOP 1 145    FROM DialogDatabase d46    WITH(readpast)47  WHERE48    d.isMainDatabase = 1 AND(d.SingleUserProcess = -999 OR d.UpdatePhase > 0))49  BEGIN50    SELECT @erg = @cfg51  END52  IF @erg < 553  BEGIN54    SELECT @erg = 555  END56  endLabel:57  RETURN(@erg)58END
Open raw exported source
SQL ยท Raw10 lines
1   create   function dbo.QBM_FGIDBQueueSlotsCurrent() returns int as begin declare @erg int = 1 declare @SlotsMax int declare @CountProcesses int2  declare @cfg int  select @SlotsMax = dbo.QBM_FGIDBQueueSlotsMax() if dbo.QBM_FGIDBOwner() != 'CCC' begin select @erg = @SlotsMax goto endLabel end if3 @SlotsMax <= 5 begin select @erg = @SlotsMax goto endLabel end  select @CountProcesses = count(*) from sys.sysprocesses p where p.dbid = db_id() and p.spid4 <> @@spid  and p.program_name not like concat( 'OneIM_DatabaseAgent' , '%' ) and p.status <> 'sleeping' select @erg = @SlotsMax - (@CountProcesses / 1005)  select @CountProcesses = count(*) from sys.sysprocesses p where p.dbid <> db_id() and p.status <> 'sleeping' select @erg -= (@CountProcesses / 200) 6 if @erg < @SlotsMax / 4 begin select @erg = @SlotsMax / 4 end if @erg < 5 begin select @erg = 5 goto endLabel end select @cfg = dbo.QBM_FCVStringToInt7( dbo.QBM_FGIConfigparmValue('QBM\DBQueue\CountSlotsMax'), 5) if @erg > @cfg  and @cfg > 0  and not exists (select top 1 1 from DialogDatabase d with (readpast8) where d.isMainDatabase = 1 and (d.SingleUserProcess = -999 or d.UpdatePhase > 0 ) ) begin select @erg = @cfg end  if @erg < 5 begin select @erg = 5 end9 endLabel: return(@erg) end 10