分区视图举例:create table [2002年数据] (编号 int,年 int check(年=2002) default 2002,数据 int,primary key(编号,年))
 
create table [2003年数据] (编号 int,年 int check(年=2003) default 2003,数据 int,primary key(编号,年))create view 所有数据 as
select * from [2002年数据] 
union all
select * from [2003年数据] 
go

解决方案 »

  1.   

    create table [2003年数据] (编号 int,年 int 
    check(年=2003) ---这个是关键
     default 2003,数据 int,primary key(编号,年))
      

  2.   

    谢谢各位回复!或许这个问题换个问法更容易回答。那就是:在一般情况下,一张表存放多少条记录比较适中,1万?5万?或者?还有,就是在sql2000中,多少张表是上限?(不考虑那些超强主机)1万?5000?或者?谢谢!
      

  3.   

    1万?5万?要看具体情况你一条记录多大?pc服务器吗?小型机吗?配置怎样?尽量大 5万应该可以,关键是你的索引要建好,这才是速度的关键----------------------------
    第一个表说明对于所有 Microsoft® SQL Server™ 2000 版本都相同的最大容量。第二个和第三个表说明因 SQL Server 2000 的版本和操作系统的不同而异的容量。下表说明在 Microsoft SQL Server 数据库中定义的,或在 Transact-SQL 语句中引用的各种对象的最大值(数量或大小)。下表不包含 Microsoft® SQL Server 2000™ Windows® CE 版。  最大值(数量或大小) 
    对象    SQL Server 7.0      SQL Server 2000 
    批处理大小 65,536 * 网络数据包大小1 65,536 * 网络数据包大小1 
    每个短字符串列的字节数 8,000 8,000 
    每个 text、ntext、或 image 列的字节数 2 GB-2 2 GB-2 
    每个 GROUP BY、ORDER BY的字节数 8,060   
    每个索引中的字节数 900 9002 
    每个外键的字节数 900 900 
    每个主键的字节数 900 900 
    每行字节数 8,060 8,060 
    存储过程源文本中的字节数 批处理大小之较小者或者 250 MB 批处理大小之较小者或者 250 MB 
    每个数据表的聚集索引数 1 1 
    GROUP BY、ORDER BY 中的列数 只受字节数限制  
    GROUP BY WITH CUBE 或 WITH ROLLUP 语句中的列数或表达式数目 10  
    每个索引的列数 16 16 
    每个外键的列数 16 16 
    每个主键的列数 16 16 
    每个基础数据表的列数 1,024 1,024 
    每个SELECT 语句的列数 4,096 4,096
    每个INSERT 语句的列数 1,024 1,024 
    每个客户端的连接个数 已配置连接的最大值 已配置连接的最大值 
    数据库大小 1,048,516 TB3 1,048,516 TB3 
    每个 SQL Server 实例的数据库个数 32,767 32,767 
    每个数据库的文件组个数 256 256 
    每个数据库的文件个数 32,767 32,767 
    文件大小(数据) 32 TB 32 TB 
    文件大小(日志) 4 TB 32 TB 
    每个数据表的外键表引用 253 253 
    标识符长度(以字符计) 128 128 
    每台计算机的实例数 暂缺 16 
    包含 SQL 语句的字符串长度(批处理大小) 65,536 * 网络数据包大小1 65,536 * 网络数据包大小1 
    每个连接的锁数 每个服务器的最大锁数 每个服务器的最大锁数 
    每个 SQL Server 实例的锁数 2,147,483,647(静态)
    SQL Server 40% 的内存(动态) 2,147,483,647(静态)
    SQL Server 40% 的内存(动态) 
    嵌套存储过程层数 32 32 
    嵌套子查询 32 32 
    嵌套触发器层数 32 32 
    每个数据表的非聚集索引个数 249 249 
    SQL Server 实例中同时打开的对象个数4 2,147,483,647(或可用内存) 2,147,483,647(或可用内存) 
    每个数据库中的对象个数 2,147,483,6474 2,147,483,6474 
    每个存储过程的参数个数 1,024 1,024 
    每个数据表的 REFERENCE 个数 253 253 
    每个数据表的行数 受可用存储资源限制 受可用存储资源限制 
    每个数据库的数据表个数 受数据库中的对象个数限制4 受数据库中的对象个数限制4 
    每个 SELECT 语句的数据表个数 256 256 
    每个数据表的触发器个数 受数据库中的对象个数限制4 受数据库中的对象个数限制4 
    每个数据表的 UNIQUE 索引个数或约束个数 249个非聚集索引和 1 个聚集索引 249个非聚集索引和 1 个聚集索引 
    1 网络数据包大小是表格格式数据方案 (TDS) 数据包的大小,该数据包用于应用程序和关系数据库引擎之间的通讯。默认的数据包大小为 4 KB,由 network packet size 配置选项控制。
    2 在 SQL Server 2000 中,任何键的最大字节数不能超过 900。可以使用可变长度的列来定义键,只要在这种列中不插入数据超过 900 字节的行,其最大大小就可以在 900 以上。有关更多信息,请参见索引键的最大值。
    3 当使用 SQL Server 2000 Desktop Engine 或 Microsoft 数据引擎 (MSDE) 1.0 时,数据库的大小不能超过 2 GB。
    4数据库对象包括所有的表、视图、存储过程、扩展存储过程、触发器、规则、默认值及约束。一个数据库中所有对象的总数不得超过 2,147,483,647。 
    说明  SQL Server 2000 中文版不支持英文版的 NT 4.0 企业版。SQL Server 2000 版本支持的最大处理器数
    下表列出各 SQL Server 2000 版本中的数据库引擎在对称多处理 (SMP) 计算机上能够支持的处理器数。
      

  4.   

    看不懂耶!机器是双AMD(MP2200+,好像是),1G内存,win2k,RAID5,希捷捷豹(10000转那种)每条记录20个字段,但数据量不大,大多是些参数,即使是文本也不会超过10K。最好的办法是否就是实战的检验,如果因为每表数据量大而出现反应慢,再继续分表,这样最好了,是吗?还有,索引越少越好,是吗?如果多了,就失去索引的意义了,我听别人这样说过。谢谢!
      

  5.   

    如果
    这300万条记录都是经常被访问到的。而且基本都用到递归来生成树结构。
    分拆没有意义
    优化索引
    将TEMPDB移到RAID0硬盘阵列上
    将索引、主要表健在不同阵列上
    生机硬件
      

  6.   

    TO:caiyunxia(monkey)这300万记录是经常被访问,也用递归生成树,但仍然有明确的分类。
    比如说有10000个人,每人300条记录,但每个人之间是没有联系的。我觉得还是分表好,但就是不知多少数据量一张更妥当。
      

  7.   

    这些数据是经常变化的吗,如果不是可以考虑用OLAP,查询更好一些