In case you have your own slow SQL query, you can optimize it automatically here.
For the query above, the following recommendations will be helpful as part of the SQL tuning process.
You'll find 3 sections below:
CREATE INDEX events_idx_deviceid_timeend ON dbo.Events (DeviceId,TimeEnd);
SELECT
[Project2].[EventId] AS [EventId],
[Project2].[DeviceId] AS [DeviceId],
[Project2].[TimeEnd] AS [TimeEnd],
[Project2].[C2] AS [C1],
[Project2].[EventId1] AS [EventId1],
[Project2].[Name] AS [Name],
[Project2].[C1] AS [C2]
FROM
(SELECT
[Limit1].[EventId] AS [EventId],
[Limit1].[TimeEnd] AS [TimeEnd],
[Limit1].[DeviceId] AS [DeviceId],
[Extent2].[Name] AS [Name],
[Extent2].[EventId] AS [EventId1],
CASE
WHEN ([Extent2].[Value] IS NULL) THEN CAST(NULL AS float)
ELSE ROUND([Extent2].[Value],
1) END AS [C1],
CASE
WHEN ([Extent2].[Value] IS NULL) THEN CAST(NULL AS int)
ELSE 1 END AS [C2]
FROM
(SELECT
[Project1].[EventId] AS [EventId],
[Project1].[TimeEnd] AS [TimeEnd],
[Project1].[DeviceId] AS [DeviceId]
FROM
[dbo].[Events] AS [Project1]
WHERE
(
[Project1].[DeviceId] = 1
)
ORDER BY
[Project1].[TimeEnd] DESC) AS [Limit1]
LEFT OUTER JOIN
[dbo].[Octaves] AS [Extent2]
ON [Limit1].[EventId] = [Extent2].[EventId]
) AS [Project2]
ORDER BY
[Project2].[TimeEnd] DESC,
[Project2].[EventId] ASC,
[Project2].[C2] ASC