我有一个查询,它将不同的表组合在一起,没有任何链接,所以它创建了组合。记录的数量已经达到了2000万条,我按一个字段对这些记录进行了排序。ms access挂起并停止工作。请任何能帮助加快查询速度或使其工作的人。谢谢
5fjcxozz1#
组合表而不告诉查询如何将一个表与另一个表关联,这称为“交叉联接”,因为它创建了记录的组合。使用交叉联接很容易得到非常大的结果,交叉联接中两个表中每个表中仅5000行将生成2500万条记录,三个表中每个表中仅300条记录将生成2700万条记录。由于每个表只有5000或300条记录,msaccess会飞起来,但要求它运行查询以创建约2000万条记录需要时间,这就是它的工作方式。我建议你告诉我们你想做什么,我希望表之间应该有一个关系,或者至少在查询中有一些东西告诉msaccess你想看到的2000万条记录中的哪一条。我想你不会想翻阅500000页左右的数据来找到你想要的东西。
polhcujo2#
一种方法是将查询更改为不使用过滤器的create table查询。然后在新表中针对要筛选的字段创建索引。现在,在查询中使用此表作为源,在查询中应用所需的过滤器。
2条答案
按热度按时间5fjcxozz1#
组合表而不告诉查询如何将一个表与另一个表关联,这称为“交叉联接”,因为它创建了记录的组合。
使用交叉联接很容易得到非常大的结果,交叉联接中两个表中每个表中仅5000行将生成2500万条记录,三个表中每个表中仅300条记录将生成2700万条记录。由于每个表只有5000或300条记录,msaccess会飞起来,但要求它运行查询以创建约2000万条记录需要时间,这就是它的工作方式。
我建议你告诉我们你想做什么,我希望表之间应该有一个关系,或者至少在查询中有一些东西告诉msaccess你想看到的2000万条记录中的哪一条。我想你不会想翻阅500000页左右的数据来找到你想要的东西。
polhcujo2#
一种方法是将查询更改为不使用过滤器的create table查询。
然后在新表中针对要筛选的字段创建索引。
现在,在查询中使用此表作为源,在查询中应用所需的过滤器。