我有一个SQL查询,该查询调用大约1200万行的大数据,但是获取数据需要花费大量时间。我认为需要考虑一些要点才能更快地运行代码。
下面是我正在使用的代码:
SELECT
DISTINCT CUSTOM_FIELD_22 AS Account ,
A.ITEM_ID,
CUSTOM_FIELD_18 AS Problem,
('1970-01-01'::DATE + (CREATE_DATE * INTERVAL '1 seconds'))::DATE CREATIONDATE,
('1970-01-01'::DATE + (CORE_LOG_UPDATED * INTERVAL '1 seconds'))::DATE AS CORELOGUPDATED,
CUSTOM_FIELD_3 AS Status,
POOL.IU ,
POOL.NOC,
SW.SECTOR_NAME,
pop.POPNAME,
z."ZONE" AS POP_ZONE,
L.Creator,
L.Last_updater
FROM
TTS.AIMS_ITEMS A
INNER JOIN tmp.tts_escalation_pool POOL ON
POOL.ITEM_ID = A.ITEM_ID
INNER JOIN TMP.TEDATACUSTOMERSSWITCH SW ON
SW.A_NUMBER::NVARCHAR(25) = A.CUSTOM_FIELD_25::NVARCHAR(25)
AND SW.AREACODE = A.AREACODE
INNER JOIN PRD_STG.TTS.AIMS_POPS_ZONE pop ON
CUSTOM_FIELD_8 = pop.POPID
INNER JOIN PRD_STG.TTS.AIMS_ZONES z ON
z.ID = pop."ZONE"
INNER JOIN tmp.tts_creator_group L ON
A.ITEM_ID = L.ITEM_ID
WHERE
A.VALIDTO IS NULL
AND Z.VALIDTO IS NULL
AND CREATIONDATE >= '1-1-2019'
如果您通过ODBC等选择数据,则不要超过20 Mb /秒。通过在选择之前添加“创建临时表X为”,您可以或多或少地测量运行时(不包括ODBC开销)。花费超过该运行时间的任何时间都是ODBC开销。