科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道专家点评:如何选择数据库的分割方式(3)

专家点评:如何选择数据库的分割方式(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

分割是将表分散到可能位于不同的数据库或者服务器上的多个子表中,这样做的目的是改善读写性能。

作者:Hilary Cotter 来源:互联网 2007年9月12日

关键字: 分割 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件
分布式分割视图

  在SQL Server 7中,查询优化器将会考虑查看执行计划中的约束。如果你在某个字段上有检查约束,并且你的SARG参考了这个字段,那么只有正确的分割可以在执行计划中参考。考虑一个在姓者个字段上有检查约束的表,如下所示:

  CONSTRAINT [CK_Employee] CHECK ([LastName] > 'a' and [LastName] < 'b')

  这样的表只能接受姓以“A”开头的雇员。那么说你有一个分布式的拓扑结构,包含了26个字母,一个表包含一个字母,那么这些表需要在一个统一拥有这26个表的视图中参考。

  Select * from EmployeeTableView where LastName ='a'

  然而,插入、更新和删除都需要在正确的基本表上执行。在SQL Server 2000种,你需要执行数据管理语言来操作这个视图,以及参考的正确的基本表。

  SQL Server 2005中的分割

  SQL Server 2005,于2005年11月发布,引入了一些数据库分割方面的加强,改善了性能并减小了有关管理分布式数据集的管理负担。

  在SQL Server 之前的版本中,需要你手工创建表来形成分割。在我们上面举出的例子中,我们需要创建26个表(每个表代表一个字母)来形成雇员的分割。在SQL Server 2005中,你可以创建一个分割函数,然后通过这个函数来分割表,同时SQL Server 还会根据你的范围函数确定的不同分割内的数据分散。这看起来像是一个表。出于性能的原因,你也许还想要分割的表扩展到多个文件群(可能在不同的磁盘或者阵列中),每一个分割都分配到他自己的文件群中。要做到这一点,你就需要创建一个分割计划,其中包括了所有的文件群来形成你的分割,然后创建你的表来使用这个分割计划,代替普通的文件群。

  你还可以创建分割索引。在默认情况下,在一个分割上创建的索引可以与分个表使用同一个分割计划。有关如何使用SQL Server 2005的分割能力的最好资源就是Kimberly Tripp的白皮书。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章