gpt4 book ai didi

c# - 优化复杂查询

转载 作者:行者123 更新时间:2023-11-30 14:38:13 26 4
gpt4 key购买 nike

我有一个通过某个 ID 合并表的查询。

SELECT ROW_NUMBER() OVER (ORDER BY PagedOptionData1.ExternalId ASC,
PagedOptionData1.RunDateTime DESC
) AS RowNumber,
PagedOptionData1.*,
PagedOptionData2.*
FROM PagedOptionData AS PagedOptionData1
LEFT OUTER JOIN PagedOptionData AS PagedOptionData2
ON PagedOptionData1.ExternalId = PagedOptionData2.ExternalId
AND PagedOptionData2.rn = 2
WHERE PagedOptionData1.rn = 1

其中 PagedOptionData 是具有各种连接的临时表。

可以优化这个查询吗?

最佳答案

无论您使用原始表格还是我的建议,您都需要在 (ExternalId ASC, RunDateTime DESC) 上建立索引

有一件事很突出:当您在同一个表上两次使用 SELECT * 时,您将如何消除列名中的歧义?

为了避免顺序列访问并简化查询,我会考虑重写:

SELECT TOP 2
*
FROM
PagedOptionData
ORDER BY
ExternalId ASC, RunDateTime DESC

这以客户端代码中的更多逻辑为代价大大简化了事情

关于c# - 优化复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com