我有一个 SQL 标量值函数,它将自定义表类型作为其唯一参数。此表类型参数是单列整数。SQL 函数计算数据集的中值并返回结果整数。
我的 Web 表单 Web 应用程序(用 C# 编写)中有一个仪表板,它显示了一些有趣的指标。目前,我有一个我的自定义数据类型的 IQueryable 被过滤掉,然后我被迫枚举我想要获得中位数的整个整数列。目前,我有一个本地函数,它接受一个 IEnumerable 并返回一个整数,它是中位数。
我的问题是枚举 IQueryable 来计算中位数总共会拉动数十万条记录,并导致由过多的 SQL 流量引起的性能问题。我想使用我的 SQL 函数来计算 SQL 端的 IQueryable 的中值以缓解这个问题。由于该函数采用自定义表类型,因此我不知道如何使其工作。
任何指导将不胜感激!