需求是这样的,每天至少有1000万以上的GPS数据,打算先按月来分区,再按月里面的车辆编号再分一次,也就是子分区,请问是否支持,如不支持请教是否有好的办法解决?

解决方案 »

  1.   

    从建分区表的步骤来看,看似没有子分区表的功能的.
    1.建立分区函数 PARTITION FUNCTION ...
    2.建立分区架构 PARTITION SCHEME ...
    3.建立分区表 CREATE TABLE ... ON [分区架构]([分区字段])
      

  2.   

    分区表一般的应用是把表分区对应到数据库的多个文件组(File Group)上,
    多个文件组再对应到不同的磁盘分区或RAID.以此来减少处理的数据量,分散磁盘I/O等.
      

  3.   

    MySQL用过,
    http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html#partitioning-subpartitions
    SQLSERVER还没这么用过不清楚
      

  4.   

    实在没办法的话,能否考虑从业务逻辑方面进行优化呢?
    例如按月度来自动生成表,如 xxx01,xxx02,xxx03,... xxx12.
    再在这些月度表上按车辆编号建分区表.
      

  5.   

    按楼主的需求推算,每天1000万的数据,一个月3亿,一年36亿.
    即使是用了分区表,我想SQL Server也难以承受.
      

  6.   

    支持的!alter database [PatentEX] add filegroup [PatentEX19951231]
    ALTER DATABASE [PatentEX] ADD FILE ( NAME = N'PatentEX19951231', 
    FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\PatentEX19951231.ndf' , SIZE = 3072KB , 
    FILEGROWTH = 1024KB ) TO FILEGROUP [PatentEX19951231]alter database [PatentEX] add filegroup [PatentEX20001231]
    ALTER DATABASE [PatentEX] ADD FILE ( NAME = N'PatentEX20001231', 
    FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\PatentEX20001231.ndf' , SIZE = 3072KB , 
    FILEGROWTH = 1024KB ) TO FILEGROUP [PatentEX20001231]alter database [PatentEX] add filegroup [PatentEX20021231]
    ALTER DATABASE [PatentEX] ADD FILE ( NAME = N'PatentEX20021231', 
    FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\PatentEX20021231.ndf' , SIZE = 3072KB , 
    FILEGROWTH = 1024KB ) TO FILEGROUP [PatentEX20021231]alter database [PatentEX] add filegroup [PatentEX20041231]
    ALTER DATABASE [PatentEX] ADD FILE ( NAME = N'PatentEX20041231', 
    FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\PatentEX20041231.ndf' , SIZE = 3072KB , 
    FILEGROWTH = 1024KB ) TO FILEGROUP [PatentEX20041231]alter database [PatentEX] add filegroup [PatentEX20051231]
    ALTER DATABASE [PatentEX] ADD FILE ( NAME = N'PatentEX20051231', 
    FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\PatentEX20051231.ndf' , SIZE = 3072KB , 
    FILEGROWTH = 1024KB ) TO FILEGROUP [PatentEX20051231]alter database [PatentEX] add filegroup [PatentEX20061231]
    ALTER DATABASE [PatentEX] ADD FILE ( NAME = N'PatentEX20061231', 
    FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\PatentEX20061231.ndf' , SIZE = 3072KB , 
    FILEGROWTH = 1024KB ) TO FILEGROUP [PatentEX20061231]alter database [PatentEX] add filegroup [PatentEX20071231]
    ALTER DATABASE [PatentEX] ADD FILE ( NAME = N'PatentEX20071231', 
    FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\PatentEX20071231.ndf' , SIZE = 3072KB , 
    FILEGROWTH = 1024KB ) TO FILEGROUP [PatentEX20071231]alter database [PatentEX] add filegroup [PatentEX20080630]
    ALTER DATABASE [PatentEX] ADD FILE ( NAME = N'PatentEX20080630', 
    FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\PatentEX20080630.ndf' , SIZE = 3072KB , 
    FILEGROWTH = 1024KB ) TO FILEGROUP [PatentEX20080630]
      

  7.   

    sqlserver的分区功能和oracle比,差距很大。
    明确的说sqlserver2008不支持复合子分区表
      

  8.   

    oracle支持subpartition!  ^_^
      

  9.   

    不支持,最新的sql2011也不支持
      

  10.   

    SQLSERVER在分区表上面还有很长的路要走:
    1.各种复合分区组合
    2.按小时的分区目前也还没有
    3.参看ORACLE11G的分区表功能就知道差距了,~~