Full Disclosure Report
Full Disclosure Report
Full Disclosure Report
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
declare @div INTEGER<br />
declare @mod INTEGER<br />
declare @skip INTEGER<br />
declare @i INTEGER<br />
declare @rangeSum INTEGER<br />
declare @totRangeSize INTEGER<br />
declare @sql NCHAR(1000)<br />
declare @orderSql NCHAR(1000)<br />
declare @liSql NCHAR(1000)<br />
DECLARE @ErrorMessage NVARCHAR(4000)<br />
DECLARE @ErrorNumber INT<br />
DECLARE @ErrorSeverity INT<br />
DECLARE @ErrorState INT<br />
DECLARE @ErrorLine INT<br />
DECLARE @ErrorProcedure NVARCHAR(200)<br />
SET @skip = @total_executions/@parallel_executions<br />
SET @div = floor((@current_execution-1)/@parallel_executions)<br />
SET @mod = (@current_execution - 1) - @div * @parallel_executions<br />
SET @index = @mod*@skip + @div + 1<br />
SET @sql = N'SELECT @sdate = dateadd(day,-1,min(O_ORDERDATE)),<br />
@edate = max(O_ORDERDATE)<br />
FROM MOD_OLDORDERS'<br />
EXEC sp_executesql @sql,N'@sdate DATE output, @edate DATE<br />
output',@startdate output, @enddate output<br />
select 'start RF2'<br />
--SELECT 'CurrExec:'+cast(@current_execution as varchar(200))<br />
+','+cast(scheduler_id as varchar(200)) as [sched] from<br />
sys.dm_exec_requests where session_id=@@spid<br />
IF (@total_executions > @parallel_executions)<br />
BEGIN<br />
SET @div = (@index-1)/@skip<br />
SET @mod = (@index-1) - @div * @skip<br />
--SET @rangeSize = datediff(day, @startdate,<br />
@enddate)/@parallel_executions + 1<br />
SET @rangeSize = ((@div+1) * datediff(day, @startdate,<br />
@enddate))/@parallel_executions - (@div * datediff(day, @startdate,<br />
@enddate))/@parallel_executions<br />
--SET @rangeStart = @div * @rangeSize<br />
SET @rangeStart = (@div * datediff(day, @startdate,<br />
@enddate))/@parallel_executions<br />
SET @rangeStart = @rangeStart + (@rangeSize * @mod)/@skip<br />
SET @totRangeSize = ((@mod + 1) * @rangeSize)/@skip -<br />
(@mod * @rangeSize)/@skip<br />
SET @rangeSize = @totRangeSize<br />
IF (@rangeSize < 0)<br />
SET @rangeSize = 0<br />
IF (@delete_sets 0)<br />
ROLLBACK TRANSACTION<br />
END<br />
ELSE<br />
BEGIN<br />
-- not a<br />
deadlock<br />
PRINT ERROR_MESSAGE()<br />
SELECT @ErrorNumber =<br />
ERROR_NUMBER(),<br />
@ErrorSeverity =<br />
ERROR_SEVERITY(),<br />
@ErrorState = ERROR_STATE(),<br />
@ErrorLine = ERROR_LINE(),<br />
@ErrorProcedure =<br />
ISNULL(ERROR_PROCEDURE(), '-');<br />
SELECT @ErrorMessage = N'Error %d,<br />
Level %d, State %d, Procedure %s, Line %d, ' +<br />
'Message: '+ ERROR_MESSAGE();<br />
IF (@@trancount>0)<br />
ROLLBACK TRANSACTION<br />
RAISERROR<br />
(<br />
HP TPC-H FULL DISCLOSURE REPORT 82 July, 2010<br />
© 2010 Hewlett-Packard Company. All rights reserved.