如何使用大表加快Access前端/ SQL Server后端的速度?

时间:2014-07-18 15:24:10

标签: sql sql-server performance ms-access

我正在为Access中的SQL Server重新设计前端,以允许我们公司的非程序员查询数据库。

问题是某些表非常大。目前我正在使用链接表。我试图允许的一个查询访问包括那个大表的五个表。该表有数百万行,因为它包含了公司的每笔交易。

当我在Access中尝试查询时,需要几分钟才能完成,而Access只是冻结了。所以我决定在进行连接之前使用子查询来缩小大表的范围。表中的每个条目都有一个日期,因此我创建了一个子查询并对其进行过滤以仅返回当前日期进行测试。事实上,因为我只是测试,我甚至进一步过滤它只返回日期列。这将其缩小到80,000个条目左右。最终我确实得到了结果,但花了大约三分钟,而这只是我测试的子查询。一旦结果DID返回,Access每次尝试使用滚动条时都会冻结。

接下来,我尝试了传递查询,认为它更快。它更快,但仍然花了大约一分半钟,仍然有滚动条的冻结问题。问题是这个相同的查询在SQL服务器上只花了3秒钟(我的意思是日期查询。)我希望我可以非常快地得到这个查询,然后将其用于连接。

我可以使用视图,但问题是我希望用户能够指定日期范围。

我能做些什么来加速这种表现还是我搞砸了?

1 个答案:

答案 0 :(得分:1)

让用户滚动浏览数以万计的记录是没有意义的。它们将在数据泛滥中丢失。相反,为他们提供分析数据的方法。首先回答这个问题:“用户需要什么样的信息?”他们可能想知道某一类型的交易在白天或一小时内发生了多少。他们可能想要比较不同的日子。让用户组数据;这减少了必须传输和显示的记录数量。显示它们的计数,总和或平均值。让他们过滤数据或在图表中显示分组数据。