dbo.QBM_FGIDBQueueSlotsCurrent
Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB
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
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
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