查看几个数据库,如何提高速度?

问题描述:

我有三个数据库,每个数据库都有两个表,为用户提供接口更简单我已经创建了一个视图,在这6个表中添加了数据库和表中的一个视图列,这样用户仍然可以过滤如果他/她只想要某些数据。不过,我觉得表现并不尽如人意。我觉得尽管where子句定义了例如来自db1的数据不是必需的,视图首先获取所有数据并执行过滤。我怎样才能使视图足够聪明,以避免在这种情况下在第一个位置从db1获取数据?查看几个数据库,如何提高速度?

你想要的是分区视图。

您可以通过指定每个视图中的表约束创建这些,所以SQL Server将知道是什么样的信息存在,而无需取,这里

-- On Server1: 
CREATE TABLE Customers_33 
    (CustomerID INTEGER PRIMARY KEY 
       CHECK (CustomerID BETWEEN 1 AND 32999), 
    ... -- Additional column definitions) 

-- On Server2: 
CREATE TABLE Customers_66 
    (CustomerID INTEGER PRIMARY KEY 
       CHECK (CustomerID BETWEEN 33000 AND 65999), 
    ... -- Additional column definitions) 

-- On Server3: 
CREATE TABLE Customers_99 
    (CustomerID INTEGER PRIMARY KEY 
       CHECK (CustomerID BETWEEN 66000 AND 99999), 
    ... -- Additional column definitions) 

充分说明: http://msdn.microsoft.com/en-us/library/aa933141(v=sql.80).aspx