我有一个简单的Access数据库,用于创建大量报告。我已经链接到我们组织中的Teradata数据库服务器,以提取一些额外的员工级详细信息。员工编号上有一个简单的左连接,我拉的是名称和角色。
没有连接的查询可能需要一分钟左右才能运行,加载后非常快。在Teradata连接上左连接可以减慢所有内容的速度。通过Excel运行查询可能需要10分钟左右。在Access中加载查询时,滚动浏览非常慢。
我应该注意Teradata服务器没有性能问题。我从相同和不同的表中提取不相关的报告,具有复杂的连接并且速度非常快。
我尝试创建一个更简单的查询,几乎注意到了,性能问题仍然存在。这是代码:
SELECT EMPL_DETAILS_CURR.NM_PREFX, EMPL_DETAILS_CURR.NM_GIVEN,
MC.DT_APP_ENTRY, MC.CHANNEL_IND
FROM MC LEFT JOIN EMPL_DETAILS_CURR ON MC.EMP_ID = EMPL_DETAILS_CURR.EMP_ID;
MC
中只有7000条记录。
答案 0 :(得分:2)
如果要在MS Access表和Teradata表之间连接数据,则必须使用本地计算机上的Microsoft JET Engine完成连接。这意味着Teradata表中存在的数据将被转移到本地计算机,以便可以将其连接起来。
如果表格全部在Teradata上并通过MS Access中的链接表进行访问,则连接可能仍在本地进行。我建议将查询作为ODBC Direct(我忘记确切的术语)查询运行,以便将SQL传递给Teradata进行执行,并在查询完成时将结果返回给MS Access。