一千万左右的数据,且分布在不同的表,怎样能够在最短的时间里(1秒)按条件筛选出? 优化查询,合理的建立索引,对大表进行分区,分区之后的表尽可能分布在不同的物理磁盘上。另外,增加硬件投入,比如使用多CPU的PC服务器(SQL Server授权许可使用多U),增大内存,使用磁盘阵列。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建分区视图分区视图在一个或多个服务器间水平连接一组成员表中的分区数据,使数据看起来就象来自一个表。Microsoft® SQL Server™ 2000 区分本地分区视图和分布式分区视图。在本地分区视图中,所有的参与表和视图驻留在同一个 SQL Server 实例上。在分布式分区视图中,至少有一个参与表驻留在不同的(远程)服务器上。此外,SQL Server 2000 还区分可更新的分区视图和作为基础表只读复本的视图。分布式分区视图可用于实现数据库服务器联合体。联合体是一组分开管理的服务器,但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制使您能够扩大一组服务器,以支持大型的多层 Web 站点的处理需要。有关更多信息,请参见设计联合数据库服务器。在实现分区视图之前,必须先水平分区表。在设计分区方案时,每个成员表所具有的数据必须非常明确。原始表被分成若干个较小的成员表。每个成员表包含与原始表相同数量的列,并且每一列具有与原始表中的相应列同样的特性(如数据类型、大小、排序规则)。如果正在创建分布式分区视图,则每个成员表分别位于不同的成员服务器上。为了获得最大程度的位置透明度,各个成员服务器上的成员数据库的名称应当是相同的,但不要求非这样。例如:Server1.CustomerDB、Server2.CustomerDB、Server3.CustomerDB。成员表设计好后,每个表基于键值的范围存储原始表的一块水平区域。键值范围基于分区列中的数据值。每一成员表中的值范围通过分区列上的 CHECK 约束强制,并且范围之间不能重叠。例如,不能使一个表的值范围从 1 到 200000,而另一个表的值范围从 150000 到 300000,因为这样将不清楚哪个表包含 150000 与 200000 之间的值。 例如,正在将一个 Customer 表分区成三个表。这些表的 CHECK 约束为:-- 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)在创建成员表后,在每个成员服务器上定义一个分布式分区视图,并且每个视图具有相同的名称。这样,引用分布式分区视图名的查询可以在任何一个成员服务器上运行。系统操作如同每个成员服务器上都有一个原始表的复本一样,但其实每个服务器上只有一个成员表和一个分布式分区视图。数据的位置对应用程序是透明的。生成分布式分区视图的方式如下: 在每一个含有在其它成员服务器上执行分布式查询所需连接信息的成员服务器上添加链接服务器定义。这将使得分布式分区视图能够访问其它服务器上的数据。对于在分布式分区视图中使用的每个链接服务器定义,使用 sp_serveroption 设置 lazy schema validation 选项。这确保了只有在实际需要远程成员表的数据时,查询处理器才请求任何链接表的元数据,从而使性能得到优化。在每个成员服务器上创建分布式分区视图。这些视图使用分布式 SELECT 语句访问链接成员服务器上的数据,并将分布式行与本地成员表的行合并。 若要为上一个示例创建分布式分区视图,应当: 为 Server2 添加一个名为 Server2 的、带有连接信息的链接服务器定义,并添加一个名为 Server3 的链接服务器定义以访问 Server3。创建以下分布式分区视图: CREATE VIEW Customers AS SELECT * FROM CompanyDatabase.TableOwner.Customers_33UNION ALL SELECT * FROM Server2.CompanyDatabase.TableOwner.Customers_66UNION ALL SELECT * FROM Server3.CompanyDatabase.TableOwner.Customers_99在 Server2 和 Server3 上执行相同的步骤。 像百度和google,他们一般是怎么做到的? 100MB asp和 asp.net空间 50/1年我看到了一个网站 100MB asp和 asp.net空间 现在促销,同学们可以做一个简单的个人网站用来找工作 , 支持 asp.net 一年才50元!不要错过哦!!!速度非常快,一般公司企业 足够用了!http://www.hi876.com 希望能对大家有帮助 100MB asp和 asp.net空间 50/1年我看到了一个网站 100MB asp和 asp.net空间 现在促销,同学们可以做一个简单的个人网站用来找工作 , 支持 asp.net 一年才50元!不要错过哦!!!速度非常快,一般公司企业 足够用了!http://www.hi876.com 希望能对大家有帮助 百度和google那是号几百台服务器,你跟他比? 跟google比?哎~比不起啊~人家google那可是钱堆起来的~ 多表不重复数据查询 关于sql的表与表字段的移值 求剩余时间,精确到x年x月x日 外键是什么东西,它有什么作用? 急问有关sql server日志问题,谢谢 sqlserver数据库安全问题?急!!!!! 怎样写这个SQL语句? 触发器中用exec来执行语句,不能访问inserted表,Why?如何处理? 请教如何更改syscolumns系统表字段类型 关于SQL递归!!!!! ***< 超难问题,希望 高手给答复 >*** 如何用 SQL存储过程 查询给定的ID的类别 以及它的所有父辛类的名字和出现相对应的连接?? 大家帮帮忙!我如何把这个access查询改成sql server的视图!
分区视图在一个或多个服务器间水平连接一组成员表中的分区数据,使数据看起来就象来自一个表。Microsoft® SQL Server™ 2000 区分本地分区视图和分布式分区视图。在本地分区视图中,所有的参与表和视图驻留在同一个 SQL Server 实例上。在分布式分区视图中,至少有一个参与表驻留在不同的(远程)服务器上。此外,SQL Server 2000 还区分可更新的分区视图和作为基础表只读复本的视图。分布式分区视图可用于实现数据库服务器联合体。联合体是一组分开管理的服务器,但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制使您能够扩大一组服务器,以支持大型的多层 Web 站点的处理需要。有关更多信息,请参见设计联合数据库服务器。在实现分区视图之前,必须先水平分区表。在设计分区方案时,每个成员表所具有的数据必须非常明确。原始表被分成若干个较小的成员表。每个成员表包含与原始表相同数量的列,并且每一列具有与原始表中的相应列同样的特性(如数据类型、大小、排序规则)。如果正在创建分布式分区视图,则每个成员表分别位于不同的成员服务器上。为了获得最大程度的位置透明度,各个成员服务器上的成员数据库的名称应当是相同的,但不要求非这样。例如:Server1.CustomerDB、Server2.CustomerDB、Server3.CustomerDB。成员表设计好后,每个表基于键值的范围存储原始表的一块水平区域。键值范围基于分区列中的数据值。每一成员表中的值范围通过分区列上的 CHECK 约束强制,并且范围之间不能重叠。例如,不能使一个表的值范围从 1 到 200000,而另一个表的值范围从 150000 到 300000,因为这样将不清楚哪个表包含 150000 与 200000 之间的值。 例如,正在将一个 Customer 表分区成三个表。这些表的 CHECK 约束为:-- 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)在创建成员表后,在每个成员服务器上定义一个分布式分区视图,并且每个视图具有相同的名称。这样,引用分布式分区视图名的查询可以在任何一个成员服务器上运行。系统操作如同每个成员服务器上都有一个原始表的复本一样,但其实每个服务器上只有一个成员表和一个分布式分区视图。数据的位置对应用程序是透明的。生成分布式分区视图的方式如下: 在每一个含有在其它成员服务器上执行分布式查询所需连接信息的成员服务器上添加链接服务器定义。这将使得分布式分区视图能够访问其它服务器上的数据。
对于在分布式分区视图中使用的每个链接服务器定义,使用 sp_serveroption 设置 lazy schema validation 选项。这确保了只有在实际需要远程成员表的数据时,查询处理器才请求任何链接表的元数据,从而使性能得到优化。
在每个成员服务器上创建分布式分区视图。这些视图使用分布式 SELECT 语句访问链接成员服务器上的数据,并将分布式行与本地成员表的行合并。
若要为上一个示例创建分布式分区视图,应当: 为 Server2 添加一个名为 Server2 的、带有连接信息的链接服务器定义,并添加一个名为 Server3 的链接服务器定义以访问 Server3。
创建以下分布式分区视图:
CREATE VIEW Customers AS
SELECT * FROM CompanyDatabase.TableOwner.Customers_33
UNION ALL
SELECT * FROM Server2.CompanyDatabase.TableOwner.Customers_66
UNION ALL
SELECT * FROM Server3.CompanyDatabase.TableOwner.Customers_99在 Server2 和 Server3 上执行相同的步骤。
我看到了一个网站 100MB asp和 asp.net空间 现在促销,
同学们可以做一个简单的个人网站用来找工作 ,
支持 asp.net 一年才50元!不要错过哦!!!
速度非常快,一般公司企业 足够用了!
http://www.hi876.com
希望能对大家有帮助
我看到了一个网站 100MB asp和 asp.net空间 现在促销,
同学们可以做一个简单的个人网站用来找工作 ,
支持 asp.net 一年才50元!不要错过哦!!!
速度非常快,一般公司企业 足够用了!
http://www.hi876.com
希望能对大家有帮助