MS Sql Server数据库分区

什么是数据库分区?

  数据库分区是一种对表的横向分割,Sql server 2005企业版和之后的Sql server版本才提供这种技术,这种对表的横向分割不同于2000中的表分割,它对访问用户是透明的,用户并不会感觉的表被横向分割了。(2000中的表横向分割是建n个表例如按时间建表每月一个表,表名不同,最后需要做一个大视图)

  为什么要分区?

  显而易见分区是为了提高数据库的读写性能,提高数据库的效率;

  分区是否总是可以提高效率?

  分区是一把双刃剑,并不总能提高效率,这和具体情况有关系。

  之所以有分区技术,分区技术用的好的话可以提高性能,是因为一方面分区把一大块数据分成了n小块,这样查询的时候很快定位到某一小块上,在小块中寻址要快很多;另一方面CPU比磁盘IO快很多倍,而硬件上又有多个磁盘,或者是RAID(廉价磁盘冗余阵列),可以让数据库驱动CPU同时去读写不同的磁盘,这样才有可能可以提高效率。

  分区在有些时候并不能提高读写效率,比如说我们经常看到的按照日期字段去分区MSDN例子,这个实例中是按照记录的生成时间来分区的,把一年的数据分割成12个分区,每月一个。这样的分区导致分区并不能实现CPU同步写并提高写入性能,因为在同一个时段CPU总是要写入到最新的那一个分区对应的磁盘中。另一个问题是:这样分区是否可以提高读取性能呢?答案是不一定,要看根据什么字段来查询,如果是根据时间来查询,根据时间生成报表那么这种分区肯定会提高查询的效率,但是如果是按照某个客户查询客户最近1年内的账单数据,这样数据分布到不同的分区上,这样的话效率就不一定能提高了,这要看数据在同一个分区上连续分布的读性能高,还是CPU从几个磁盘上同步读取,然后在合并数据的性能更高一些,这和读取数据的记录数也有关系。

  如何分区?用什么字段做分区依据?

  具体如何分区和涉及的业务有关系,要看业务上最经常的写入和读取操作是什么,然后再考虑分区的策略。

  既然与具体业务相关,我们就假定一个业务环境,假如我们要做一个论坛,对论坛的帖子和回复表进行分区。

  论坛中最常见的写操作是1)发帖 2)回复帖子, 最常见的读操作是

  1) 根据帖子id显示帖子详情和分页的帖子回复
  2) 根据帖子版面帖子列表页根据版面id分页读取帖子列表数据

  怎么分区更合适呢?现在还没有准确答案,我有两种可能的方案,写下来,大家讨论看看。

  方案1. 根据帖子ID区域段分区(1-300w一个分区、300w-600w一个分区…),这样理论上可以提高帖子详细页的读取速度,而对于写操作性能没有益处,对于根据版面id读取帖子列表页有可能有益

  方案2. 根据版面id进行分区,这样对于写性能应该有提高,不同的分区对应不同的版面,当有两个版面同时有发帖回帖操作时,有可能可以并发写。对于根据版面id获得帖子列表页数据也可以提高性能,而对于帖子详细信息页没有性能影响。

  多大的数据量才需要分区?

  这个问题我只能说一个内部标准,如果一张表的记录超过在超过1000w,并以每月百万的数据量增长,那就需要分区。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PB SQL Server 数据库同步是一种将PowerBuilder应用程序的数据SQL Server数据库中的数据进行同步的技术。 在PowerBuilder中,可以通过使用DataWindows和DataStores来访问和操作数据库。而PB SQL Server 数据库同步的目的是确保PowerBuilder应用程序的数据SQL Server数据库中相应的数据保持同步。 PB SQL Server 数据库同步的步骤一般包括以下几个方面: 1. 配置数据库连接:首先需要在PowerBuilder应用程序中配置连接到SQL Server数据库的相关信息,如服务器地址、数据库名称、用户名和密码等。 2. 创建DataWindow对象:根据需要同步的数据表,在PowerBuilder中创建相应的DataWindow对象,并设置查询语句和列与字段的对应关系。 3. 同步数据:通过调用DataWindow对象的Retrieve方法,可以从SQL Server数据库中获取最新的数据。然后,可以在应用程序中使用这些数据进行相应的操作,如显示、修改、删除等。 4. 更新数据:当在应用程序中修改了数据后,可以通过调用DataWindow对象的Update方法将修改的数据保存回SQL Server数据库。 需要注意的是,为了确保同步的准确性,应该遵循一定的同步策略。例如,可以根据业务需求定期或实时地进行数据的同步,以保证数据的一致性。 总的来说,PB SQL Server 数据库同步是一种将PowerBuilder应用程序的数据SQL Server数据库进行同步的技术,通过配置数据库连接、创建DataWindow对象、同步数据和更新数据等步骤,可以实现数据的同步和一致性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值