use*_*589 2 sql-server ms-access join
为什么Access 2013采用了一个非常好的查询:
Select t1.A,t2.b,t3.c
from T1
Inner Join t2 on t2.a = t1.a
Inner Join t3 on t3.a = t1.a
Run Code Online (Sandbox Code Playgroud)
并将其分解为3个不同的工作(会话)
session 1: Select a from t1
Session 2. select b from t2
session 3. select c from t3
Run Code Online (Sandbox Code Playgroud)
Microsoft Access(应用程序)使用Access数据库引擎(又名"ACE",以前称为"Jet")来处理其查询.因此,它倾向于将表视为离散实体,就像SQL Server查询引擎对其自己的表一样.(您可能会向SQL Server询问信息,Table1 INNER JOIN Table2但在查询的低级处理中,某些时候SQL Server引擎必须从各个表中提取数据.)
在您的特定情况下,当所有三个表都在SQL Server中时,ACE可能会分别从每个表中提取信息,并且将整个查询传递给SQL Server进行处理可能会更加高效.但是,给定的ODBC链接表可以由任何数量的"数据库技术"支持,这些技术具有广泛不同的功能和互操作性.
例如,您的查询可能很容易就是这样的情况:
ACE可以处理那些类型的查询,但它只能通过能够容纳一般情况来实现,并且可能以牺牲优化特定情况(如您的)为代价.
如果您确实需要在SQL Server上运行整个查询,那么您可以随时使用
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |