好的,所以我已经连续尝试和测试了几个小时,但我似乎无法让我的查询更快地工作。
我有一个巨大的疑问,UNION ALL
他们之间有很多。遗憾的是,查询执行大约需要 10 秒,当然,这对于用户来说等待时间太长了。
它看起来像这样(简化版):
SELECT distinct *
FROM (
SELECT
'QUD' as typeString,
1 as typeInt,
Process.END_USER_PROJECT.id,
.......,
1 as actionAvailable
FROM Process.END_USER_PROJECT (nolock)
INNER JOIN Process.EXTERNAL_ORGANISATION (nolock)
ON externalID = Process.EXTERNAL_ORGANISATION.Id
WHERE externalID = 1111
UNION ALL
SELECT 'SPECS' AS typeString,
2 as typeInt ,
Process.SPECIFICATION_GENERAL.id,
.......,
1 as actionAvailable
FROM Process.SPECIFICATION_GENERAL (nolock)
INNER JOIN Process.END_USER_PROJECT (nolock)
ON Process.SPECIFICATION_GENERAL.EndUserProjectId = Process.END_USER_PROJECT.id
INNER JOIN ....
WHERE externalID = 1112
UNION ALL
....................
UNION ALL
....................
--AND SO ON...
) AS myTempTable ORDER BY typeString, ....
我一直在寻找VIEWS
可能使其工作得更快,但事实并非如此。它给了我大约相同的时间来处理整个查询。
我的选择已经不多了,我真的应该让它发挥作用。
任何人都有优化的想法,特别是在我的情况下?