• Sql Server 2005 实现Oracle 10g的rangelist/range等组合分区功能


     Sql Server 2005有分区功能,但Oracle已经有了组合分区功能,sql server 2005如何实现,能实现吗?

         Oracle 10g中,有rang-list/hash分区,在SQL server 2005中可以实现Rangelist,可以和oracle一样实现复合分区。

       在上一次优化中,客户使用的是SQL server 2005的标准版,由于标准版没有提供分区功能,后来使用了分区视图来实现分区功能。

     这给我实现Oracle 10g的复合分区功能,有了一个另类实现。我们可以通过分区视图-分区来实现复合分区功能。和Oracle一样,提供给前台的都是一个表,都是透明的

     

    现在我们看具体实例:

    分区函数

    CREATE PARTITION FUNCTION [zping.com.PF](int) AS RANGE LEFT FOR VALUES (-100, 0, 100)

    分区方案

    CREATE PARTITION SCHEME [zping.com.Ps] AS PARTITION [zping.com.PF] TO ([PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY])

    分区表1

    CREATE TABLE [dbo].[zping.com1](

        [id] [varchar](32) NOT NULL,

        [typeid] int not null,--第一个分区列

        [secondTypeId] [int] NULL, --第二个分区列

        [name] varchar(10)

     CONSTRAINT [PK_zping.com1] PRIMARY KEY NONCLUSTERED

     (

        [id] ASC,

        [typeid] ASC

     )

    ) ON [zping.com.Ps] ([secondTypeId])

    ALTER TABLE [dbo].[zping.com1] WITH

    CHECK ADD CONSTRAINT [CK_zping.com1] CHECK (([typeid]>=(1)))

    分区表2

    CREATE TABLE [dbo].[zping.com2](

        [id] [varchar](32) NOT NULL,

        [typeid] int not null,--第一个分区列

        [secondTypeId] [int] NULL, --第二个分区列

        [name] varchar(10)

     CONSTRAINT [PK_zping.com2] PRIMARY KEY NONCLUSTERED

     (

        [id] ASC,

        [typeid] ASC

     )

    ) ON [zping.com.Ps] ([secondTypeId])

    ALTER TABLE [dbo].[zping.com2] WITH

    CHECK ADD CONSTRAINT [CK_zping.com2] CHECK (([typeid]<(1)))

     

    建立分区视图

    create view [zping.com]

    as

    select * from dbo.[zping.com1]

    union all

    select * from dbo.[zping.com2]

     这里分区视图:实现了typeid1的范围分区。对于程序员来说,前台表是透明的为[zping.com]

     

     利用这种方式分区:可以灵活使用分区列,分区列不在是2个,可以是3个。可以实现多种类型的分区功能,具体大家可以自己下去研究

  • 相关阅读:
    HDOJ 5414 CRB and String 模拟
    Python标准库:内置函数all(iterable)
    Can not find a java.io.InputStream with the name [downloadFile] in the invocation stack.
    关于TabLayout+ViewPager组合实现多页面滑动
    互联网产品经理应该具备的技能(需求篇)
    【Android】利用自己定义View的重绘实现拖动移动,获取组件的尺寸
    mybatis自己主动生成mapper,dao,映射文件
    Java解析注解
    如日中天的Uber到底是用什么开发语言做到的?
    [Swift]LeetCode1002. 查找常用字符 | Find Common Characters
  • 原文地址:https://www.cnblogs.com/zping/p/1286878.html
Copyright © 2020-2023  润新知