我正在为我工作的公司创建一个简单的业务分析应用程序,并拥有一个 100mb 的 csv 文件,其中包含过去 6 年的销售交易,我已将其解析为多个数据库。
我想在我的应用程序中显示的数据之一是每位客户每天的营业额和利润,所以我有一个如下所示的 while 循环:
while(start_date < current_date)
{
SELECT SUM(profit), SUM(turnover) FROM sales WHERE date = @date
}
因此,我在一个有几十万行的表上运行该查询,每天的次数与 6 年来每天的客户次数一样多。
我总是被引导相信可以在数据库中执行的任何工作都应该是 - 这就是我使用 SUM 查询来汇总列的原因。
我还能做哪些其他优化?目前它正在占用......好吧,我不能告诉你,因为它已经在一个 8GB 四核服务器上运行了最后一个小时,看起来它在 2-3% 左右。
我正在使用 SQL Server Compact Edition,它是 C#/.NET 中的一个 winforms 应用程序,但 db 显然是这里的瓶颈。