数据库服务器硬盘分区,SQL Server 分区原理 物理磁盘和逻辑磁盘是如何做到并行处理数据的?...

SQL Server 的分区也使用过, 正常的操作是将数据库文件分散在不同的文件组中,然后不同的文件组分别置于不同的磁盘中以提升数据的查询效率.

打比方说,目前有3个文件组 A,B,C 每一个文件组都有一个独立的数据文件,且这三个文件组分别放置在磁盘: D,E,F中.

数据表是一张大表,按年份分了3个区(2001,2002,2003),分区应用于A,B,C三个文件组, 所以表分区,文件组,磁盘的对应关系就是:

Partition 2001 - File Group A - Disk D

Partition 2002 - File Group B - Disk E

Partition 2003 - File Group C - Disk F

问题1 - 如果我只查询 2001年的数据, SQL Server 是如何知道一定从 Partition 2001 中寻找? 或者说SQL Server 是如何知道要准确定位到哪一个分区去提取需要的数据?

问题2 - 如果同时查询了 2001年和2002年的数据, SQL Server 又是如何定位到两个区去查询数据? 是并行查询数据以提高查询效率还是依次提取数据?

问题3 - 系统是如何做到提高查询效率的, 因为按照我的理解, 不管是查哪一年的数据, 都是到对应的文件组 A, B, C中查, 虽然文件组分布在不同的磁盘D,E,F中,但是D,E,F 仅仅是逻辑磁盘. 如果同时查询这几年的数据, 对于磁盘的寻道时间来说它们都是作用于同一个硬盘,即物理磁盘上. 很显然 D,E,F不是不同的物理磁盘,这种分区是如何实现3个查询同时到各自的磁盘上去查数据以提高查询效率的.  我这样问的依据是我经常看到类似于这样的说法:"SQL Server 2005引入的表分区技术,让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理性能以优化查询性能"但很明显我上述提到的文件组虽然位于不同的磁盘,但是这些都不是物理磁盘,物理磁盘就只有一个,它们都是基于同一个物理磁盘的不同的逻辑磁盘.

问题4 - 想到之前我们有将10个以上的文件组分布在两个不同的磁盘比如 E,F中. 这样每一个磁盘就支持了5个文件组, 每一个文件组有独立的表分区数据. 尽管如此,基于问题2, 不管每个磁盘有几个文件组,所有的磁盘都是基于同一个物理磁盘的不同逻辑磁盘. 所以,我理解的是不管每一个磁盘放几个文件组,或者把所有文件组放在一个逻辑磁盘中,它们都不是将数据分散到了不同的物理磁盘中,也就是说做不到并行处理,又如何提高查询性能?

再这么想下去就是分不分区就没有什么用了,反正都是在一个物理磁盘上跑数据.

希望有理解这个原理的朋友们给与纠正与提示.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值