数据库问题  (SQl Server)
1.一个表最大可以容纳多少记录,这跟字段的数量及类型有关吗?换句话,表的最大记录数是固定的(如1000个),还是?
2.假如一个表最多可容100个记录(应该是不止的),现有1000个记录,就得放在10个表中了。那么可以指定某些表进行查询吗?
比如以ta_1、ta_2、ta_3……做表名,现要查询ta_4~ta_7里的记录,能否实现?如何实现?
请各位前辈指教指教。谢谢了!

解决方案 »

  1.   

    数据表的最大列数 1024
     
    SELECT 语句的最大列数 4096
     
      

  2.   

    SQL2000 页和扩展盘区
    在 Microsoft® SQL Server™ 中,数据存储的基本单位是页。在 SQL Server 2000 中,页的大小是 8 KB。这意味着 SQL Server 2000 数据库每兆字节有 128 页。每页的开始部分是 96 字节的页首,用于存储系统信息,如页的类型、页的可用空间量、拥有页的对象的对象 ID 等。下表显示 SQL Server 2000 数据库的数据文件中的八种页类型。页类型 内容 
    数据 包含数据行中除 text、ntext 和 image 数据外的所有数据。 
    索引 索引项。 
    文本/图像 text、ntext 和 image 数据。 
    全局分配映射表、辅助全局分配映射表 有关已分配的扩展盘区的信息。 
    页的可用空间 有关页上可用空间的信息。 
    索引分配映射表 有关表或索引所使用的扩展盘区的信息。 
    大容量更改映射表 有关自上次执行 BACKUP LOG 语句后大容量操作所修改的扩展盘区的信息。 
    差异更改映射表 有关自上次执行 BACKUP DATABASE 语句后更改的扩展盘区的信息。 
    日志文件不包含页,而是包含一系列日志记录。数据页包含数据行中除 text、ntext 和 image 数据外的所有数据,text、ntext 和 image 数据存储在单独的页中。在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏移表。在行偏移表中,页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移表中的条目序列与页中行的序列相反。在 SQL Server 中,行不能跨页。在 SQL Server 2000 中,一行内最多包含的数据量是 8060 字节,不包括 text、ntext 和 image 数据。扩展盘区是一种基本单元,可将其中的空间分配给表和索引。一个扩展盘区是 8 个邻接的页(或 64 KB)。这意味着 SQL Server 2000 数据库每兆字节有 16 个扩展盘区。为了使空间分配更有效,SQL Server 2000 对只含少量数据的表不分配完整的扩展盘区。SQL Server 2000 有两种类型的扩展盘区: 统一扩展盘区由单个对象所有,扩展盘区中的所有八页只能由拥有该盘区的对象使用。
    混合扩展盘区最多可由 8 个对象共享。 
    通常从混合扩展盘区中向新表或新索引分配页。当表或索引增长到 8 页时,就变成统一扩展盘区。如果在现有表上创建索引,并且该表包含的行足以在索引中生成 8 页,则对该索引的所有分配都在统一扩展盘区内进行。
      

  3.   

    参考:SQL的最大容量规范:http://msdn.microsoft.com/zh-cn/library/ms143432(SQL.105).aspx
      

  4.   

    查询 表1,表2,表3 可以这样做(建议)
         在表结构上面加一列 '表名' 把所有的表建一个 视图
    select * from 表1
    union all
    select * from 表2
    ......
    然后查询视图 select * from 视图名 where 表名='表1' and 表名='表2'
      

  5.   

    列就是我们所谓的"字段", column