zoukankan      html  css  js  c++  java
  • SQL code for the partitoned example

    --
    --Chapter 12 SQL code for the partitoned example.
    --
     
    USE AdventureWorks2008;

    -- Create the partition function
    CREATE PARTITION FUNCTION [OrderDateRangePFN](datetime)
    AS RANGE RIGHT
    FOR VALUES (N'2001-01-01 00:00:00', N'2002-01-01 00:00:00',
    N'2003-01-01 00:00:00', N'2004-01-01 00:00:00');


    -- Create the partition scheme
    CREATE PARTITION SCHEME [OrderDatePScheme]
    AS PARTITION [OrderDateRangePFN]
    TO ([Primary], [Primary], [Primary], [Primary], [Primary]);


    -- Create two tables: SalesOrderHeader is the partitioned table and SalesOrderHeaderOLD is the non-partitioned table

    CREATE TABLE [dbo].[SalesOrderHeader](
     [SalesOrderID] [int] NULL,
     [RevisionNumber] [tinyint] NOT NULL,
     [OrderDate] [datetime] NOT NULL,
     [DueDate] [datetime] NOT NULL,
     [ShipDate] [datetime] NULL,
     [Status] [tinyint] NOT NULL
    ) ON [OrderDatePScheme]([OrderDate]);

    CREATE TABLE [dbo].[SalesOrderHeaderOLD](
     [SalesOrderID] [int] NULL,
     [RevisionNumber] [tinyint] NOT NULL,
     [OrderDate] [datetime] NOT NULL  ,
     [DueDate] [datetime] NOT NULL,
     [ShipDate] [datetime] NULL,
     [Status] [tinyint] NOT NULL);

    -- Load daata into the partitioned table
    INSERT INTO SalesOrderHeader
    SELECT [SalesOrderID],[RevisionNumber], [OrderDate],[DueDate],[ShipDate],[Status] FROM SALES.[SalesOrderHeader];

    CREATE CLUSTERED INDEX SalesOrderHeaderCLInd
    ON SalesOrderHeader(OrderDate) ON OrderDatePScheme(OrderDate);

    CREATE CLUSTERED INDEX SalesOrderHeaderOLDCLInd ON SalesOrderHeaderOLD(OrderDate);

    ALTER  TABLE [DBO].[SalesOrderHeaderOLD]  WITH CHECK  ADD CONSTRAINT [CK_SalesOrderHeaderOLD_ORDERDATE] CHECK  ([ORDERDATE]>=('2003-01-01 00:00:00') AND [ORDERDATE]<('2004-01-01 00:00:00'));

    -- Verify data in the partitioned table
    SELECT $partition.OrderDateRangePFN(OrderDate) AS 'Partition Number' ,min(OrderDate) AS 'Min Order Date' , max(OrderDate) AS 'Max Order Date',count(*) AS 'Rows In Partition'
    FROM SalesOrderHeader
    GROUP BY $partition.OrderDateRangePFN(OrderDate);


    -- Switch the data from partition 4 into the SalesOrderHeaderOLD table
    ALTER TABLE SalesOrderHeader
    SWITCH PARTITION 4 TO SalesOrderHeaderOLD;


    -- Switch the data from SalesOrderHeaderOLD back to partition 4
    ALTER TABLE SalesOrderHeaderOLD   
    SWITCH TO SalesOrderHeader PARTITION 4;


    --To merge a partition range
    ALTER PARTITION FUNCTION OrderDateRangePFN()
    MERGE RANGE ('2003-01-01 00:00:00');



    -- To split a partition range
    ALTER PARTITION SCHEME OrderDatePScheme NEXT USED [Primary];
    ALTER PARTITION FUNCTION OrderDateRangePFN()
    SPLIT RANGE ('2003-01-01 00:00:00');

  • 相关阅读:
    网页一屏到底有多大 1024*768 800*600 网页设计大小 网页设计尺寸
    去掉VS2005中水晶报表的登录界面(ZT)
    Visual Studio 2005 IDE 技巧和窍门
    asp.net大页面载入时以进度条显示zt
    从webservice读取string[]至downlist,增加onchange事件,更改相关显示。
    在asp.net Sql server (可以是存储过程)中使用事务回滚
    得到页面所有的form内对象数值——————为一个控件加一个客户端属性
    Agile Web Development 4th ed. Can't mass assign.error
    Ubuntu12.04中安装和配置Java JDK(转)
    Javascript没有块级作用域
  • 原文地址:https://www.cnblogs.com/shihao/p/2511940.html
Copyright © 2011-2022 走看看