【问题标题】:MS Access to SQL data flow and performanceMS Access 对 SQL 数据流和性能的访问
【发布时间】:2012-12-02 18:55:49
【问题描述】:

我在这里寻找一些启示,谁能告诉我当您使用 MS Access 查询通过 ODBC 链接的表(在 MS SQL Server 上)时实际发生了什么?我的意思是常规链接样式,而不是 Access ADP。

ODBC 驱动程序是否以某种方式从 Access 获取查询并执行转换并让 MSSQL 完成繁重的工作,还是 ODBC 只是促进数据交换,然后 Access 工作,然后数据恢复?

我相信确实如此,尽管我似乎永远无法找到明确的答案。这与在 Access 中使用 ADO 发送命令以仅发送/执行必要的任务而不提取所有记录之类的东西形成对比。

我很可能在这个问题上很远。

【问题讨论】:

    标签: sql-server database ms-access database-connection


    【解决方案1】:

    ODBC 驱动程序知道如何在 Access 和 SQL Server SQL 方言和数据类型之间进行转换。

    所以,是的,它可以允许服务器完成“繁重的工作”。但您的查询也必须正确编写以允许这种情况发生。

    一种类型的问题是在其WHERE 子句中使用仅访问函数(没有等效的TSQL)的查询。在这种情况下,Access 必须从服务器中提取每一行,以便评估函数的结果。

    【讨论】:

    • 假设您正在查询某个日期的记录。访问查询设计器接受 mydatefield = #12/1/2012# 的位置,而 T-SQL 需要 mydatefield = '12/1/2012' 之类的东西。另外我假设任何必须链接到本地​​访问表的东西都需要拉下所有记录来评估,即使是 ODBC SQL 数据集的标准?
    • 使用日期文字的访问约定 (#12/1/2012#) 编写访问查询。驱动程序将其转换为对服务器方言的 ODBC 请求。作为一个简单而夸张的陈述......作为开发人员,您不需要了解 T-SQL 如何处理日期。顺便说一句,我更喜欢 #yyyy-mm-dd# 格式的日期文字,以减少混淆 #mm-dd-yyyy# 与 #dd-mm-yyyy# 的任何可能性。
    • 我认为您是正确的,将本地 Access 表与服务器表连接可能会强制 Access 下拉所有服务器候选行。
    猜你喜欢
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多