Ниже приведен мой запрос, который занимает 2:26 минуты для извлечения 9'619'516 записей из базы данных SQL Server 2008 R2
Запрос:
SELECT
SERVERID, MSGID, BPID, FLOWID, FSID, FSSTEP,
MESSAGETYPEID, MESSAGESTRING, USERBLOB, USERCODE,
CREATEDATE, CREATETIME, OBJECTLEVEL, CATEGORY,
USERKEY1, USERKEY2, VERSIONKEY, STATUSCODE, SEVERITY,
EXTENSION, PROJECTKEY, BLOBEXISTS, ROOTFSID,
FLOWREQUESTID, FILELOCATION, RUNID,
TEMP_MGXPI4_1.DateTimeObject, TEMP_MGXPI4_1.TEMP_ROW_NUM
FROM
(SELECT
SERVERID, MSGID, BPID, FLOWID, FSID, FSSTEP,
MESSAGETYPEID, MESSAGESTRING, USERBLOB, USERCODE,
CREATEDATE, CREATETIME, OBJECTLEVEL, CATEGORY,
USERKEY1, USERKEY2, VERSIONKEY, STATUSCODE,
SEVERITY, EXTENSION, PROJECTKEY, BLOBEXISTS, ROOTFSID,
FLOWREQUESTID, FILELOCATION, RUNID,
REPLACE(CONVERT(NVARCHAR(10),CREATEDATE, 126),'-','') + CONVERT(NVARCHAR(50),CREATETIME) AS DateTimeObject,
ROW_NUMBER() OVER(ORDER BY CREATEDATE DESC, CREATETIME DESC, MSGID DESC) AS TEMP_ROW_NUM
FROM
IFS_ACTLOG
WHERE
PROJECTKEY = 'Project1' AND ROOTFSID = 1) AS TEMP_MGXPI4_1
План выполнения SQL Server иззапрос: