分区表

关于分区表和分区索引

人盡茶涼 提交于 2020-03-18 19:34:14
关于 分区表 和 分区索引 (About Partitioned Tables and Indexes) 对于10gR2而言,基本上可以分成几类: v Range(范围)分区 v Hash(哈希)分区 v List(列表)分区 v 以及组合分区:Range-Hash,Range-List。 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区依赖列不能是lob,long之类数据类型,每个表的分区或子分区数的总数不能超过1023个。 对于索引组织表,只能够支持普通分区方式,不支持组合分区,常规表的限制对于索引组织表同样有效,除此之外呢,还有一些其实的限制,比如要求索引组织表的分区依赖列必须是主键才可以等。 注:本篇所有示例仅针对常规表,即堆组织表! 对于索引,需要区分创建的是全局索引,或本地索引: l 全局索引(global index):即可以分区,也可以不分区。即可以建range分区,也可以建hash分区,即可建于分区表,又可创建于非分区表上,就是说,全局索引是完全独立的,因此它也需要我们更多的维护操作。 l 本地索引(local index):其分区形式与表的分区完全相同,依赖列相同,存储属性也相同。对于本地索引,其索引分区的维护自动进行,就是说你add/drop/split/truncate表的分区时

创建与管理Oracle的分区表和本地索引

ぃ、小莉子 提交于 2020-03-18 19:32:50
在网上看到eygle写的一篇关于分区表和本地索引的文章,感觉总结的挺好,特转了过来。 Oracle 的 分区技术 在某些条件下可以极大的提高 查询 的性能,所以被广泛采用。从产品上说,分区技术是Oracle企业版中独立收费的一个 组件 。以下是对于分区及 本地索引 的一个示例。   首先根据字典表创建一个测试分区表: SQL> connect eygle/eygle   Connected.   SQL> CREATE TABLE dbobjs   2 (OBJECT_ID NUMBER NOT NULL,   3 OBJECT_NAME varchar2(128),   4 CREATED DATE NOT NULL   5 )   6 PARTITION BY RANGE (CREATED)   7 (PARTITION dbobjs_06 VALUES LESS THAN (TO_DATE('01/01/2007', 'DD/MM/YYYY')),   8 PARTITION dbobjs_07 VALUES LESS THAN (TO_DATE('01/01/2008', 'DD/MM/YYYY')));   Table created.   SQL> COL segment_name for a20   SQL> COL PARTITION_NAME for a20  

表分区的操作三步走:

 ̄綄美尐妖づ 提交于 2020-03-17 13:58:52
1.创建分区函数 CREATE PARTITION FUNCTION xx1(int) 解释:在当前数据库中创建一个函数,该函数可根据指定列的值将表或索引的各行映射到分区。 语法: 1 2 3 4 CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type ) AS RANGE [ LEFT | RIGHT ] FOR VALUES ( [ boundary_value [ ,...n ] ] ) [ ; ] 创建分区的范围: 1 AS RANGE LEFT FOR VALUES (10000, 20000); 注释:创建分区函数:myRangePF2,以INT类型分区,分三个区间,10000以内在A 区,1W-2W在B区,2W以上在C区. 2.创建分区架构: 1 2 3 4 5 CREATE PARTITION SCHEME myRangePS2 AS PARTITION xx1 TO (a, b, c); 注释:在分区函数XX1上创建分区架构:myRangePS2,分别为A,B,C三个区间 A,B,C分别为三个文件组的名称,而且必须三个NDF隶属于这三个组,文件所属文件组一旦创建就不能修改 3.对表进行分区 1 2 3 4 5 6 7 CREATE TABLE [dbo].[AvCache](

SqlServer2005数据库分区

扶醉桌前 提交于 2020-03-17 13:55:20
转载出处: http://blog.csdn.net/doyouknowm/archive/2009/08/20/4466072.aspx 1 -- 进行演示操作前, 先备份, 以便可以在演示完成后, 恢复到原始状态 2 USE master 3 -- 备份 4 BACKUP DATABASE AdventureWorks 5 TO DISK = ' AdventureWorks.bak ' 6 WITH FORMAT 7 8 -- -- 恢复 9 -- RESTORE DATABASE AdventureWorks 10 -- FROM DISK = 'AdventureWorks.bak' 11 -- WITH REPLACE 12 GO 13 14 -- ========================================= 15 -- 转换为分区表 16 -- ========================================= 17 USE AdventureWorks 18 GO 19 20 -- 1. 创建分区函数 21 -- a. 适用于存储历史存档记录的分区表的分区函数 22 DECLARE @dt datetime 23 SET @dt = ' 20020101 ' 24 CREATE PARTITION FUNCTION PF

分区表

試著忘記壹切 提交于 2020-03-17 12:21:04
--========================================= -- 转换为分区表 --========================================= -- 1. 创建分区函数 -- a. 适用于存储历史存档记录的分区表的分区函数 DECLARE @dt datetime SET @dt = '20020101' CREATE PARTITION FUNCTION PF_HistoryArchive(datetime) AS RANGE RIGHT FOR VALUES ( @dt, DATEADD( Year , 1, @dt)) -- b. 适用于存储历史记录的分区表的分区函数 --DECLARE @dt datetime SET @dt = '20000101' CREATE PARTITION FUNCTION PF_History(datetime) AS RANGE RIGHT FOR VALUES ( @dt, DATEADD( Month , 1, @dt), DATEADD( Month , 2, @dt), DATEADD( Month , 3, @dt), DATEADD( Month , 4, @dt), DATEADD( Month , 5, @dt), DATEADD( Month , 6, @dt),

知识点小结~4

我的梦境 提交于 2020-03-15 11:23:11
分区: 每一个扇区512字节。 centos6以允许柱面和扇区为单位分区 MBR包括三部分内容(共512字节): 分区表:指出有几个分区,每个分区的起始扇区号、大小和操作系统类型及其他特性。(64字节) 自举装入程序:PC机启动时由BIOS装入内存执行。 如果装了多个操作系统,将根据选择去读出对应分区的 sector程序装入内存,执行该操作系统的自举程序。(446字节) 校验信息:检验是否正确。(2字节) boot sector应当包含如下信息: 本分区操作系统类型 数据区大小 根目录区允许最大目录项(在根目录区最多创建多少个文件) 如果该分区安装了操作系统并被设置为活动分区,那还会包含一段“引导程序”;如果没安装系统,则该分区引导扇区为空或其中的数据是无效的。 MBR和boot sector应该是由上至下的关系: 1 启动顺序有先后。PC机启动时,先执行MBR,再根据选择执行某个分区下的boot sector。 (选择执行的boot sector所在分区就是活动分区。“用户选择一个操作系统” 实际上也就是选择一个分区作为活动分区。) 2 boot sector可以为空(没装系统),但MBR必须包含内容。 3 MBR必须被读取并执行;引导扇区根据选择执行,有的甚至可以不执行(即上文中的”数据是无效的”)。 4 MBR实际上包含的内容也比boot sector广泛

HIVE-分区表详解以及实例

懵懂的女人 提交于 2020-03-13 12:46:13
HIVE中的分区表是什么,我们先看操作,然后再来体会。 创建一个分区表,分区的单位时dt和国家名 hive> create table logs(ts bigint,line string) > partitioned by (dt String,country string); 接下来我们创建要给分区 hive> load data local inpath '/root/hive/partitions/file1' into table logs > partition (dt='2001-01-01',country='GB'); 上面语句的效果是在hdfs系统上建立了一个层级目录   -logs     -dt=2001-01-01     -country=GB 我们继续执行下面语句,先看一下什么效果 hive> load data local inpath '/root/hive/partitions/file2' into table logs > partition (dt='2001-01-01',country='GB'); Loading data to table default.logs partition (dt=2001-01-01, country=GB) OK Time taken: 1.379 seconds hive> load data

fdisk时WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.

岁酱吖の 提交于 2020-03-13 01:55:24
现象:划分磁盘有警告, fdisk可以看到 lsblk却没有 partprobe刷新分区还是不行 放大招 #reboot # 这个是最好的方法(重启后新的分区表不一定生效) 或 # partx -a /dev/sda # 获得新分区表(通过命令partx -a /dev/sda,重新获得分区表,这个还挺好使的) 来源: https://www.cnblogs.com/-abm/p/12483703.html

Greenplum数据分布和分区策略

微笑、不失礼 提交于 2020-03-12 12:15:48
Greenplum是一个大规模并行处理数据库,它由一个master和多个segment组成,其数据按照设定的分布策略分布于各个segment上。数据表的单个行会被分配到一个或多个segment上,但是有这么多的segment,它到底会被分到哪个或哪些segment上呢?分布策略会告诉我们。 分布策略 在Greenplum 5中,有2种分布策略: 哈希分布 随机分布 在Greenplum 6中,添加了另一个策略: 哈希分布 随机分布 复制分布 数据表的单个行会被分配到一个或多个segment上,但是有这么多的segment,它到底会被分到哪个或哪些segment上呢?分布策略会告诉我们。 哈希分布: 要使用这一策略,需要在创建表使用 “DISTRIBUTED BY(column,[...])” 子句。 散列算法使分布键将每一行分配给特定segment。相同值的键将始终散列到同一个segment。选择唯一的分布键(例如Primary Key)将确保较均匀的数据分布。哈希分布是表的默认分布策略。 如果创建表时未提供DISTRIBUTED子句,则将PRIMARY KEY(如果表真的有的话)或表的第一个合格列用作分布键。什么类型的列是合格列呢?几何类型或用户自定义数据类型的列不能用作Greenplum分布键列。如果表中没有合格的列,则退化为随机分布策略。 但是

sqlserver 2005新特性

。_饼干妹妹 提交于 2020-03-11 13:11:14
一、数据库设计方面 1、字段类型。 varchar(max)\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。但是这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?是否碎片会引发效率问题?这都是需要进一步探讨的东西。 varbinary(max)代替image也让SQL Server的字段类型更加简洁统一。 XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 2、外键的级联更能扩展 可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。但是再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SET NULL 和 SET DEFAULT 属性,能够提供能好的级联设置。 3、索引附加字段 这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。 4、计算字段的持久化 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能