一千万左右的数据,且分布在不同的表,怎样能够在最短的时间里(1秒)按条件筛选出?
用于显示在网页上,分页,每页显示20条左右。
第一次接触这么多数据,不知从何入手,请大家积思广议,给些建议!
问题点数:100、回复次数:25Top
1 楼fengfangfang()回复于 2005-06-03 16:56:05 得分 0
怎么像一秒种在大海里面找到掉进去的一根针一样呀
不会,关注Top
2 楼zjcxc(邹建)回复于 2005-06-03 17:05:32 得分 10
像楼主这样要求的话,那就无其它方法可以保障1秒检索出数据,唯一的办法是将服务器配置得够好,使其1秒钟能实现楼主的要求。Top
3 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-06-03 17:10:32 得分 30
优化查询,合理的建立索引,对大表进行分区,分区之后的表尽可能分布在不同的物理磁盘上。
另外,增加硬件投入,比如使用多CPU的PC服务器(SQL Server授权许可使用多U),增大内存,使用磁盘阵列。Top
4 楼hdhai9451(☆新人类☆)回复于 2005-06-03 17:13:02 得分 0
什麼只用1秒?,如果用10秒能夠出來已經高興了!不同的表,又是海量數據,難做到?Top
5 楼7271747(帅的拖网速)回复于 2005-06-03 17:14:01 得分 0
路过,路过,仅仅是路过Top
6 楼duanduan1122(俺村俺帅!!!)回复于 2005-06-03 17:15:01 得分 10
1。在1秒按条件筛选出,而且 是一千万左右的数据 。不太可能
2。可以创建分区视图,提高一点性能Top
7 楼duanduan1122(俺村俺帅!!!)回复于 2005-06-03 17:15:31 得分 20
创建分区视图
分区视图在一个或多个服务器间水平连接一组成员表中的分区数据,使数据看起来就象来自一个表。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 上执行相同的步骤。
Top
8 楼hanbaojun(闲庭信步)回复于 2005-06-03 17:22:01 得分 0
呵呵,看来有难度啊!Top
9 楼whatsouta(某疯子)回复于 2005-06-03 18:13:19 得分 0
基本属于不可能事件Top
10 楼Hopewell_Go(好的在后頭﹗希望更好﹗﹗)回复于 2005-06-03 20:40:58 得分 5
這個和機子的性能有關系的。
我想一般的機子是不可能的了
Top
11 楼LGame(JGame)回复于 2005-06-03 23:26:18 得分 0
强~~~~~Top
12 楼yxg80(林夕昱)回复于 2005-06-04 09:55:16 得分 0
晕,厉害!Top
13 楼hglhyy(為人民币服务!)回复于 2005-06-04 11:19:26 得分 0
海量数据库,运行也要时间的,1000W啊,老大,用一秒钟。一般的服务器应该是做不到的,用银河看怎么样!Top
14 楼hanbaojun(闲庭信步)回复于 2005-06-04 11:31:20 得分 0
像百度和google,他们一般是怎么做到的?Top
15 楼coolsunwind(飘)回复于 2005-06-04 20:07:25 得分 0
关注,学习!Top
16 楼good2speed(Goodspeed)回复于 2005-06-04 22:11:47 得分 0
有难度Top
17 楼asp1113()回复于 2005-06-05 00:03:18 得分 0
100MB asp和 asp.net空间 50/1年
我看到了一个网站 100MB asp和 asp.net空间 现在促销,
同学们可以做一个简单的个人网站用来找工作 ,
支持 asp.net 一年才50元!不要错过哦!!!
速度非常快,一般公司企业 足够用了!
http://www.hi876.com
希望能对大家有帮助Top
18 楼yjdn(人形机器)回复于 2005-06-05 02:25:10 得分 0
楼主用巨型机来试试,要不然用国内的银河....计算机也行~0~Top
19 楼yjdn(人形机器)回复于 2005-06-05 02:25:34 得分 0
^0^Top
20 楼asp1113()回复于 2005-06-05 08:48:43 得分 0
100MB asp和 asp.net空间 50/1年
我看到了一个网站 100MB asp和 asp.net空间 现在促销,
同学们可以做一个简单的个人网站用来找工作 ,
支持 asp.net 一年才50元!不要错过哦!!!
速度非常快,一般公司企业 足够用了!
http://www.hi876.com
希望能对大家有帮助Top
21 楼softj(天地客人<最近很迷茫>)回复于 2005-06-05 09:48:56 得分 15
最好从根本上考虑,优化数据库,你把数据库结构,查询条件贴出来,大家帮你想办法设计数据库吧Top
22 楼uxen()回复于 2005-06-06 03:51:52 得分 0
百度和google那是号几百台服务器,你跟他比?Top
23 楼greenhornH(胖子)回复于 2005-06-06 09:05:27 得分 0
跟google比?
哎~比不起啊~人家google那可是钱堆起来的~
Top
24 楼greenhornH(胖子)回复于 2005-06-06 09:22:13 得分 5
海量数据,硬件配置很重要啊
通过软的,无法实现。Top
25 楼cemma(佩)回复于 2005-06-06 09:53:43 得分 5
用服务器组吧。Top




