Hello,
We are using Azure SQL Database with ArcGIS Enterprise 10.9.1.
In Azure Portal, we noted in the Database Performance Overview, there are some long running queries. Picked one of the long running queries and here is the SQL:
(@P1varbinary(max),@P2datetime2(7),@P3varbinary(max))select SHAPE, SUBNETWORKNAME, OBJECTID,xyz_NETWORK.UNADMIN.ELECTRICSUBNETLINE.GDB_GEOMATTR_DATA from UNADMIN.ELECTRICSUBNETLINE WITH (FORCESEEK INDEX(R50_pk)) WHERE UNADMIN.ELECTRICSUBNETLINE.GDB_ARCHIVE_OID IN (SELECT GDB_ARCHIVE_OID FROM (SELECT GDB_ARCHIVE_OID,SHAPE,ROW_NUMBER() OVER(PARTITION BY OBJECTID ORDER BY GDB_FROM_DATE DESC) rn_, GDB_IS_DELETE FROM UNADMIN.ELECTRICSUBNETLINE WHERE OBJECTID IN (SELECT OBJECTID FROM UNADMIN.ELECTRICSUBNETLINE WITH (INDEX(S20_idx)) WHERE ELECTRICSUBNETLINE.SHAPE.Filter(@P1)= 1 ) AND GDB_BRANCH_ID = 0 AND GDB_FROM_DATE <= @P2 ) br__ WHERE br__.rn_ = 1 AND br__.GDB_IS_DELETE = 0 AND br__.SHAPE.Filter(@P3)= 1) OPTION (RECOMPILE, MAXDOP 1)
By default Azure SQL Database is set to use MAXDOP 8. The Query above is recompiled with MAXDOP = 1. The above Query is coming from ArcGIS Pro usingbranch versioning via REST service.
Questions:
- Is MAXDOP = 1 the best setting for overall performance for all transactions?
- Where is the Query hint with Recompile option injected from? In ArcGIS Pro? In REST API? or in a stored procedure in ArcSDE?
Thank you!
Anthea