Линейное и логарифмическое уменьшение выборки данных x/y в SQL Server
У меня есть большая таблица значений X/Y в двухколоночной базе данных SQL Server - большая, например, "до нескольких сотен тысяч строк" на набор данных.
Я реализовал понижающую дискретизацию данных в коде сервера (веб-приложения) (C#.NET, приложение на основе EntityFramework), который обращается к этой таблице, в основном "разбивает данные на N подмножеств, и для каждого подмножества получают первое (или среднее) значение X и максимальное значение Y в этом куске ". Таким образом, у меня гораздо меньше данных, но на экране обычного пользователя с шириной <2000 пикселей все равно будет достаточно данных для построения графика.
Но это все еще медленно, потому что веб-сервер должен запрашивать все данные с сервера БД, и только клиент получает сокращенный набор данных.
Я хотел бы знать, возможно ли сделать такое сокращение данных непосредственно в SQL - или, возможно, в каком-то скомпилированном расширении SQL, которое можно подключить к SQL Server. Это позволит избежать передачи большого количества данных на веб-сервер только для сокращения выборки и, будем надеяться, будет намного быстрее.
Еще лучше, если решение может не только разбивать на куски одинакового размера, но также, например, разбивать на логарифмически масштабированные куски, например, количество кусков между X=1..10 и одинаковое количество кусков между X=10..100 - так что на клиенте график X/Y, масштабированный по x-логарифмическому принципу, получит достаточно точек данных, чтобы нарисовать чистый график.