PCG is requesting a database schema change in Quantify, this request will providing scaling & improve performance of the Quantify reports. I received the following bit of code to be added to the Quantify LogEntry table from our team to pass on:
SELECT COUNT(*)
FROM ASIRentalManager…Movement M
JOIN ASIRentalManager…MovementProduct MP ON MP.MovementID = M.MovementID
JOIN ASIRentalManager…Product P ON P.ProductID = MP.BaseProductID
JOIN ASIRentalManager…LogEntry LE ON LE.ParentID = M.MovementID AND LE.ChildID = MP.BaseProductID
JOIN ASIRentalManager…AvontusUser U ON U.UserID = LE.UserID
WHERE NOT M.MovementType IN (25, 28, 29, 30, 31, 32, 33, 34, 35, 36)
AND LE.LogDate >= @LogDate
AND EOMONTH(LE.LogDate) != EOMONTH(M.CreateDate)
Produced these stats:
Table ‘Worktable’. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘Workfile’. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘Worktable’. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘LogEntry’. Scan count 1, logical reads 860, physical reads 0, read-ahead reads 5, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘Product’. Scan count 1, logical reads 8, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘MovementProduct’. Scan count 3, logical reads 22, physical reads 0, read-ahead reads 7, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘Movement’. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
After creating test index:
–create index for testing purposes
USE [ASIRentalManager]
GO
CREATE NONCLUSTERED INDEX [tx_Parent_child_date]
ON [dbo].[LogEntry] ([ParentID],[ChildID],[LogDate])
INCLUDE ([UserID])
Results:
Table ‘Worktable’. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘Workfile’. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘Worktable’. Scan count 0, logical reads 0, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘LogEntry’. Scan count 3, logical reads 12, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘Movement’. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.