GBase 8c数据库分区表信息都存储在系统表pg_partitioned_table中,可以通过系统表数据实现。partstrat列可以看分区策略,”l”表示列表分区,”r” 表示范围分区;partnatts 列查看分区键的列数。
先打开SQL Server数据库并连接。
然后找到目标数据库,右键并点击“属性”。
在d出的属性窗口左侧“选择页”中选择“文件”选项卡。
然后在右侧窗体中即可看到相应内容了:逻辑名称是数据文件及日志文件的文件名,路径就是其所在位置了。
如图,就是相应的mdf和ldf文件。
举个例子来说吧:
create table tableA ( STATIS_DAY VARCHAR2(8))
partition by list (STATIS_DAY)
(
partition PART_20110522 values ('20110522');
partition PART_20110522 values ('20110523');
partition PART_20110522 values ('20110524')
);
那么 你在写sql的时候
直接 select from tableA where STATIS_DAY between '20110524' and '20110523' 就是查询多个分区了啊!
首先你要理解分区的意义;
select from tableA partition(PART_20110522 ); 就是单独查询这个分区。不过其实跟
select from tableA where STATIS_DAY ='20110522' 是一个样子的~~~
分区表的相关资料:>
--这个在mssql2008+,可以创建表分区,不用创建100多个表
--你在增删改查 *** 作的时候跟单个表是一样的
--但是你的数据 *** 作有明显的分段的话,效率会大大提高
--以下从创建文件,创建分区表,到查询删除等
--谢谢
--1创建文件组
ALTER DATABASE TEST
ADD FILEGROUP FILEGROUP1
ALTER DATABASE TEST
ADD FILEGROUP FILEGROUP2
ALTER DATABASE TEST
ADD FILEGROUP FILEGROUP3
--2添加文件
ALTER DATABASE TEST
ADD FILE (
NAME = N'FILE1',
FILENAME = N'E:\ERP\FILE1NDF' ,
SIZE = 3072KB ,
FILEGROWTH = 1024KB
)
TO FILEGROUP FILEGROUP1
ALTER DATABASE TEST
ADD FILE (
NAME = N'FILE2' ,
FILENAME = N'E:\ERP\FILE2NDF' ,
SIZE = 3072KB ,
FILEGROWTH = 1024KB
)
TO FILEGROUP FILEGROUP2
ALTER DATABASE TEST
ADD FILE (
NAME = N'FILE3' ,
FILENAME = N'E:\ERP\FILE3NDF' ,
SIZE = 3072KB ,
FILEGROWTH = 1024KB
)
TO FILEGROUP FILEGROUP3
--31创建分区函数
CREATE PARTITION FUNCTION FNPARTITION(INT)
AS RANGE RIGHT
FOR VALUES(333333333,666666666)
--41创建分区方案
CREATE PARTITION SCHEME SCHEMAFORPARIRION
AS PARTITION FNPARTITION
TO(FILEGROUP1,[PRIMARY],FILEGROUP2)
--42 添加文件组
ALTER PARTITION SCHEME SCHEMAFORPARIRION
NEXT USED FILEGROUP3;
--32拆分分区
ALTER PARTITION FUNCTION FNPARTITION ()
SPLIT RANGE (500);
--33合并分区
ALTER PARTITION FUNCTION FNPARTITION ()
MERGE RANGE (500);
--51新建分区表
CREATE TABLE ORDERRECORDS
(
ID INT
)
ON SCHEMAFORPARIRION(ID)
DROP TABLE ORDERRECORDS
--52普通表变为分区表
--如果原来就主键,先删除
ALTER TABLE ORDERRECORDS DROP CONSTRAINT PK_SALE
ALTER TABLE ORDERRECORDS ADD CONSTRAINT PK_SALE PRIMARY KEY
(
ID ASC
) ON SCHEMAFORPARIRION(ID)
--或者创建聚集索引,如果原来有主键,要先改成非聚集索引
ALTER TABLE ORDERRECORDS DROP CONSTRAINT PK_SALE
--创建主键,但不设为聚集索引
ALTER TABLE ORDERRECORDS ADD CONSTRAINT PK_SALE PRIMARY KEY NONCLUSTERED
(
ID ASC
) ON [PRIMARY]
CREATE CLUSTERED INDEX CT_SALE ON ORDERRECORDS(ID)
ON PARTSCHSALE(ID)
--53分区表变为普通表
ALTER TABLE ORDERRECORDS DROP CONSTRAINT PK_SALE
ALTER TABLE ORDERRECORDS ADD CONSTRAINT PK_SALE PRIMARY KEY
(
ID ASC
) ON [PRIMARY]
--或者删除
DROP INDEX CT_SALE ON ORDERRECORDS
--6删除分区方案
DROP PARTITION SCHEME SCHEMAFORPARIRION
--7删除分区函数
DROP PARTITION FUNCTION FNPARTITION
--8删除文件
ALTER DATABASE TEST REMOVE FILE FILE1
ALTER DATABASE TEST REMOVE FILE FILE2
ALTER DATABASE TEST REMOVE FILE FILE3
--9删除文件组
ALTER DATABASE TEST REMOVE FILEGROUP FILEGROUP1
ALTER DATABASE TEST REMOVE FILEGROUP FILEGROUP2
ALTER DATABASE TEST REMOVE FILEGROUP FILEGROUP3
--10查看分区函数
SELECT FROM SYSPARTITION_FUNCTIONS
SELECT FROM SYSPARTITION_RANGE_VALUES
SELECT FROM SYSPARTITION_SCHEMES
--11查看每个分区的数据
SELECT FROM ORDERRECORDS WHERE $PARTITIONFNPARTITION(ID)=4
--12查看分区对应的文件
SELECT FGNAME
FROM SYSDESTINATION_DATA_SPACES SP
INNER JOIN SYSPARTITION_SCHEMES SCM ON SPPARTITION_SCHEME_ID = SCMDATA_SPACE_ID
INNER JOIN SYSFILEGROUPS FG ON FGDATA_SPACE_ID = SPDATA_SPACE_ID
WHERE SCMNAME='SCHEMAFORPARIRION' AND SPDESTINATION_ID=4
SELECT segment_name, SUM(bytes) / 1024 / 1024 Mbytes
FROM dba_segments
WHERE segment_type = 'TABLE PARTITION'
AND Tablespace_name = 'SYSTEM'
GROUP BY segment_name;
SQLSERVER中,有时需要知道已经建了哪些分区表,从哪里看?
1、直接用SQL语句查:
--分区数大于1的,就是我们想查看的分区表:
SELECT p,'|' AS SP ,t FROM syspartitions AS p
inner JOIN systables AS t ON pobject_id = tobject_id
inner join (
select object_id as object_id2,index_id, count() AS CNT FROM syspartitions
group by object_id,index_id
having count()>1
) s on sobject_id2 = pobject_id
WHERE ppartition_id IS NOT NULL
order by tname;
2、在管理器中查看:
Databases > [数据库名称] 节点 > 存储(Storage) 节点 >
\ 分区架构(Partition Schemes ) 节点 > 选中一项 > 右键 > 查看依赖
\ 分区函数(Partition Functions ) 节点 > 选中一项 > 右键 > 生成脚本
3、有作多分区的表,属性的 存储(Storage) 会有 Partitioning 信息。
以上就是关于GBase 8c 数据库有没有分区表全部的内容,包括:GBase 8c 数据库有没有分区表、如何查看数据库的各种数据文件、oracle中分区查询时,怎样一次查询多个分区等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)