1。capacity:
MS SQL 7/2000的最小存储单位是data page, 1 page= 8 kb.,无论record多大,不可以跨page,所以the maximum size of single record =8k, fields数也就取决于每一个field的data type 的大小。
2。performance
即使根据以上的计算,你的table可以允许几百个field,但允许不代表应该,从performance 上讲,由于ms sql 读数据时是按page而不是record从harddisk往data cache读的,所以每一个page含的record越多,retrieving 就越快.fields数太多就造成以此相反的结果,对performance会带来很大的影响。
另外,如果table有clustered index, 当你作modification(insert,delete,update)时,data page就要作相应的调整,如果page含的record很少,那么page split就会频繁的发生,此对performance的影响不言而喻。
fields过多造成的结果还包括空间浪费,index size过大等。
至于fields多少合适由具体情况的分析来定.由于ms sql 不象oracle可以在control file里设定block的大小,所以在设计阶段就应该考虑.
MS SQL 7/2000的最小存储单位是data page, 1 page= 8 kb.,无论record多大,不可以跨page,所以the maximum size of single record =8k, fields数也就取决于每一个field的data type 的大小。
2。performance
即使根据以上的计算,你的table可以允许几百个field,但允许不代表应该,从performance 上讲,由于ms sql 读数据时是按page而不是record从harddisk往data cache读的,所以每一个page含的record越多,retrieving 就越快.fields数太多就造成以此相反的结果,对performance会带来很大的影响。
另外,如果table有clustered index, 当你作modification(insert,delete,update)时,data page就要作相应的调整,如果page含的record很少,那么page split就会频繁的发生,此对performance的影响不言而喻。
fields过多造成的结果还包括空间浪费,index size过大等。
至于fields多少合适由具体情况的分析来定.由于ms sql 不象oracle可以在control file里设定block的大小,所以在设计阶段就应该考虑.