c# – I need to store large amounts of data in terms of time and source as dimensions. How should I design my database?

My project needs to save a large amount of historical data from sensors, and the number of them is large.
Although we have eliminated part of the data by the anti-jitter and anti-duplication, but becaues of my project needs to keeping running for a long time, so it still will generates a lot of records.
I used tried SQL Server and MySQL to save these records, and divide the data into tables by sensor(source) or time (Daily, Monthly).

(by sensor)

(by time(daily))

(by time(monthly))

example data:(no device column in divide by device)

device date value
Dev1 2021-03-01 00:00:12 3.53
Dev1 2021-03-01 00:00:23 3.44
Dev1 2021-03-01 00:00:26 3.52
Dev1 2021-03-01 00:00:33 3.53

But they are not easy to query and still have performance bottlenecks.
Currently looking for a better solution, which can better save large amounts of data (records for several years), and faster query speed (especially aggregate computing, we need to aggregate and calculate the historical values of a each device in units of years.).

The solution accepts to change to another database – but at least it should support .NET Core access.