none
文件组,文件,并发,CPU RRS feed

  • 问题

  •  大家能谈谈表分区的一些知识吗?文件组,文件,并发,CPU他们在查询或者存储的时候是什么关系!是不是一定要一个分区对应一个文件组,那如果我100个分区难道要100个文件组才能提高性能吗?数据库查询的时候利用多CPU,是多文件组才能更好的利用多CPU还是多文件才能更好的利用CPU呢?
    2012年12月28日 1:02

答案

  • 这事儿没有通常之说,不同磁盘配置不同效果(可管理性与性能)。。不然DBA、存储工程师们都该退出江湖了

    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    • 已标记为答案 杨国防 2013年1月7日 8:50
    2012年12月29日 0:37

全部回复

  • 没有人能“简洁”地回答这个问题,淡定点去读下相关资料吧,虽然枯燥或无味

    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    2012年12月28日 1:09
  • 提供一些基本原则的思路你可以参考一下

    我们一般建议将文件组分为3个部分:

    第一个部分系统文件组也就是默认Primary文件组,数据库级别的对象都是存储在这个文件组上。

    第二个是数据文件组,所有用户表的数据都是存储在这个文件组上,可以分为多个。

    第三个是索引文件组,所有用户表的索引数据都是存储在这个文件组中,可以分为多个。

    充分利用数据文件的并行特性。还有只读文件组(文件组属性为只读,方便备份最小化数据),文件流文件组(Filestream)容许以NT文件系统来存储BLOB(二进制大对象)数据,推荐平均1MB以上使用。

    文本文件组,将某些特殊数据单独存放在单一数据文件组内。


    family as water

    2012年12月28日 1:59
  • Certain partition processes like partition split/merge perform much better with single file group, but you need separate file group for partition if you want to backup specific partition of the table. For better i/o, you can create multiple files in single file group. That will be good enough for most cases.
    • 已编辑 rmiao 2012年12月28日 18:54
    2012年12月28日 2:14
  • 提供一些基本原则的思路你可以参考一下

    我们一般建议将文件组分为3个部分:

    第一个部分系统文件组也就是默认Primary文件组,数据库级别的对象都是存储在这个文件组上。

    第二个是数据文件组,所有用户表的数据都是存储在这个文件组上,可以分为多个。

    第三个是索引文件组,所有用户表的索引数据都是存储在这个文件组中,可以分为多个。

    充分利用数据文件的并行特性。还有只读文件组(文件组属性为只读,方便备份最小化数据),文件流文件组(Filestream)容许以NT文件系统来存储BLOB(二进制大对象)数据,推荐平均1MB以上使用。

    文本文件组,将某些特殊数据单独存放在单一数据文件组内。


    family as water


    数据和索引分开不一定有好处。这好像是SQL 2000时代的一篇最佳实践里面提到的内容。

    想不想时已是想,不如不想都不想。

    2012年12月28日 7:38
    版主
  • 楼上几位的意见很正确。

    简单总结下,文件组更多的用途是为了管理,而不是查询性能。通常一个文件组建议有多个文件以提高性能。


    想不想时已是想,不如不想都不想。

    2012年12月28日 7:45
    版主
  • 这事儿没有通常之说,不同磁盘配置不同效果(可管理性与性能)。。不然DBA、存储工程师们都该退出江湖了

    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    • 已标记为答案 杨国防 2013年1月7日 8:50
    2012年12月29日 0:37
  • 不同的情况不同的环境配置是不同的,没有一个解决方案能通吃所有情况,每种解决方案都各有利弊

    以前我也以为,表分区可以磁盘I/O的负载均衡,但是全部数据文件满载之后,SQLSERVER只会随机选择一个

    一个数据文件做增长,还有分区多了,那么查询的时候本来要扫描一个分区就可以找到数据,现在要扫描多个

    分区才能找到要找的数据,这些都是要靠积累

    不同场景不同解决方案


    给我写信: QQ我:点击这里给我发消息

    2012年12月29日 12:49